Out in the Open: How to Get Google Maps Directions Without Google

One of the best things about Google Maps is that you can get directions from one place to another almost instantly. But what if you want to build your own website or application that does much the same thing? Sure, Google Maps offers an API that lets developers integrate some of its tools into their […]
Image may contain Clothing Apparel Human Person and TShirt
Photo:Mapbox

One of the best things about Google Maps is that you can get directions from one place to another almost instantly.

But what if you want to build your own website or application that does much the same thing? Sure, Google Maps offers an API that lets developers integrate some of its tools into their applications, but if you do that, you're beholden to Google. You don't have complete control over your software. Or data gets shared with another company, and you can't always modify your application in the way you want to.

That's where Open Source Routing Machine -- or OSRM -- comes in. OSRM is a route planning system that runs on OpenStreetMap, a free crowdsourced mapping service. And, yes, it too is open source, meaning anyone can use and modify it for free.

Creator Dennis Luxen runs an OSRM/OpenStreetMap server where you can check it out. But anyone could host their own server -- or incorporate it into another application. It's not quite ready to replace Google Maps for consumer purposes, but it could provide an excellent alternative for developers and hackers.

Luxen started working with route planning as a PhD candidate at the Karlsruhe Institute of Technology in Germany. "The group where I worked had a strong emphasis on route planning and algorithms in general," he says. The challenge is that you want accurate answers that feel as though they are delivered instantly.

Luxen started OSRM around 2010. "One day, I got this cold call from a guy named Frederik Ramm, who is a big contributor to Open Street Map Project," Luxen says. "He was looking to get new ideas from outside the community. He'd been reading about route planning and was wondering if I could come talk at a meetup."

The talk went well, so Luxen began thinking about how to put his research into action. The result is OSRM, which Luxen built with collaborators such as Emil Tin, who helped make the backend more usable; Dennis Schieferdecker, who did most of the front-end; and Christian Vetter, who helped with the basic infrastructure code.

OSRM is amazingly fast, but it does have a few limitations. For example, in Google Maps, you can you can use street address instead of coordinates to input your desired route. OSRM has trouble with that. Both services use a technique called "geocoding" to convert street addresses into coordinates, but Google Maps' geocoding is much better than the geocoding system built into OpenStreetMap.

"It's a matter of resources, I'd love to have a team of 2,000 people working on it," he says. "I'm sure if we had 20 people working on OSRM that we could make it the most awesome thing when it comes to routing, but we're not there yet."

Will OSRM ever be a complete one-to-one replacement for Google Maps? "As much as I'd like to say yes, you want to be humble in your goals," he says. "Google has invested so much money and ideas in routing, I'm not sure I want to say that I want to compete with them. What I want is a routing system on Open Street Map that gives you a similar experience."