The Future of OpenMapTiles project
Published May 14, 2020
OpenMapTiles disrupted web cartography by allowing anyone to launch OpenStreetMap on their computer in minutes. For free! We estimate that maps generated by the OpenMapTiles are viewed by 250 million people every month.
We are extremely happy that community involvement is steadily increasing and keen to help with boosting further growth. Do you want to know what is on the roadmap?
OpenStreetMap vector tiles directly from PostGIS
Apart from pre-generating tiles for weekly or monthly updates, the people around the project are developing realtime serving from PostGIS. It gives OpenMapTiles the ability to serve hourly or minute OSM updates with a tradeoff of higher hardware requirements, deployment and maintenance costs.
Currently, the OpenMapTiles project is using mature MapnikVT C++ code (wrapped via Tilelive Node.js) for generating vector tiles from PostGIS.
The realtime approach is switching to ST_AsMVT native vector tile generator, which is faster and directly implemented in PostGIS 3+. It also eliminates the need to transfer the vector features from the database to another form of in-memory representation and makes the whole stack much simpler.
This step will be accompanied by further optimization on SQL queries, which needs to be made parallel safe and faster for realtime serving.
Continuous integration: QA on every pull request
Newly, we run QA tests on each pull request checking the size of the final tiles and the speed of generating.
A new utility called test-perf compares speed and size before and after modification for each zoom level.
Other software tools supporting the development of the realtime serving approach have been created. This includes an experimental server postserve, or debugging tool for analyzing the content of individual tiles and their exact SQL queries debug-mvt.
Simplification of repositories and tools
Historically, the project had quite a complicated toolstack with a large number of docker images, which were hard to update and maintain. It was also unclear where the community is supposed to fill the bug report or feature request.
The entire project is now consolidated into 2 repositories:
- The layer definition repository - defines how to transform OpenStreetMap data into vector tiles
- The tools repository - containing all the software tools needed to download, import, process, and generate tiles using layer definition.
Also, the process of downloading the data required for generating maps was simplified.
Wikidata import was modified to download only the relevant information via API - instead of parsing and processing the very large complete dump stored locally.
The download of the OpenStreetMap planet or extracts is much faster thanks to the download-osm tool, which simultaneously downloads data from multiple mirrors: Geofabrik, bbbike, and osm.fr.
Future development is being discussed at regular online conferences, which we established last year.
Several substantial changes were recently contributed by Yuri Astrakhan (working on test-perf, consolidation of tools and download-osm) with generous support from Elasticsearch. We also want to thanks other contributors like Jorge Sanz, Frédéric Rodrigo, Sergii Golubev, and Zeev Stadler to name a few.
The next OpenMapTiles v3.12 release is planned for June, with feature freeze by end of May. If you are interested in the project, start by exploring the OpenMapTiles repository on GitHub and feel free to get involved.
TIP: Do you know there is a new open-source style compatible with OpenMapTiles: Toner? This legendary high-contrast black&white map style from Stamen studio is a perfect match for print!
The legendary Toner map style: now as an open-source for OpenMapTiles