iOS 開発者ガイド for SDK

オフラインルーティング

アクティブなデータ接続がない場合でも 、 SDK for iOS で開発されたアプリケーション は、ある場所から別の場所への移動を支援するためのルーティング情報を要求できます。

アプリケーションユーザーは、ルートを計算して地図に表示するために、アクティブなデータ接続を維持する必要はありません。 オフライン時にルーティングリクエストを開始するための更新されたマップおよびデータベース情報を事前にダウンロードできます。 たとえば、ユーザーがカリフォルニア州とオレゴン州のオフライン地図をダウンロードした場合、サンディエゴからポートランドまでのルートをデータに接続せずに作成できます。

オフライン地図のダウンロードの詳細 については、「マップ データのプリロード」を参照してください。

強制的にオンラインまたはオフラインにします

NMACoreRouterインスタンスでconnectivityプロパティを使用すると、デバイスまたは HERE SDK の接続を変更せずに、オンラインまたはオフラインのルーティングを開始できます。 connectivity このプロパティには、次の 3 つの値を設定できます。
  • NMACoreRouterConnectivityDefault 接続モードを使用してリクエストを開始すると NMAApplicationContext 、接続設定に従ってリクエストが実行されます。 NMAApplicationContext がオンラインモードに設定されているときにデバイスがオフラインの場合、要求は失敗します。
  • NMACoreRouterConnectivityOnline 接続モードを使用してリクエストを開始すると NMAApplicationContext 、接続設定に関係なくオンラインリクエストが実行されます。
  • NMACoreRouterConnectivityOffline 接続モードを使用してリクエストを開始すると NMAApplicationContext 、接続設定に関係なくキャッシュされたデータを使用してオフラインリクエストが実行されます。
いずれの場合も、要求が失敗しても、フォールバックアクションは自動的には実行されません。

接続モードが確実に適用されるようにするには、 NMACoreRouter 計算リクエストを開始する前に connectivity プロパティを設定します。 NMACoreRouterConnectivityOnline 接続の問題によりルート計算要求が失敗した場合 、 HERE SDKNMARoutingErrorNetworkCommunication エラーコードを返します。 NMACoreRouterConnectivityOffline キャッシュされたデータが不足しているためにルート計算要求が失敗した場合 、 HERE SDKNMARoutingErrorGraphDisconnected エラーコードを返します。

注 : この機能は、NMACoreRouterクラス を通る車、自転車、トラック、および歩行者のルート指定にのみ適用 されます。
注 : オンラインルートとオフラインルートが、オンラインルートとオフラインルートの計算に使用されるアルゴリズムと同じであるという保証はありません。 オンラインルート計算は高性能サーバーで実行されるため、オンラインでは計算量の多いアルゴリズムが使用されます。このアルゴリズムはオフラインでは使用できません。 オンラインルートの計算を推奨し、特に接続がない場合は、オフラインルートをバックアップとして使用することを想定しています。