Why do we produce our own tiles ?
publié leTiles are the data of the map that we display after applying a style, we've started the project by using MapTiler. MapTiler uses and develops OpenMapTiles, the leading open source MapLibre tile format. We first started to personalize the style, keeping raw OMT (OpenMapTiles) tiles. But we met two problems :
-
- MapTiler's API is too expensive for the number of views we started to soon get (a few thousands per month...) : more than 150 € / month, > than our global web and API server costs
-
- lots of data we wanted to show to the user where missing from the OMT spec
- could have been resolved by using VersaTiles indeed to host them on our servers. But switching our style to the shortbread format was quite some work. To generate tiles, we're using Tilemaker too. Some of VersaTiles's stack was already used in our cartesapp/server. Last but not least, we switched to protomaps for serving, which is awesome, VersaTiles appears to still use MBtiles. We've thought about switching to Protomaps's tile specification, but we're not convinced yet
We still let the user chose untouched MapTiler styles, they're great. E.g. the winter style is incredible (13.94/45.96529/6.46702/160.8/50">https://cartes.app/?style=winter#13.94/45.96529/6.46702/160.8/50). We're thinking of including MapTiler's styles as premium paid features. When we'll have 100 k monthly users, paying MapTiler for these specialised styles will not be possible anymore.
- We've modified the OMT specification to fit our objectives (see this file https://github.com/cartesapp/serveur/blob/master/tilemaker/resources/process-openmaptiles.lua). E.g. showing railways on higher zoom than motorways. Or displaying more touristic places. Or coworking spaces. Any tile spec is an editorial choice (because exposing everything that OSM holds is too bandwidth heavy), and we've gone our own way. We're also adding layers that these projects do not, e.g. trees (very important : Apple decided trees are worthwile, Google and Organic did not) and ocean depths which makes a very realistic globe. We've also integrated indoorequal to provide indoor floors maps. Another customisation that we're proud of is coloring the roads according to their maxspeed. < 20 km/h roads are white, < 30 are light gray, etc. Last but not least, we've just finished the integration of a new icon set and telemetrics about which icons are missing.
See https://github.com/cartesapp/serveur, tiles are handled there. Styles are in this repo.