Nokia Here Map Isochrone API

Isochrone Polygon

Isochrones - 5, 10, and 15 minute drive time polygons

One of the newer kids on the web mapping block is Nokia Here Maps. I say “newer” but Nokia is actually also one of the oldest on the block. Nokia purchased NavTeq back in 2008 and merged it into the Nokia fold as Here Maps around 2012. NavTeq had a long history in the digital map era starting back in the mid ‘80s, long before cell phones, as Karlin & Collins.

If you look at data sources in this web map matrix, you’ll notice that NavTeq data is a source for Bing Maps, Yahoo Maps, and MapQuest as well as Nokia Here Maps. In the web map world there are numerous interlocking license arrangements, but NavTeq is a key data piece in some of the most popular web map services.

Nokia, through its NavTeq purchase, has a long history in map data collection and provisioning markets, but a relatively new face in the consumer UI markets. As digital map markets evolve along new vectors like mobile phones, in-dashboard automobile devices, and autonomous robotics, Nokia’s map data is positioned to be a key player even if ultimately Microsoft Nokia phones fall off the map.

Nokia APIs offer features not often found in other web map APIs, including truck restricted routing, multi-mode (transit, car, pedestrian) routing, isoline/isochrone route polygons, multi stop matrix routing, predictive traffic routing, integrated heatmap, integrated point clustering, ….

Isoline Calculations

Isoline route polygons are an interesting addition to the web map tool kit. The result of an isoline query is a set of vertices describing a polygon. This polygon is the outer edge of all possible travel routes from a start point to a given distance.

Distance Isoline

Distance Isoline

Example REST query:
https://route.st.nlp.nokia.com/routing/6.2/calculateisoline.json?mode=fastest;pedestrian;traffic:disabled&start=52.5160,13.3778 &distance=2000&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg

Result:

{
    "Response":
    {
        "isolines":[
            {
                "name":"Isoline",
                "value":[
                    "52.5151405,13.3487797",
                    "52.5195503,13.3519497",
                    "52.5195503,13.3519497",
                    "52.519371,13.3522596",
                    "52.519371,13.3522596",
			.
			.
			.
                    "52.5030594,13.3613596",
                    "52.5030594,13.3613596",
                    "52.5034218,13.3609695",
                    "52.5034218,13.3609695",
                    "52.5038605,13.3606596",
                    "52.5038605,13.3606596",
                    "52.5061188,13.3556404",
                    "52.5061188,13.3556404",
                    "52.5096283,13.3527203",
                    "52.5096283,13.3527203",
                    "52.5136795,13.3490601",
                    "52.5136795,13.3490601",
                    "52.5151405,13.3487797"
                ],
                "scope":"com.navteq.lbsp.cdm.routing.calculateisoline.CalculateIsolineResponseType",
                "declaredType":"java.util.List",
                "globalScope":false,
                "nil":false,
                "typeSubstituted":true
            }
        ],
        "MetaInfo":
        {
            "Timestamp":"2014-08-25T21:38:58.467Z",
            "AdditionalData":[
                {
                    "value":"2014-08-25T21:38:00.200+0000",
                    "key":"CurrentTrafficLastUpdate"
                },
                {
                    "value":"10949245",
                    "key":"CurrentTrafficElementsCount"
                },
                {
                    "value":"2014-08-25T21:38:00.004+0000",
                    "key":"LongTermClosureLastUpdate"
                },
                {
                    "value":"37696",
                    "key":"LongTermClosureElementsCount"
                },
                {
                    "value":"2014-08-25T21:38:00.004+0000",
                    "key":"ShortTermClosureLastUpdate"
                },
                {
                    "value":"9414",
                    "key":"ShortTermClosureElementsCount"
                },
                {
                    "value":"2014Q1",
                    "key":"Map0"
                },
                {
                    "value":"routeserver,9.3-2014.08.12",
                    "key":"Module0"
                },
                {
                    "value":"63",
                    "key":"Module0ExecTime"
                },
                {
                    "value":"63563",
                    "key":"Module0ExecTimeMicro"
                },
                {
                    "value":"routing-route-service,6.2.37.0",
                    "key":"Service"
                }
            ]
        },
        "Center":
        {
            "Latitude":52.5158615,
            "Longitude":13.3774099
        }
    }
}

