This OpenMapTiles profile for Planetiler is based on OpenMapTiles.
Using pre-built docker image:
docker run -v "$(pwd)/data":/data openmaptiles/planetiler-openmaptiles:latest --force --download --area=monaco
Or to build from source, after installing Java 21+:
# Build the project (use mvnw.cmd on windows):
./mvnw clean package
# Then run:
java -jar target/*with-deps.jar --force --download --area=monaco
See Planetiler README.md for more description of the available options.
transportation_name
layerbrunnel
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)--simplify-tolerance
parameterIf you want to exclude layers or only include certain layers, then run the project
with --exclude-layers=poi,housenumber,...
or --only-layers=water,transportation,...
command-line arguments.
If you want to customize existing layers in OpenMapTiles, then fork this repo, find the appropriate class from the layers package, and make a change to where it processes output features.
If you want to generate a mbtiles file with OpenMapTiles base layers plus some extra ones then fork this repo and:
Layer
interface in
the addons package and make the public String name()
method return the ID
of the new layer.OpenMapTilesProfile
to register handlers for elements from input
sources. For example implement OpenMapTilesProfile.OsmAllProcessor
to handle every OSM element from processAllOsm
method. See the built-in layers for examples.ExtraLayers
class.If you think your custom layer or change to a built-in layer might be useful to others, consider opening a pull request
to contribute it back to this repo. Any change that diverges from what is produced
by https://github.com/openmaptiles/openmaptiles should be disabled by default, and enabled through a command-line
argument that users can opt-into. For example, see how
the building layer exposes a building_merge_z13
command-line
argument to disable merging nearby buildings at z13.
Generate.java generates code in the generated package from an OpenMapTiles tag in GitHub:
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.
OpenMapTilesProfile dispatches source features to layer handlers and merges the results.
OpenMapTilesMain is the main driver that registers source data and output location.
To run Generate.java
,
use scripts/regenerate-openmaptiles.sh
script with the
OpenMapTiles release tag:
./scripts/regenerate-openmaptiles.sh v3.15
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.15 https://raw.githubusercontent.com/openmaptiles/openmaptiles/
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.