We've discussed various aspects of our routing APIs here in the past, as well as news about new features such as our new electric vehicle routing support. With the additions, updates, and other changes to our platform over the past few months, we thought it would be nice to provide an overview of the various type of routing features available to developers. Instead of taking an "API first" approach, instead we'll break it down by feature and explain the APIs that back them up. Ready? Let's get started!
How do I drive from one point to another?
The simplest of all requests - how to drive from one point to another. This makes use of the basic HERE routing API. You provide a starting and end location and that's it.
You can ask for a summary back which will cover the time and distance travelled, or you can ask for more detailed information which can include turn by turn directions.
Here's an example of the most basic routing: Calculate a Route
What if I want to drive from one point to another at a certain time?
Building on the last example, you can also ask for a route at a particular time. In this case, HERE uses historical traffic data to estimate how other vehicles will impact your route.
We've got a specific example of this for you: Begin Route At Different Times
What if I want to go from one point to another and not take (just) a car?
Our routing API supports multimodal transportation. From cars, scooters, or trucks, to journeys by bike and on foot. This can get rather complex and our API handles it all. Take bicycle routing as an example. Our API will literally handle knowing that when you bike uphill, you go slower. It will even recognize that a route may be quicker if you walk your bike the wrong way on a one-way road.
Going from one point to another and stopping along the way?
Another typical routing problem is going from your origin to a destination and then stopping somewhere, perhaps multiple somewheres. Our routing API supports providing "waypoints" which define places to stop along the route.
Yep, we've got an example of that: Route Via Intermediate Waypoint
Note that a more advanced use case would be a route with multiple waypoints that you need to get to in the "best" order in terms of time or distance, or to perhaps make deliveries and pickups. For that we've got tour planning, we'll talk a bit more about that later.
Trucks are special, right?
Absolutely. Trucks may have to use different routes based on their size, weight, and possibly hazardous materials. Our routing API lets you specify the characteristics of your truck and then plans it's route to abide by legal rules regulating where the truck can drive. It even handles cases where a truck can't physically make certain tight turns.
Here's more about truck routing: Truck Routing
What about public transit?
Another interesting use case is including public transit as part of your route. This is where Intermodal routing comes into play. It lets you add routes that may mix public transit, taxis, walking, and more.
Surprise surprise, but we've got a demo and example of this as well : Calculate a Park and Ride Route
Can I skip the toll roads?
Another aspect of routing is avoiding certain things, such as toll roads, tunnels, or ferries. You may even want to avoid a geographic region, like a city. In our routing APIs, we call this avoidance. When requesting a route, you can ask for things to avoid. What's great is that if you ask to avoid a particular factor, but it's impossible to get to the destination, the API will at least attempt to minimize that factor for you. This is much better than returning no route at all.
Unfortunately we don't have a demo of that. Wait, of course we do: Avoidance
Can routing handle electric vehicles?
Absolutely. Announced a few short weeks ago, our routing API has deep support for managing electric vehicle (EV) routing needs. You can specify various indicators (how much your vehicle is charged, how long it takes to recharge), and the routing API will handle including charging stops along the way.
EV routing has a good introduction in the developer guide and our blog recently shared an introduction to the feature. You can also test this feature out using our powerful online tool. This will be especially helpful when it comes to configuring the various parameters required to use EV vehicles in the API.
What if I don't know where I want to go, just how far I can go?
You're talking about "isoline" routing, which is routing that determines exactly how far you can go in a certain amount of time or within a given distance. This may be easier if shown graphically. In the image below, you can see where a car can travel starting in Berlin and driving for three thousand meters. In this case the result was based on the time the API was called, but you can absolutely specify different times to see the impact of traffic (for time-based isoline routing anyway).
What if I manage a fleet of vehicles and have to plan routes for all of them?
For large scale routing, we offer matrix routing, which lets you plan routes for up to ten thousand origin and destinations. As you can imagine, this requires a lot of work and therefore the API can be used in both synchronous and asynchronous modes, letting you create a request and then poll for updates later.
We've got a number of different use cases with examples for you to dig further.
My driver took a long time to deliver a package, what can I do?
Here's an interesting use case. You've got a planned route for a truck from one point to another and it's supposed to take a certain amount of time. You discover later that the truck actually took twice as much time as anticipated. Was a route diversion to blame? If you tracked the vehicle's actual route, you can use the route matching API to compare routes and get deep analytics. This can do things like finding speeding violations and missed waypoints.
I've got to make multiple stops, what's the best route?
For one of our final, and most complex use cases, we come to tour planning. At a high level, tour planning takes in a set of inputs that cover the types of vehicles in a fleet, their capacities, and a set of jobs with requirements involving deliveries, pick ups, and times. The API can take this input and in return, give you a "best" plan to use your fleet to meet the needs of the jobs.
If you want to see more about this API, we recently published an article that gives a somewhat gentle introduction to the service: Working with Tour Planning
Routing - Going Deeper
We hope this review of the routing features gives you an idea of both the breadth and depth of our routing options. Be sure to sign up today for a freemium account and start building today!