I was curious to find out. Is upstart Mapbox just as good or better? Has Apple Maps improved sufficiently? What about the MapQuest which I haven’t explored in a while?
Fortunately, all of them offer their routing engines as APIs. So, it’s possible to build a comparison tool to visualize those routes on the same base map.
I brought all these 8 engines together and created SuperRoute.
Just enter your source and destination of your daily commute or weekend trips, you will be able to see the routes shown in different colors.
- 🟦 Google Maps — Directions API
- ⬜ Apple Mapkit JS
- 🟧 MapQuest
- 🟩 HERE (formerly NavTEQ)
- 🟫 Mapbox
- 🟨 Esri ArcGIS
- 🟥 Azure Maps
- 🟪 openrouteservice
What have I learned en route 🚗 ?
- Within cities, routes generated by different engines vary a lot. Take the time to experiment and see what works for your locality.
- For longer trips, these engines converge to more-or-less the same route.
- Apple Maps have caught up to Google Maps quickly (and MapKit JS is free, but a bit slower compared to others.)
- MapQuest is not as popular, but the quality of the routes is pretty good.
- Other engines used by fleets (e.g. Here, MapQuest, Esri) has more parameters available.
- You don’t have to use Google if you don’t like its personalization features.
- I am eager to see how AWS Location Services stack up against others (It’s not available yet.)
Learning as a product owner & engineer:
- Be conscientious: don’t acquire data unless you really need it for users’ benefits
- Comparison tools have good ROI. e.g. pricegrabber.com and unhaggle.com. Their value is easy to understand and save users time (which is an important attribute.)
- Remember to test data entry fields with strings with quotes ‘ “ and commas.
- Don’t assume you need to use powerful UI framework like Angular/React/Vue. You can do a lot with plain JavaScript/CSS. The cognitive load on using sophisticated UI framework can offset its benefits.
- Concise writing is a high-leverage skill. Good UX depends on it.
Hope this helps when we can all travel again!
Happy coding!