openmaptiles/README.md

3.8 KiB

Vector Data Source

This is a work in progress towards OSM2VectorTiles v3.0

This is the data source for the vector tile schema of OSM2VectorTiles. It contains the tm2source project and the required database schema (views, functions).

The vector data sources stands as separate repository to foster collaboration with Wikipedia and make it easier to fork the style without forking OSM2VectorTiles as well.

Vision

The vector tile schema will contain the necessary features for creating a basemap. We will orient ourselves on the cartography used in the Carto Basemaps. Additional layers can be always be mixed in later on but we think OSM2VectorTiles should become less bloated in v3.0.

Future basemaps based on OSM2VectorTiles v3.0?

Requirements

This vector tile schema depends on a database containing several different data sources which need to be imported first. You can use your own ETL process or use the Docker containers from OSM2VectorTiles.

Your PostGIS database needs the following data imported. If you use our Docker based workflow this is very straightforward to setup but if you don't want to use Docker you can set up your own ETL pipeline to import the required data sources.

Database Schema

The vector data source is using views, generalized tables and functions to share code between layers. The SQL code can be found in ./schema. The different features from OSM however are determined in the ClearTables project.

Each zoom level in a layer has it's own view where the data is filtered for the zoom level. This keeps the filtering logic per zoom level out of the TM2Source data.yml. To work on the database and vector tile schema read the Develop section.

Develop

To work on osm2vectortiles.tm2source you need Docker and Python.

Build

Build the tileset.

make

Prepare the Database

Now start up the database container.

docker-compose up -d postgres`

Import water from OpenStreetMapData.

docker-compose run import-water

Import Natural Earth data.

docker-compose run import-natural-earth

Import OpenStreetMap data based on the ClearTables osm2pgsql style. In order to do this you first need to clone the latest ClearTables.

docker-compose run import-osm

Work on Layers

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

make
docker-compose run import-sql

To look at the vector tiles you can start up Mapbox Studio Classic in a container and visit localhost:3000 and open the vector source project under projects/osm2vectortiles.tm2source.

docker-compose up mapbox-studio

Develop on OSM2VectorTiles with Mapbox Studio Classic

License

All code in this repository is under the MIT license and the cartography decisions encoded in the schema and SQL is licensed under CC0.