When unmap is the better fit
- You need routes as well as maps and search. MapTiler's API list has no routing, travel-time, matrix or route optimization API. unmap has routes, isochrones, a matrix, map matching and Optimize on the same key and the same meter, for road travel in Canada.
- You want to keep what you fetch, maps included. Our terms let you cache maps and geocoding results permissively, and what you have cached stays yours after you cancel. MapTiler's Cloud Terms let you use geocoding results outside its service, but allow only a temporary cache on a single end user's device, and bar storing or redistributing map content from a server-side cache.
- Your users search in Canada, in either official language. One record carries its English and French names, plus Indigenous-language names where the source data has them, and a query typed in Inuktitut syllabics finds the place. See Languages.
- You route transit riders in Canada.
mode=transitroutes and draws travel-time areas on scheduled Canadian transit (Transit routing). - You search by legal land description. With the Legal Land add-on, a Dominion Land Survey or NTS description such as
NW-25-24-1-W5is an ordinary search query (Legal land).
When MapTiler is the better fit
- You want a visual style editor. MapTiler Customize edits colours, fonts, languages, layers and icons, imports GL JSON styles, and comes free with every account. unmap has fifteen styles and a theme builder whose themes are colours and layer choices over one of those styles (Custom themes).
- You run behind a firewall or offline. MapTiler Server serves maps, satellite imagery and geocoding with no internet connection, on Windows, macOS, Linux, Raspberry Pi, Docker and Kubernetes. unmap is a hosted API, so your app needs to reach it over the internet.
- You need satellite imagery. MapTiler's satellite imagery covers the whole world, with aerial photos for some countries. unmap has no satellite or hybrid imagery: it serves vector tiles.
- You ship a native mobile app. MapTiler has SDKs for Android, iOS, Flutter and React Native. unmap ships a web SDK and no native mobile SDK.
- You search outside Canada. unmap's basemap is worldwide, but search and routing cover Canada only (Coverage).
How the bill compares
The table above is MapTiler's Flex plan, the first paid tier, with what its Free plan allows, as read on the date shown. MapTiler sells plans, and one quota covers every service. It has no routing, so the table has rows only for maps and search.
unmap has one meter instead. Every request is one call, tiles included, and every API draws from the same pool. Three bulk paths count work, not requests: batch geocoding is one call per non-blank query, a hosted batch job is one call per eligible row, and Optimize is one call per shipment a successful solve performs. The dev plan is free and for building, not production. Browser calls from localhost are not counted, except Optimize, which counts from every origin. Server-side calls and Optimize draw on 10,000 included calls a month. Indie is US$19 a month for 250,000 calls, then US$1.00 per 1,000. Growth is US$99 a month for 2,000,000 calls, then US$0.75 per 1,000. Plans and limits has the detail.
Neither free plan is for production. MapTiler's Free plan is limited to non-commercial use and research and development (Cloud Terms) and pauses at its quota. unmap's dev plan cannot serve a live domain and stops at its included calls.
The units differ most for maps. MapTiler counts a map session each time a page or app initializes a map, with unlimited panning and zooming inside it (MapTiler pricing). On unmap a map's first paint is about 40 calls, almost all of them tiles, and after that MapLibre and the browser serve most tiles from cache. So Flex's 25,000 sessions would be about 1,000,000 calls on unmap, past Indie and inside Growth. For an app that mostly shows maps, MapTiler can cost less.
Search counts differently too. MapTiler bills search sessions, and also counts each direct Geocoding API call as one request at a lower overage rate. Autocomplete is a call per request on unmap, so debounce the keystrokes. Routing is where the bills stop being comparable: MapTiler has no routing to bill, so a route, an isochrone or a 10 by 10 /matrix request is one call from the same unmap pool, where on MapTiler it would be a second provider.
To estimate your own bill, start from about 40 calls for a first paint on an empty browser cache. Panning and zooming add tiles, and return visits fetch fewer. Then add your searches and routes and set the total against a plan's included calls.