OpenMapTiles is an extensible and open tile schema based on the OpenStreetMap.
 
 
 
Go to file
Yuri Astrakhan 490acf9beb
Use tools v4 with on-the-fly boundary generation (#750)
* Switch OMT to use the new tools v4.0.0
* borders are dynamically generated from the PBF file instead of downloading a prepared CSV file
* all tools are executed as current user instead of root, thus files are easier to modify/delete if needed
* all data is stored in the local file system instead of docker volumes (Docker currently has a limitation of non-root operation for internal volumes). This also makes it easier to examine and test it.
* New `init-dirs` make target creates all the needed dirs - `build, data, cache`
* `make clean` deletes the whole `build` dir instead of individual files.
* `clean-docker` for backward compatibility deletes `cache` dirs (it used to be a volume)
* all `psql` calls are now done with `ON_ERROR_STOP=1`
* got rid of `pgclimb-*` targets -- same results can be done with `psql` (`pgclimb-list-views` & `pgclimb-list-tables` renamed to `list-views` and `list-tables`)
2020-03-06 13:15:54 -05:00
.github Fix typo in pull_request_template (#682) 2019-10-21 22:31:24 -04:00
layers Updated etl diagrams from latest tools 2020-02-14 16:22:48 -05:00
qa Removed TOOLS_VERSION, rewritten commands to use only docker-compose with TOOLS_VERSION inside .env. 2019-12-16 15:37:19 +01:00
.env Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
.gitignore Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
.travis.yml TravisCI should raise error on fail 2019-12-16 14:07:53 -05:00
BENCHMARKING.md fix formatting 2019-02-06 18:17:40 -05:00
CONTRIBUTING.md Use one pass docs image generation (#751) 2020-01-22 21:55:22 -05:00
LICENSE.md Create LICENSE.md 2017-01-07 15:10:07 +01:00
Makefile Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
QUICKSTART.md Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
README.md Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
UPDATE.md Add merge script, update imposm3 behavior info 2020-02-21 22:09:31 -05:00
docker-compose.yml Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00
openmaptiles.yaml Remove trailing whitespace in openmaptiles.yaml 2020-02-11 08:59:25 -05:00
quickstart.sh Use tools v4 with on-the-fly boundary generation (#750) 2020-03-06 13:15:54 -05:00

README.md

OpenMapTiles Build Status

OpenMapTiles is an extensible and open tile schema based on the OpenStreetMap. This project is used to generate vector tiles for online zoomable maps. OpenMapTiles is about creating a beautiful basemaps with general layers containing topographic information. More information openmaptiles.org and openmaptiles.com.

We encourage you to collaborate, reuse and adapt existing layers, or add your own layers. You may use our approach for your own vector tile project. Feel free to fork the repo and experiment. The repository is built on top of the openmaptiles/openmaptiles-tools to simplify vector tile creation.

Please keep in mind that OpenMapTiles schema should display general topographic content. If creating a new layer or expanding an existing layer with a specific theme, please create a fork and invite other community members to cooperate on your topic. OpenMapTiles schema is used in many projects all over the world and the size of the final vector tiles needs to be considered in any update.

Styles

You can start from several GL styles supporting the OpenMapTiles vector schema.

🔗 Learn how to create Mapbox GL styles with Maputnik and OpenMapTiles.

We also ported over our favorite old raster styles (TM2).

🔗 Learn how to create TM2 styles with Mapbox Studio Classic and OpenMapTiles.

Schema

OpenMapTiles consists out of a collection of documented and self contained layers you can modify and adapt. Together the layers make up the OpenMapTiles tileset.

🔗 Study the vector tile schema

Develop

To work on OpenMapTiles you need Docker.

Build

Build the tileset.

git clone https://github.com/openmaptiles/openmaptiles.git
cd openmaptiles
# Build the imposm mapping, the tm2source project and collect all SQL scripts
make

You can execute the following manual steps (for better understanding) or use the provided quickstart.sh script.

./quickstart.sh

Prepare the Database

Now start up the database container.

make db-start

Import external data from OpenStreetMapData, Natural Earth and OpenStreetMap Lake Labels.

make import-water
make import-natural-earth
make import-lakelines

Download OpenStreetMap data extracts and store the PBF file in the ./data directory.

cd data
wget http://download.geofabrik.de/europe/albania-latest.osm.pbf

OR

make download-geofabrik area=albania

Import OpenStreetMap data with the mapping rules from build/mapping.yaml (which has been created by make). Run after any change in layers definiton. Also create borders table using extra processing with osmborder tool.

make import-osm
make import-borders

Import latest Wikidata. If an OSM feature has Key:wikidata, OpenMapTiles check corresponding item in Wikidata and use its labels for languages listed in openmaptiles.yaml. So the generated vector tiles includes multi-languages in name field.

This step uses Wikidata Query Service to download just the Wikidata IDs that already exist in the database.

make import-wikidata

Work on Layers

Each time you modify layer SQL code run make and make import-sql.

make clean
make
make import-sql

Now you are ready to generate the vector tiles. Using environment variables you can limit the bounding box and zoom levels of what you want to generate (docker-compose.yml).

make generate-tiles

License

All code in this repository is under the BSD license and the cartography decisions encoded in the schema and SQL are licensed under CC-BY.

Products or services using maps derived from OpenMapTiles schema need to visibly credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to https://openmaptiles.org/. Exceptions to attribution requirement can be granted on request.

For a browsable electronic map based on OpenMapTiles and OpenStreetMap data, the credit should appear in the corner of the map. For example:

© OpenMapTiles © OpenStreetMap contributors

For printed and static maps a similar attribution should be made in a textual description near the image, in the same fashion as if you cite a photograph.