planetiler/planetiler-basemap/README.md

3.5 KiB

Planetiler Basemap Profile

This basemap profile is based on OpenMapTiles v3.13.1. See README.md in the parent directory for instructions on how to run.

Differences from OpenMapTiles

  • Road name abbreviations are not implemented yet in the transportation_name layer
  • agg_stop tag not implemented yet in the poi layer
  • brunnel tag is excluded from transportation_name layer to avoid breaking apart long transportation_name lines, to revert this behavior set --transportation-name-brunnel=true
  • rank field on mountain_peak linestrings only has 3 levels (1: has wikipedia page and name, 2: has name, 3: no name or wikipedia page or name)
  • rank field on mountain_peak linestrings only has 3 levels (1: has wikipedia page and name, 2: has name, 3: no name or wikipedia page or name)
  • id field on water polygons is only populated for openstreetmap lakes, not natural earth lakes at lower zoom levels

Code Layout

Generate.java generates code in the generated package from an OpenMapTiles tag in GitHub:

  • OpenMapTilesSchema contains an interface for each layer with constants for the name, attributes, and allowed values for each tag in that layer
  • Tables contains a record for each table that OpenMapTiles imposm3 configuration generates (along with the tag-filtering expression) so layers can listen on instances of those records instead of doing the tag filtering and parsing themselves

The layers package contains a port of the SQL logic to generate each layer from OpenMapTiles. Layers define how source features (or parsed imposm3 table rows) map to vector tile features, and logic for post-processing tile geometries.

BasemapProfile dispatches source features to layer handlers and merges the results.

BasemapMain is the main driver that registers source data and output location.

Regenerating Code

To run Generate.java, use scripts/regenerate-openmaptiles.sh script with the OpenMapTiles release tag:

./scripts/regenerate-openmaptiles.sh v3.13.1

Then follow the instructions it prints for reformatting generated code.

If you want to regenerate from a different repository than the default openmaptiles, you can specify the url like this:

./scripts/regenerate-openmaptiles.sh v3.13.1 https://raw.githubusercontent.com/openmaptiles/openmaptiles/

License and Attribution

OpenMapTiles code is licensed under the BSD 3-Clause License, which appears at the top of any file ported from OpenMapTiles.

The OpenMapTiles schema (or "look and feel") is licensed under CC-BY 4.0, so any map derived from that schema must visibly credit OpenMapTiles . It also uses OpenStreetMap data, so you must visibly credit OpenStreetMap contributors.