Optimizing Your Route

We’re all looking for the most efficient route to get from point A to point B. But what if you add points C, D, E, F, G, and H? Many know this as the “Travelling Salesman Problem” or “TSP”. We’re happy to announce the Mapzen Optimized Route service: powerful enough for businesses and logistics companies yet still accessible to the individual user. Optimized Route is a part of the Mapzen Mobility toolkit, a set of services powered exclusively by open-source software and open data.

Create your own optimized route

Optimized routes have long been a mainstay in the world of logistics and shipping. Businesses need it too: think of pizza delivery, sales people, and real estate agents showing houses. But wouldn’t it be nice if you, the everyday human running errands, had an easy-to-use service that calculates your route based the times and distances to all of the places you need to go every day? With Mapzen Optimized Route, anyone with things to do and a list of locations can take advantage of it. In San Francisco, there are a lot of burritos. Too often you ask yourself how you might visit all of the best taquerias in the City. How could one possibly plan this journey of burrito enlightenment? Mapzen Optimized Route is here to help! We here in the Burrito Research Division of Mapzen have geocoded some of San Francisco’s top rated burritos according the famed (but sadly retired) Burritoeater.

Click to go bur-routing full screen or choose the walking tour

You may not agree with all of these burrito dispensaries, so drag and drop the emoji across town and watch the route optimize on the fly!

Under the hood - how does it work?

We take your location list and submit it to our cost matrix source-to-target algorithm to calculate the times and distances from each location to every other location. This is the same cost matrix algorithm that we use for our Mapzen Matrix service and has proven to be extremely efficient.

Under the hood, the cost matrix performs a backward search from all target locations and a forward search from all source locations. The connections between the two search spaces are checked during the forward search. (Any locations that are the same get set to a zero time, distance and are not added to the remaining location set.) We then send the list of times and distances to our optimizer which returns a route response based on the reordered locations.

How do I use this amazing time-saving service?

You can either end your route at the final destination location or you can end your route at the origin where you started. (Please remember that the first and last location will always remain fixed in your route.)

To format an Optimized Route request, we have provided a new action called optimized_route. Just send a list of lat/lon locations in any order, your costing mode (auto, bicycle or walk), API key, and Mapzen will take care of the rest! (You can either end your route at the final destination location or you can end your route at the origin where you started. And please remember that the first and last location will always remain fixed in your route.) We will reorder your locations in an optimized route response with a route shape, saving you time and money.

A sample Optimized Route request:

https://matrix.mapzen.com/optimized_route?json={"locations":[{"lat":40.78821,"lon":-73.978844,"type":"break"},{"lat":40.745696,"lon":-73.990345,"type":"break"},{"lat":40.745046,"lon":-73.99807,"type":"break"},{"lat":40.73334,"lon":-73.98983,"type":"break"},{"lat":40.739584,"lon":-73.983994,"type":"break"},{"lat":40.725015,"lon":-73.998585,"type":"break"},{"lat":40.738413,"lon":-73.99807,"type":"break"},{"lat":40.727617,"lon":-73.97953,"type":"break"},{"lat":40.78821,"lon":-73.978844,"type":"break"}],"costing":"auto"}&api_key=

You can read the Optimized Route documentation for more information about the options and sign up for an API key. If you want to test your own points, take a look at our Optimized Route Test Utility

A small note on performance and limitations

Performance is fairly similar to our many_to_many matrix requests. As mentioned above, we are now using a more efficient cost matrix algorithm that has improved performance substantially. We currently have a few location and distance limits in place for this purpose and you can read more about them in the documentation.

Check it out!

Reach out if you have questions or suggestions! Sign up for an API key on the Mapzen Developers page and take a look at the documentation.

Note: This post was updated on May 22, 2017 to reflect new documentation URLs and rate limit information.