Emergency Response Times

Isochrone calculations produce a similar result but using a given time instead of distance.

Isochrone Calculation

Isochrone Calculation

These calculations allow some interesting queries. For example what is the access reach from a fire station for 5, 10, and 15 minute drive time envelopes. These are the types of calculations of interest to insurance companies and fire district chiefs. In addition to general route envelope calculations Here Map also provides traffic enabled predictive isochrones. In other words the envelope calculation with traffic enabled is dependent on traffic patterns at a given time and day. A 10 min drive time reach will be less for weekday rush hour traffic patterns than for evenings or weekends.

Isochrone firestation

Example of a 5, 10, and 15 minute drive time envelope from N Washington Fire Station at departure 11:00AM MDT Denver time.

N Washington Fire Station at departure 5:00PM MDT rush-hour overlaid on 8:00PM MDT after rush-hour. The furthest extents are the non-rush-hour isochrones. Predictive traffic routing can be useful in urban areas where rush-hour variation is significant.

Firestation Isochrone

Compared departure times - rush hour versus evening predictive traffic

Colorado Springs, CO has nearly complete 15min coverage as seen from the selection of all fire station locations. For station location planning Isochrone calculations can provide a quick first pass for coverage estimates.

Colorado Springs, CO Firestation coverage

Firestation 5, 10, 15 min coverage

This simple example uses Here Map nokia.maps.search.Manager to geocode an address text. After zooming and centering the map, this geocoded location is then passed to a REST call to search for the term “fire station”.

url: "http://places.cit.api.here.com/places/v1/discover/search?at=" +
center.latitude + "," + center.longitude +
"&q=fire station&app_id=DemoAppId01082013GAL
&app_code=AJKnXv84fjrb0KIHawS0Tg&accept=application/json"

Since nokia.maps.advrouting.Manager with Isochrone is part of Here Enterprise javascript, it’s easier to use the REST interface for find places search rather than try to untangle Here standard javascript API and the Here enterprise javascript API. The results of the “fire station” place search are added as pins to the map. The pins include a click listener that creates an infobubble and then sets up isochrone routingRequests for the 5, 10, and 15 minute isochrones.

Commuter Isochrone

Nokia also provides inverse Reverse-Flow calculations showing the edge of all routes that can be used to reach a point in a given distance or time.

ReverseFlow Distance

Distance Based Reverse Flow

Time Based Reverse Flow

Time Based Reverse Flow

If you’d like to determine the neighborhoods within a certain commute time of your work these calculations can also come in handy. Before looking for an apartment in a new city, it might be nice to see the neighborhoods within a 15 or 30 min drive time.

Time-based Reverse Flow calculations with traffic enabled and departure at 7:30AM would give you an idea of “to” work limits. The opposite Isochrone calculation at 5:30PM would provide commute neighborhoods in the return home 15 min envelope.

Sample Time-based Reverse Flow calculation to work at 7:30AM MDT:
https://route.st.nlp.nokia.com/routing/6.2/reverseflow.json?mode=fastest;car;traffic:enabled&destination=39.744128,-104.985839&departure=2014-08-25T13:30:00Z&time=PT0H10M&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg

Unfortunately the maximum allowable reverse flow calculation is currently 10 minutes, PT0H10M, which limits usefulness for a commute range calculation. The next image shows a set of reachable street segment links for a 10min Reverse Time Flow to a Colorado Springs, CO destination.

Reverse flow

10min Time Based Reverse Flow

Sample REST service 30 minute Isochrone calculation from work at 5:30PM MDT = 23:30 UTC:
https://route.st.nlp.nokia.com/routing/6.2/calculateisoline.json?mode=fastest;car;traffic:enabled&start=39.744128,-104.985839&departure=2014-08-25T23:30:00Z&time=PT0H30M&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg

Isochrone route calculations are just one of the many advanced tools found in Nokia Here Map APIs.

Here Explorer: https://developer.here.com/javascript-apis/enterprise-api-explorer