Bing Maps Multi-Itinerary Optimization API Launches Today

The Bing Maps team is happy to launch the Bing Maps Multi-Itinerary Optimization (MIO) API, a REST service that automates the process of building itineraries for multiple agents (e.g., drivers, sales representatives, professionals, etc.) while also optimizing the routes among all agents to save travel time and distance.

Whether you’re a small or large organization with a fleet of drivers, mobile salesforce, or a team of personnel in the field, maximizing workforce efficiency by effectively planning and optimizing routes is a high priority. Traditionally, route planning and service dispatch operations have been a time-consuming manual process. This manual process can make it difficult to find optimal solutions, especially solutions that can accommodate traffic, location changes or an increasing number of stops along a route.

Last July, we announced waypoints optimization, a powerful addition to the Bing Maps routing API, which re-orders up to 25 waypoints (i.e., stops) and optimizes a route to minimize travel time or distance for one driver. MIO does this and more! At launch, the MIO API can support up to 10 agents and 100 waypoints (i.e., stops) with plans to increase the API limits in the future.

What MIO can do

The MIO API can handle a wide range of scenarios including, but not limited to:

  • Multi-day route planning
  • Multiple agents and multiple shifts of those agents (characterized by start and end locations and times for each shift)
  • Service time windows, priority and dwell time (i.e., how long an agent needs to be present) at each service location, making sure that agents arrive at and leave the service location within the defined service time windows

Increased accuracy

MIO uses the actual road distance to calculate a route, which yields much more accurate results compared to basing a route on a straight-line (i.e., 'crow flies' distance) between any two locations. Customers can specify whether to use actual road network information or a constant radius and travel speed to calculate travel distances and travel times between the itinerary locations to optimize the routes. Also, the API can take optional inputs for customers’ preferences for reducing travel time or distance.

Predictive traffic

A key differentiator of the MIO API is that it gives you the ability to factor in predictive traffic in route optimization. You can use a histogram of travel times in a time-window that takes into account the predicted traffic at those times.

MIO in Action

Let’s take a look at a real-world use case here on the Microsoft campus. A shuttle starts at the Microsoft Commons, stops at four Microsoft buildings to pick up or drop off passengers and ends its journey at Building 33.

If the driver goes to the stops in the sequence of the passengers’ requests, the route is clearly not optimized. With a total travel distance of 5.3 miles and a total travel time of 32 minutes to reach the final stop, there is obviously room for improvement.

Before optimization


MIO - Before Optimization Screenshot
 

The MIO API re-orders the stops to optimize the route of the shuttle, resulting in a new and improved total travel distance of 3.5 miles and a total travel time of 23 minutes. This reduces the distance travelled by 34% and lessens the driving time by 26% saving fuel, wear and tear and driver schedule time.

After optimization


MIO - After Optimization Screenshot
 

Multiple agents with multiple stops

As the number of stops increase, we may need multiple agents (i.e., shuttles) to service all the stops. The complexity required to divide up the stops among the agents rises exponentially, but MIO handles this scenario as well. In this example, two food safety inspectors, Charlie and Andre, need to visit 13 restaurants for inspection.

Charlie has two shifts during the day, one in the morning and one after his lunch break. Charlie’s first shift starts at his office and his second shift ends at home at 5 pm. Andre only works in the afternoon and will start and end his shift at the same location.

Agent Name Shift Start Time Shift Start Location Shift End Time Shift End Location
Charlie 09:00:00 47.603206, -122.329485 12:00:00 47.599018, -122.331871
Charlie 14:00:00 47.599018, -122.331871 17:00:00 47.739236, -122.339974
Andre 13:00:00 47.603206, -122.329485 17:00:00 47.603206, -122.329485

Each of the restaurants they need to visit have different priority, available hours and require different dwell times for the food inspector to complete his work.

Place Coordinates Available Hours Dwell Time Priority
Wonder Espresso 47.598380, -122.325889 07:00:00 – 13:00:00 00:30:00.00 1
Café Twelfth 47.615006,-122.348236 08:00:00 – 20:00:00 01:30:00.00 1
Granny Food Truck 47.664440, -122.372138 11:00:00 – 14.30:00 00:20:00.00 1
Taco Club 47.653046, -122.376961 15:00:00 – 22:00:00 00:50:00.00 1
Contoso Grill 47.621739, -122.199830 12:00:00 – 22:00:00 00:50:00.00 5
Bon Appetit Bistro 47.585807, -122.234985 09:00:00 – 17:00:00 00:30:00.00 1

Note that Wonder Espresso only opens from 7 am to 1 pm, which rules out inspector Andre, who only works after 1 pm. Taking into account all the given constraints, the API assigns Charlie to arrive at Wonder Espresso before 11 am with plenty of time to finish his visit. After his lunch break, Charlie has four more restaurants to visit in his second shift before he ends his shift at 5 pm.

The MIO API builds the itinerary for Andre, which starts and ends his shift at the same location. All five restaurants on his itinerary are open in the afternoon, including the higher-priority location, Contoso Grill, that has had multiple infractions in the past and could be shut down if they do not meet food safety standards.

By using MIO, the route optimization done for Andre and Charlie is quickly calculated, taking into account the two inspectors’ pre-defined shifts, the time needed at each inspection and restaurant service time windows all while considering the predictive traffic.

With a successful API request, the response lists the route instructions for each agent, including details about leaving from the start location (e.g., latitude/longitude of start location and time to leave) , travelling between locations (e.g., start and end times, distance and travel duration between the locations) and visiting each location (e.g., latitude/longitude, priority and available service time windows of the location, agent’s start and end times and dwell time at the location). The response also includes a summary of the route for each agent with latitude/longitude of start and end locations, all waypoints assigned to the agent, total travel time and total travel distance.

MIO API in Action

Getting started

To learn more about developing your multi-itinerary optimization solution using the Bing Maps REST Service, see the MIO API documentation. This documentation includes various options for setting up your solution, how each scenario works, supported methods, example Request Body and Response, how a transaction is calculated, API limits and more.

The MIO API is currently available in most places where Bing Maps supports routing except for China, Japan, and South Korea. For details on coverage, please refer to the documentation.

For details about the Bing Maps APIs, and how to get licensed, visit our website.

We are always working to improve upon our APIs and look forward to seeing how people use the MIO API. Connect with us on the Bing Maps Forum to share your thoughts and let us know what you would like to see in future versions.

- Bing Maps team