SDK for iOS Developer's Guide

Offline Routing

Even without an active data connection, the applications developed with the SDK for iOS are able to request routing information to assist travelling from one location to another.

Your application's users do not need to maintain active, data connections to calculate routes and render them on a map. It is possible to pre-download updated maps and database information for initiating routing requests while offline. For example, if a user has downloaded offline maps of California and Oregon, a route from San Diego to Portland can be created without any data connection.

For more information about downloading offline maps, refer to Preloading Map Data.

Force Online or Offline

You can launch online or offline routing without changing the device or the HERE SDK connectivity by using the connectivity property on an NMACoreRouter instance. The connectivity property can be set to three possible values:
  • If you launch a request using the NMACoreRouterConnectivityDefault connectivity mode, the request is performed according to the NMAApplicationContext connectivity setting. If the device is offline while NMAApplicationContext is set to online mode, the request fails.
  • If you launch a request using the NMACoreRouterConnectivityOnline connectivity mode, an online request is performed, regardless of the NMAApplicationContext connectivity setting.
  • If you launch a request using the NMACoreRouterConnectivityOffline connectivity mode, an offline request is performed using cached data, regardless of the NMAApplicationContext connectivity setting.
In all cases, if the request fails, no fallback action is automatically performed.

To ensure that the connectivity mode is applied, set the connectivity property before launching an NMACoreRouter calculation request. If an NMACoreRouterConnectivityOnline route calculation request fails due to connection issues, the HERE SDK returns the NMARoutingErrorNetworkCommunication error code. If an NMACoreRouterConnectivityOffline route calculation request fails due to not enough cached data, the HERE SDK returns the NMARoutingErrorGraphDisconnected error code.

Note: This feature is only applicable to car, bicycle, truck, and pedestrian routing through the NMACoreRouter class.
Note: There is no guarantee that online and offline routes will be the same as different algorithms are used for online and offline route calculation. Online route calculation is performed on high performance servers, therefore more computationally intensive algorithms are used online, which cannot be used offline. Online route calculation should be preferred and offline routes are expected to be used as backup especially when there is no connectivity.