2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Planetiler
  
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-08 14:11:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Planetiler (_**pla**· nuh· tai· lr_, formerly named "Flatmap") is a tool that generates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Vector Tiles ](https://github.com/mapbox/vector-tile-spec/tree/master/2.1 )
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from geographic data sources like [OpenStreetMap ](https://www.openstreetmap.org/ ). Planetiler aims to be fast and
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								memory-efficient so that you can build a map of the world in a few hours on a single machine without any external tools
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								or database.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Vector tiles contain raw point, line, and polygon geometries that clients like [MapLibre ](https://github.com/maplibre )
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								can use to render custom maps in the browser, native apps, or on a server. Planetiler packages tiles into
							 
						 
					
						
							
								
									
										
										
										
											2023-03-18 18:38:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								an [MBTiles ](https://github.com/mapbox/mbtiles-spec/blob/master/1.3/spec.md ) (sqlite)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								or [PMTiles ](https://github.com/protomaps/PMTiles ) file that can be served using tools
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								like [TileServer GL ](https://github.com/maptiler/tileserver-gl ) or [Martin ](https://github.com/maplibre/martin ) or
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								even [queried directly from the browser ](https://github.com/protomaps/PMTiles/tree/main/js ).
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								See [awesome-vector-tiles ](https://github.com/mapbox/awesome-vector-tiles ) for more projects that work with data in this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								format.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-29 22:03:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Planetiler works by mapping input elements to vector tile features, flattening them into a big list, then sorting by
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								tile ID to group into tiles. See [ARCHITECTURE.md ](ARCHITECTURE.md ) for more details or
							 
						 
					
						
							
								
									
										
										
										
											2021-10-22 09:57:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								this [blog post ](https://medium.com/@onthegomap/dc419f3af75d?source=friends_link&sk=fb71eaa0e2b26775a9d98c81750ec10b )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for more of the backstory.
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Demo
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-18 22:20:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								See the [live demo ](https://onthegomap.github.io/planetiler-demo/ ) of vector tiles created by Planetiler and [hosted by OpenStreetMap US ](https://github.com/osmus/tileservice ).
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[](https://onthegomap.github.io/planetiler-demo/)
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[© OpenMapTiles ](https://www.openmaptiles.org/ ) [© OpenStreetMap contributors ](https://www.openstreetmap.org/copyright )
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Usage
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								To generate a map of an area using the [OpenMapTiles profile ](https://github.com/openmaptiles/planetiler-openmaptiles ),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								you will need:
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-26 10:30:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Java 21+ (see [CONTRIBUTING.md ](CONTRIBUTING.md )) or [Docker ](https://docs.docker.com/get-docker/ ) 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  at least 1GB of free disk space plus 5-10x the size of the `.osm.pbf`  file 
						 
					
						
							
								
									
										
										
										
											2022-03-31 10:42:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  at least 0.5x as much free RAM as the input `.osm.pbf`  file size 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### To build the map:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Using Java, download `planetiler.jar`  from
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the [latest release ](https://github.com/onthegomap/planetiler/releases/latest )
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								and run it:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								wget https://github.com/onthegomap/planetiler/releases/latest/download/planetiler.jar
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								java -Xmx1g -jar planetiler.jar --download --area=monaco
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Or using Docker:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								docker run -e JAVA_TOOL_OPTIONS="-Xmx1g" -v "$(pwd)/data":/data ghcr.io/onthegomap/planetiler:latest --download --area=monaco
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:warning: This starts off by downloading about 1GB of [data sources ](NOTICE.md#data ) required by the OpenMapTiles
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								profile
							 
						 
					
						
							
								
									
										
										
										
											2021-10-25 11:30:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								including ~750MB for [ocean polygons ](https://osmdata.openstreetmap.de/data/water-polygons.html ) and ~240MB
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for [Natural Earth Data ](https://www.naturalearthdata.com/ ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< details >  
						 
					
						
							
								
									
										
										
										
											2021-10-25 11:32:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< summary > To download smaller extracts just for Monaco:< / summary >  
						 
					
						
							
								
									
										
										
										
											2021-10-25 11:30:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Java:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								java -Xmx1g -jar planetiler.jar --download --area=monaco \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --water-polygons-url=https://github.com/onthegomap/planetiler/raw/main/planetiler-core/src/test/resources/water-polygons-split-3857.zip \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --natural-earth-url=https://github.com/onthegomap/planetiler/raw/main/planetiler-core/src/test/resources/natural_earth_vector.sqlite.zip
							 
						 
					
						
							
								
									
										
										
										
											2021-10-25 11:30:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Docker:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								docker run -e JAVA_TOOL_OPTIONS="-Xmx1g" -v "$(pwd)/data":/data ghcr.io/onthegomap/planetiler:latest --download --area=monaco \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --water-polygons-url=https://github.com/onthegomap/planetiler/raw/main/planetiler-core/src/test/resources/water-polygons-split-3857.zip \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --natural-earth-url=https://github.com/onthegomap/planetiler/raw/main/planetiler-core/src/test/resources/natural_earth_vector.sqlite.zip
							 
						 
					
						
							
								
									
										
										
										
											2021-10-25 11:30:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								You will need the full data sources to run anywhere besides Monaco.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#### To view tiles locally:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Using [Node.js ](https://nodejs.org/en/download/ ):
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								npm install -g tileserver-gl-light
							 
						 
					
						
							
								
									
										
										
										
											2023-03-18 18:38:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								tileserver-gl-light data/output.mbtiles
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Or using [Docker ](https://docs.docker.com/get-docker/ ):
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								docker run --rm -it -v "$(pwd)/data":/data -p 8080:8080 maptiler/tileserver-gl -p 8080
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Then open http://localhost:8080 to view tiles.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Some common arguments:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-18 18:38:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `--output`  tells planetiler where to write output to, and what format to write it in. For 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  example `--output=australia.pmtiles`  creates a pmtiles archive named `australia.pmtiles` .
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  `--download`  downloads input sources automatically and `--only-download`  exits after downloading 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `--area=monaco`  downloads a `.osm.pbf`  extract from [Geofabrik ](https://download.geofabrik.de/ ) 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `--osm-path=path/to/file.osm.pbf`  points Planetiler at an existing OSM extract on disk 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  `-Xmx1g`  controls how much RAM to give the JVM (recommended: 0.5x the input .osm.pbf file size to leave room for 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  memory-mapped files)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `--force`  overwrites the output file 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `--help`  shows all of the options and exits 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Git submodules
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Planetiler has a submodule dependency
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								on [planetiler-openmaptiles ](https://github.com/openmaptiles/planetiler-openmaptiles ). Add `--recurse-submodules` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to `git clone` , `git pull` , or `git checkout`  commands to also update submodule dependencies.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								To clone the repo with submodules:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git clone --recurse-submodules https://github.com/onthegomap/planetiler.git
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you already pulled the repo, you can initialize submodules with:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git submodule update --init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								To force git to always update submodules (recommended), run this command in your local repo:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git config --local submodule.recurse true
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Learn more about working with submodules [here ](https://git-scm.com/book/en/v2/Git-Tools-Submodules ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								## Generating a Map of the World
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								See [PLANET.md ](PLANET.md ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Generating Custom Vector Tiles
  
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If you want to customize the OpenMapTiles schema or generate an mbtiles file with OpenMapTiles + extra layers, then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fork https://github.com/openmaptiles/planetiler-openmaptiles make changes there, and run directly from that repo. It
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								is a standalone Java project with a dependency on Planetiler.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you want to generate a separate mbtiles file with overlay layers or a full custom basemap, then:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  For simple schemas, run a recent planetiler jar or docker image with a custom schema defined in a yaml 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  configuration file. See [planetiler-custommap ](planetiler-custommap ) for details.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  For complex schemas (or if you prefer working in Java), create a new Java project 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  that [depends on Planetiler ](#use-as-a-library ). See the [planetiler-examples ](planetiler-examples ) project for a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  working example.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you want to customize how planetiler works internally, then fork this project, build from source, and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								consider [contributing ](#contributing ) your change back for others to use!
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Benchmarks
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Some example runtimes for the OpenMapTiles profile (excluding downloading resources):
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-21 15:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								|                     Input                      | Version |             Machine             |           Time            | output size  |                                                      Logs                                                      |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								|------------------------------------------------|---------|---------------------------------|---------------------------|--------------|----------------------------------------------------------------------------------------------------------------|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240115.osm.pbf (69GB) | 0.7.0   | c3d-standard-180 (180cpu/720GB) | 22m cpu:44h34m  avg:120   | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-c3d-standard-180.txt )                                                         |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240108.osm.pbf (73GB) | 0.7.0   | c7gd.16xlarge (64cpu/128GB)     | 42m cpu:42m28s avg:52     | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-c7gd-128gb.txt )                                                               |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2022/planet-220530.osm.pbf (69GB) | 0.5.0   | c6gd.16xlarge (64cpu/128GB)     | 53m cpu:41h58m avg:47.1   | 79GB mbtiles | [logs ](planet-logs/v0.5.0-planet-c6gd-128gb.txt ), [VisualVM Profile ](planet-logs/v0.5.0-planet-c6gd-128gb.nps ) |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2022/planet-220530.osm.pbf (69GB) | 0.5.0   | c6gd.8xlarge (32cpu/64GB)       | 1h27m cpu:37h55m avg:26.1 | 79GB mbtiles | [logs ](planet-logs/v0.5.0-planet-c6gd-64gb.txt )                                                                |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2022/planet-220530.osm.pbf (69GB) | 0.5.0   | c6gd.4xlarge (16cpu/32GB)       | 2h38m cpu:34h3m avg:12.9  | 79GB mbtiles | [logs ](planet-logs/v0.5.0-planet-c6gd-32gb.txt )                                                                |
							 
						 
					
						
							
								
									
										
										
										
											2022-06-05 19:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Merging nearby buildings at z13 is very expensive, when run with `--building-merge-z13=false` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-21 15:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								|                     Input                      | Version |             Machine             |           Time           | output size  |                                                                            Logs                                                                            |
							 
						 
					
						
							
								
									
										
										
										
											2024-01-20 14:10:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								|------------------------------------------------|---------|---------------------------------|--------------------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
							 
						 
					
						
							
								
									
										
										
										
											2024-01-21 15:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240115.osm.pbf (69GB) | 0.7.0   | c3d-standard-180 (180cpu/720GB) | 16m cpu:27h45m avg:104   | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-c3d-standard-180-no-z13-building-merge.txt )                                                                               |
							 
						 
					
						
							
								
									
										
										
										
											2024-01-20 14:10:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240108.osm.pbf (73GB) | 0.7.0   | c7gd.16xlarge (64cpu/128GB)     | 29m cpu:23h57 avg:50     | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-c7gd-128gb-no-z13-building-merge.txt )                                                                                     |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240108.osm.pbf (73GB) | 0.7.0   | c7gd.2xlarge (8cpu/16GB)        | 3h35m cpu:19h45 avg:5.5  | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-c7gd-16gb-no-z13-building-merge.txt )                                                                                      |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| s3://osm-pds/2024/planet-240108.osm.pbf (73GB) | 0.7.0   | im4gn.large (2cpu/8GB)          | 18h18m cpu:28h6m avg:1.5 | 69GB pmtiles | [logs ](planet-logs/v0.7.0-planet-im4gn-8gb-no-z13-building-merge.txt )                                                                                      |
							 
						 
					
						
							
								
									
										
										
										
											2024-01-21 15:42:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| s3://osm-pds/2022/planet-220530.osm.pbf (69GB) | 0.5.0   | c6gd.16xlarge (64cpu/128GB)     | 39m cpu:27h4m avg:42.1   | 79GB mbtiles | [logs ](planet-logs/v0.5.0-planet-c6gd-128gb-no-z13-building-merge.txt ), [VisualVM Profile ](planet-logs/v0.5.0-planet-c6gd-128gb-no-z13-building-merge.nps ) |
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Alternatives
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Some other tools that generate vector tiles from OpenStreetMap data:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [OpenMapTiles ](https://github.com/openmaptiles/openmaptiles ) is the reference implementation of 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  the [OpenMapTiles schema ](https://openmaptiles.org/schema/ ) that
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  the [OpenMapTiles profile ](https://github.com/openmaptiles/planetiler-openmaptiles )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  is based on. It uses an intermediate postgres database and operates in two modes:
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  1.  Import data into database (~1 day) then serve vector tiles directly from the database. Tile serving is slower and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     requires bigger machines, but lets you easily incorporate realtime updates
							 
						 
					
						
							
								
									
										
										
										
											2022-05-29 22:03:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  2.  Import data into database (~1 day) then pregenerate every tile for the planet into an mbtiles file which
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								     takes [over 100 days ](https://github.com/openmaptiles/openmaptiles/issues/654#issuecomment-724606293 )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     or a cluster of machines, but then tiles can be served faster on smaller machines
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [Tilemaker ](https://github.com/systemed/tilemaker ) uses a similar approach to Planetiler (no intermediate database), 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  is more mature, and has a convenient lua API for building custom profiles without recompiling the tool, but takes
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  [about a day ](https://github.com/systemed/tilemaker/issues/315#issue-994322040 ) to generate a map of the world
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Some companies that generate and host tiles for you:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Mapbox ](https://www.mapbox.com/ ) - data from the pioneer of vector tile technologies 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Maptiler ](https://www.maptiler.com/ ) - data from the creator of OpenMapTiles schema 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Stadia Maps ](https://stadiamaps.com/ ) - what [onthegomap.com ](https://onthegomap.com/ ) uses in production 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you want to host tiles yourself but have someone else generate them for you, those companies also offer plans to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								download regularly-updated tilesets.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Features
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Supports [Natural Earth ](https://www.naturalearthdata.com/ ), 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  OpenStreetMap [.osm.pbf ](https://wiki.openstreetmap.org/wiki/PBF_Format ),
							 
						 
					
						
							
								
									
										
										
										
											2023-01-14 00:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  [`geopackage` ](https://www.geopackage.org/ ),
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  and [Esri Shapefiles ](https://en.wikipedia.org/wiki/Shapefile ) data sources
							 
						 
					
						
							
								
									
										
										
										
											2023-03-18 18:38:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Writes to [MBTiles ](https://github.com/mapbox/mbtiles-spec/blob/master/1.3/spec.md ) or 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  or [PMTiles ](https://github.com/protomaps/PMTiles ) output.
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Java-based [Profile API ](planetiler-core/src/main/java/com/onthegomap/planetiler/Profile.java ) to customize how source 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  elements map to vector tile features, and post-process generated tiles
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  using [JTS geometry utilities ](https://github.com/locationtech/jts )
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [YAML config file format ](planetiler-custommap ) that lets you create custom schemas without writing Java code 
						 
					
						
							
								
									
										
										
										
											2021-10-22 09:15:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Merge nearby lines or polygons with the same tags before emitting vector tiles 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  Automatically fixes self-intersecting polygons 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Built-in OpenMapTiles profile based on [OpenMapTiles ](https://openmaptiles.org/ ) v3.13.1 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  Optionally download additional name translations for elements from Wikidata 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Export real-time stats to a [prometheus push gateway ](https://github.com/prometheus/pushgateway ) using 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `--pushgateway=http://user:password@ip`  argument (and a [grafana dashboard ](grafana.json ) for viewing)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Automatically downloads region extracts from [Geofabrik ](https://download.geofabrik.de/ ) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  using `geofabrik:australia`  shortcut as a source URL
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Unit-test profiles to verify mapping logic, or integration-test to verify the actual contents of a generated mbtiles 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  file ([example](planetiler-examples/src/test/java/com/onthegomap/planetiler/examples/BikeRouteOverlayTest.java))
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Limitations
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  It is harder to join and group data than when using database. Planetiler automatically groups features into tiles, so 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  you can easily post-process nearby features in the same tile before emitting, but if you want to group or join across
							 
						 
					
						
							
								
									
										
										
										
											2021-10-22 09:30:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  features in different tiles, then you must explicitly store data when processing a feature to use with later features
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  or store features and defer processing until an input source is
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:52:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  finished  ([boundary layer example](https://github.com/onthegomap/planetiler/blob/9e9cf7c413027ffb3ab5c7436d11418935ae3f6a/planetiler-basemap/src/main/java/com/onthegomap/planetiler/basemap/layers/Boundary.java#L294))
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Planetiler only does full imports from `.osm.pbf`  snapshots, there is no way to incorporate real-time updates. 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:32:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Use as a library
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Planetiler can be used as a maven-style dependency in a Java project using the settings below:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Maven
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Add this repository block to your `pom.xml` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```xml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< repositories >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < repository > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < id > osgeo< / id > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < name > OSGeo Release Repository< / name > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < url > https://repo.osgeo.org/repository/release/< / url > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < snapshots > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < enabled > false< / enabled > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / snapshots > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < releases > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < enabled > true< / enabled > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / releases > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / repository > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / repositories >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Then add the following dependency:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:32:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```xml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< dependency >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < groupId > com.onthegomap.planetiler< / groupId > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < artifactId > planetiler-core< / artifactId > 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 10:54:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < version > ${planetiler.version}< / version > 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:32:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / dependency >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Gradle
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Set up your repositories block::
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:32:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```groovy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mavenCentral()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								maven {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    url "https://repo.osgeo.org/repository/release/"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Set up your dependencies block:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:32:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```groovy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								implementation 'com.onthegomap.planetiler:planetiler-core:< version > '
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								## Contributing
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Pull requests are welcome! See [CONTRIBUTING.md ](CONTRIBUTING.md ) for details.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Support
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-13 11:59:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								For general questions, check out the #planetiler  channel on [OSM-US Slack ](https://osmus.slack.com/ ) (get an
							 
						 
					
						
							
								
									
										
										
										
											2022-12-01 01:29:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								invite [here ](https://slack.openstreetmap.us/ )), or start
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								a [GitHub discussion ](https://github.com/onthegomap/planetiler/discussions ).
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Found a bug or have a feature request? Open a [GitHub issue ](https://github.com/onthegomap/planetiler/issues ) to report.
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This is a side project, so support is limited. If you have the time and ability, feel free to open a pull request to fix
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								issues or implement new features.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Acknowledgement
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Planetiler is made possible by these awesome open source projects:
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [OpenMapTiles ](https://openmaptiles.org/ ) for the [schema ](https://openmaptiles.org/schema/ ) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  and [reference implementation ](https://github.com/openmaptiles/openmaptiles )
							 
						 
					
						
							
								
									
										
										
										
											2022-07-29 10:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  that
							 
						 
					
						
							
								
									
										
										
										
											2022-08-02 11:20:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  the [openmaptiles profile ](https://github.com/openmaptiles/planetiler-openmaptiles/tree/main/src/main/java/org/openmaptiles/layers )
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  is based on
							 
						 
					
						
							
								
									
										
										
										
											2022-03-01 13:43:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [Graphhopper ](https://www.graphhopper.com/ ) for basis of utilities to process OpenStreetMap data in Java 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  [JTS Topology Suite ](https://github.com/locationtech/jts ) for working with vector geometries 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Geotools ](https://github.com/geotools/geotools ) for shapefile processing 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [SQLite JDBC Driver ](https://github.com/xerial/sqlite-jdbc ) for reading Natural Earth data and writing MBTiles files 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [MessagePack ](https://msgpack.org/ ) for compact binary encoding of intermediate map features 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [geojson-vt ](https://github.com/mapbox/geojson-vt ) for the basis of 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  the [stripe clipping algorithm ](planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  that planetiler uses to slice geometries into tiles
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  [java-vector-tile ](https://github.com/ElectronicChartCentre/java-vector-tile ) for the basis of 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  the [vector tile encoder ](planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java )
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  [imposm3 ](https://github.com/omniscale/imposm3 ) for the basis 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  of [OSM multipolygon processing ](planetiler-core/src/main/java/com/onthegomap/planetiler/reader/osm/OsmMultipolygon.java )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  and [tag parsing utilities ](planetiler-core/src/main/java/com/onthegomap/planetiler/util/Imposm3Parsers.java )
							 
						 
					
						
							
								
									
										
										
										
											2022-03-01 13:43:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [HPPC ](http://labs.carrotsearch.com/ ) for high-performance primitive Java collections 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Osmosis ](https://wiki.openstreetmap.org/wiki/Osmosis ) for Java utilities to parse OpenStreetMap data 
						 
					
						
							
								
									
										
										
										
											2022-03-09 12:22:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [JNR-FFI ](https://github.com/jnr/jnr-ffi ) for utilities to access low-level system utilities to improve memory-mapped 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  file performance.
							 
						 
					
						
							
								
									
										
										
										
											2022-09-23 10:49:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [cel-java ](https://github.com/projectnessie/cel-java ) for the Java implementation of 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Google's [Common Expression Language ](https://github.com/google/cel-spec ) that powers dynamic expressions embedded in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  schema config files.
							 
						 
					
						
							
								
									
										
										
										
											2023-03-18 18:38:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [PMTiles ](https://github.com/protomaps/PMTiles ) optimized tile storage format 
						 
					
						
							
								
									
										
										
										
											2024-05-22 09:55:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [Apache Parquet ](https://github.com/apache/parquet-mr ) to support reading geoparquet files in java (with dependencies 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  minimized by [parquet-floor ](https://github.com/strategicblue/parquet-floor ))
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								See [NOTICE.md ](NOTICE.md ) for a full list and license details.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Author
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Planetiler was created by [Michael Barry ](https://github.com/msbarry ) for future use generating custom basemaps or
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								overlays for [On The Go Map ](https://onthegomap.com ).
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## License and Attribution
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Planetiler source code is licensed under the [Apache 2.0 License ](LICENSE ), so it can be used and modified in commercial
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								or other open source projects according to the license guidelines.
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-23 10:42:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Maps built using planetiler do not require any special attribution, but the data or schema used might. Any maps
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								generated from OpenStreetMap data
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								must [visibly credit OpenStreetMap contributors ](https://www.openstreetmap.org/copyright ). Any map generated with the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								profile based on OpenMapTiles or a derivative
							 
						 
					
						
							
								
									
										
										
										
											2021-10-20 01:57:47 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								must [visibly credit OpenMapTiles ](https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md#design-license-cc-by-40 )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								as well.