移行ガイド
このガイドラインでは、別の HERE SDK エディションから Explore Edition または Navigate Edition に移行するための一連の手順を示します。 Navigate Edition のすべての機能 が Explore Edition で利用できるわけではありません。 Explore Edition は Navigate Edition のサブセットです。
マップボックスや Google マップなどの別の SDK から移行する場合 は、「主な概念」セクションを参照することをお勧めします。 HERE Lite、 Explore & Navigate の各エディションで統一された、最も一般的な概念を見つけることができます。 これらのエディションの違いについては、このガイドの「概要」セクションを参照してください。
注
簡単に確認できます
-
Lite、 Explore & Navigate の各エディションでは、プラットフォーム間を直接切り替えることができます。 Android 、 iOS 、 Flutter など、利用可能なすべてのプラットフォームが、フードの下にある同じネイティブコードベースを共有します。 このようにすると、利用可能な HERE SDK 機能がプラットフォーム間で一貫して動作するとともに、個々のプラットフォーム規則に忠実に適合します。 ただし、機能が異なると、 API および動作が異なる場合 があります。たとえば、 HERE Rendering Engine の動作がライトレンダラーとは異なるため、MapViewLite
コンポーネントには若干異なる API が含まれています。 主な相違点の詳細を以下に示します。
-
StarterEdition と Premium Edition は、異なるテクノロジスタックを共有しています。 その結果、ほとんどの API 、概念、および動作が、新しい Lite、 Explore & Navigate Edition と異なります。 このためには、より一貫した移行の計画が必要になる場合があります 可能な手順を以下に示します。 Starter Edition および Premium Edition は廃止されました。
概要
非常に小規模なプロジェクトを除き、アプリをあるエディションから別のエディションに移行するには時間がかかるため、顧客に重大な変更が生じる可能性があります。労力を最小限に抑えるために、増分アプローチを推奨します。
-
作業を開始する前に、フィーチャーの可用性についての詳細を確認してください。 HERE SDK の開始ページにある「 HERE SDK の機能比較」の一覧を参照してください。 対象のエディションの機能を利用できない場合は、HERE の担当者にお問い合わせください。 次回の定期リリースのいずれかですでに予定されている可能性があります。
-
新しいエディションで利用可能なプランを確認してください。 HERE SDK の使用を自由に開始できます。 利用可能なプランの概要については、価格表を参照してください。 プランの詳細については、FAQ を参照してください。
-
HERE の担当者に新しい資格情報のセットをリクエストしてください。 資格情報 は、エディション間で交換できません。 現在 のところ、 Navigate Edition はリクエストを受けた場合にのみ利用できます。
-
移行を開始します。 詳細については、以下のセクションで説明します。
情報
その他の役立つヒント :
-
フィーチャーの比較 : 以下のサンプルアプリのセクションで は、 4.x の機能と比較して 3.x の主な機能を示すマッピングテーブルを見つけることができます。このテーブルには、前述の各機能の再利用可能なコードスニペットへのリンクが含まれています。
-
4.x のフィーチャーを検索 : リリース ノート ページ では、 1 日目以降にリリースされたすべてのフィーチャーまたは API を 1 つのページに表示できます。 テキスト検索 (STRG + F
/command + F
) を使用して、検索するフィーチャーに一致する可能性があるものを検索します。 ほとんどの場合、リリース ノートには、最初のオリエンテーションを提供するための簡潔な指示が含まれています。 この 開発者ガイド または API リファレンス で、詳細情報を参照します。
-
使用例 : また、 以下のフィーチャー 一覧、またはこの開発者ガイドの Q&A セクションで考えられる使用例を一覧表示することもできます。
移行の計画
アプリの複雑さによっては、最初から始める必要がない場合があります。 代わりに、既存のプロジェクトのコピーを作成して、フィーチャーの移行を段階的に開始することをお勧めします。
アプリの移行を正常に完了するには、いくつかの方法があります。 次のいずれかの方法を使用できます。
-
古い SDK ライブラリをまず統合解除する。
-
次に、利用開始 セクションに従って新しい SDK ライブラリを統合します。
-
最後に、新しい API に適応してテストを開始することで、レガシーコードの残りのコンパイルエラーを修正します。 単体テストと統合テストが役立つ場合があります。
注
大規模なプロジェクトでは、分離されたプロジェクトを作成して、新しい SDK でコードを事前にテストできます。 これにより、 必要なすべてのフィーチャーが移行される前に、新しい動作が期待どおりかどうかを確認できます。
ヒントとして、コードがインターフェイスに対して実装されている場合に、特定のライブラリ からコードを分離しておくと役立ちます。 このようにすると、ライブラリ の統合が解除された後に無数のコンパイルエラーが発生するのではなく、レガシーコードをコメント化して機能的に置き換える方が簡単になります。
注
2 つの異なるエディションを同じアプリに統合することはできません。そのため、一部のライブラリまたはクラスでは、コンパイル時に複製エラーが発生することがあります。
さらに、 4.x 開発者ガイドについても理解しておく必要があります。 すべてのコアフィーチャーのコーディング例をカバーするほか、リリースに合わせてアプリケーションを最適化する方法についてのヒントも含まれています。 詳細については、 最適化ガイドを参照してください。
各エディションで必要な移行手順の詳細については、以下を参照してください。
Exploreから Navigate Edition へ移行
移行作業は不要です。 Explore Edition は Navigate Edition のサブセット であるため、コードは以前と同様にコンパイルおよび動作します。 アプリの libs フォルダー内のライブラリを置き換え、新しい資格情報を AndroidManifest.xml
に挿入するだけで済みます。 HERE の担当者に新しい資格情報をリクエストしてください。 現在 のところ、 Navigate Edition はリクエストを受けた場合にのみ利用できます。
Lite から Explore Editionへ移行
次のセクションをお読みください。 Explore Edition は Navigate Edition のサブセットです。 アプリの libs フォルダー内のライブラリ を置き換える必要がありますが、同じ資格情報 を保持できます。 Lite Edition および Explore Edition の資格情報 は交換可能です。
Lite から Navigate Edition へ移行
Lite Editionが軽量のマップレンダラーを使用するため、マップ ビューに関連するすべてのコードを調整する必要がある場合があります。Navigate Edition に切り替える場合、HERE Rendering Engine の強力なフィーチャーを利用するには、MapViewLite
をMapView
に置き換える必要があります。 幸いなことに、他のすべてのコードは、すでに Navigate Edition と同じネイティブコードベースを共有しているため、同じ状態を保つことができます。
-
MapViewLite
を MapView
に置き換えて開始します。
-
『利用開始 』ガイドに従って、マップ ビューを正しくロードします。 Lite Edition とほぼ同じです。
-
XML レイアウトファイルで名前空間を調整します。
入れ替えには
<com.here.sdk.mapviewlite.MapViewLite
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.here.sdk.mapviewlite.MapViewLite>
を使用します
<com.here.sdk.mapview.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.here.sdk.mapview.MapView>
-
Lite Edition で使用できるMapStyle
スキーム が MapScheme
スタイルに置き換えられていることに注意してください。 NORMAL_DAY
および SATELLITE
スタイルは、両方のエディションで利用できます。 API リファレンス で利用できる追加の定義済みマップスタイルについては、 Navigate Edition を参照してください。
-
カスタムマップスタイルは異なるスタイル形式を使用しており、互換性がないことを確認してください。 HERE Style Editor の高度な機能の詳細については、「カスタムマップスタイル」を参照してください。
-
すぐに使用できるコードスニペットを取得し、マップ ビューにアイテムを追加する方法については、「マップアイテム」セクションを参照してください。 Navigate Edition は、Lite Edition と同じマップアイテムのセットをサポートしています。MapOverlay
ビューの名前がMapViewPin
に変更されました。 Lite Editionで利用できる一部のフィーチャーは 、 Navigate Edition ではまだ利用できません。たとえば、アイテムの回転MapMarker
はだサポートされていません。 上記のセクションでは、現在利用可能なものの概要を示します。
-
Navigate Edition で利用できる相違点と高度な機能については、「カメラ」セクションを参照してください。 MapCamera
では、 3D カメラの完全な制御と、よりエキサイティングなフィーチャーを利用できます。
注
Navigate Edition にはズームレベルもありますが、実際の詳細レベルは異なる場合があります。 Navigate Edition のマッププロジェクションでは、メルカトル図法ではなく地球投影法が使用されます。 さらに 、 Navigate Edition は地球からの距離を使用して、より正確な結果を得ることができるように、カメラをマップの上に配置します。 既存の Lite ズーム レベルの値をメートル単位の距離に変換するには、次の近い方の数式を使用します。
double distanceToEarthInMeters = Math.pow(2, 16.251628683 - zoomlevelFromLite);
移行を支援するために、GitHub の Explore Edition または Navigate Edition にすでに移植されている Lite Edition で利用可能なサンプルアプリと同じセットを見つけることができます。
Premiumから Explore Edition へに移行
次のセクションをお読みください。 Explore Edition は Navigation Edition のサブセットです。 Explore Edition および Navigate Edition の資格情報は交換できません。 Explore Edition の場合、「利用開始」の項で説明されているように、セルフサービスを介して資格情報を取得できます。
Premiumから Navigate Edition へ移行
他のエディションとは異なり 、 Starter および Premium Edition はまったく異なるテクノロジスタックを共有 しているため、新しい SDK エディションの Lite 、 Explore & Navigate は完全に最初から構築されています。 その結果、 API 、概念、および動作が異なります。
その結果、 1:1 の変換はできません。 移行を計画する場合は、移行の前後にアプリをテストするための十分なリソースを計画してください。
この 開発者ガイド で説明されている使用例に従って、利用可能なフィーチャーと考えられる相違点の概要を確認してください。 また、 「主な概念」セクションも参照してください。 HERE Lite、 Explore & Navigate の各エディションで統一された、最も一般的な概念を見つけることができます。
GitHubの Navigate Edition で利用できるサンプルアプリのセットを見つける ことができます。
Starter Edition は サブセットなので、この移行ガイドには明示的に含まれていません。 ただし、 以下のほとんどのセクションは、 Starter からNavigate Edition に移行する場合 、または Navigate Edition ではなく Explore Edition に移行する場合にも適用できます。
注 : 重要
この移行ガイドでは 、 両方のエディションの複雑さと多様性により、 Premium Edition と Navigate Edition の 1:1 の比較については説明していません。 代わりに、一般的な概念とパターン、および相違点に焦点を当てて、利用開始に大まかなガイドラインを提供します。
移行するべき理由
新しい Lite,Explore & Navigate エディション は、最新の HERE テクノロジスタックをサポートするように、完全に一から構築されています。 Starter および Premium Editionと比較すると、次の利点があります。
- マイクロサービスとモジュール化されたコンポーネントを組み込んだ HERE platform からのデータを利用することで、ほとんどの場合、 1 つのエディションから別のエディションへのシームレスな切り替えが可能になります。
- 最適化されたサイズとパフォーマンス。
- 高度なマップレンダリングおよびカスタマイズ機能。
- 毎週更新されるフレッシュなマップ データ。
- 新しいエディションでのみサポートされている新しい HERE platform サービスを利用できます。
4.x 専用のフィーチャー :
- 個人データの持ち込み( BYOD )のサポート。
- カスタムバックエンドおよびマップカタログのサポート ( セルフホスティング ) 。
- 日本などの新しい市場のサポート。
- 電気自動車のサポート。
フィーチャー・一覧
作業を開始する前に、各エディションで利用できる個々のフィーチャーの詳細について確認してください。 HERE SDK の開始ページにある「 HERE SDK のフィーチャー比較」の一覧を参照してください。 さらに、より詳細なNavigateフィーチャーのリストを、各ユーザーガイドの一部として利用できるPremiumフィーチャーのリストと比較します。
注
Navigate Edition で機能が利用できない場合は、HERE の担当者にお問い合わせください。 次回の定期リリースのいずれかですでに予定されている可能性があります。
フィーチャーの不足
Premium Edition と比較して、 Navigate Edition にまだ実装されていないフィーチャーがいくつかあります。 これには、次のものがあります
- 環境ゾーンの警告 : 2023 年第 2 四半期に出荷予定。
- ドットを使用したポリラインスタイル : 2023 年第 2 四半期に出荷予定。
これらの機能のいずれかがアプリ に不可欠な場合は、まだ移行しないことを検討してください。
注
HERE の営業担当者に連絡して、今後リリースされる機能の最新のアップデートタイムラインを確認することをお勧めします。
3.x Premium Edition の次のフィーチャー は非推奨なので、廃止されました。
- 電子ホライズン : HERE では、 3.x Premium Edition の電子ホライズンを 車両制御に統合すること、および現在の ADASIS v2 プロトコルを直接使用することは、契約によって許可されていません。 代わりに、HERE SDK チームは潜在的な経路計算ツールを公開して、運転に関連するイベントを前もって通知し、4.x Navigate Edition で同じユースケースを作成できるようにする予定です。
- オフラインの公共交通機関のルーティング : オフラインタイムテーブルルーティングの精度が十分でないため、このフィーチャーは廃止されました。 そのため、 4.x HERE SDK では、公共交通機関への経路情報の取得は オンラインモードでのみサポートされています。
- バックグラウンドレンダリング : この 3.x フィーチャーは廃止され、 4.x HERE SDK ではサポートされません。 したがって 、 OffScreenRenderer とMapOffScreenRenderer の 4.x の同等の 処理は使用できません。
- TTS 用の録音済み音声 : 録音済みの音声ファイルは廃止されました。 4.x HERE SDK で は、 TTS エンジンをサポートするために複数の言語がサポートされていますが、これらのテキストは文字列としてのみ提供されます。そのため、開発者は、選択したエンジンでこれらのテキストを再生するプラットフォーム ソリューションを選択する必要があります。 ナビゲーションセクション に、この方法の例が表示されます。
フィーチャーの置き換え
3.x の次のフィーチャーは 4.x では直接サポートされていません。代わりに、代替の BYOD ( Bring Your Own Data )ソリューションが使用されます。 詳細については、各アカウント管理者にお問い合わせいただくか、 HERE サポートチームにお問い合わせください。
資格情報
まず、新しい資格情報 を取得します。 Navigate Edition の場合、HERE の担当者に連絡して、一連の評価資格情報 を生成する必要があります。
Premium Edition とは対照的に、 Navigate Edition では異なるタイプの資格情報が使用されます。 アプリ ID 、トークン、およびライセンス ID は不要です。その代わり、次の 2 つの文字列が必要です。
取得した資格情報は 、プラットフォームに関係なく、 Lite および Explore の各エディションで再利用できます。さらに、これらの資格情報を複数のアプリで使用できます。 たとえば、 GitHub にあるすべてのサンプルアプリで動作 します。
注
Premium Edition とは異なり、これらの資格情報 は、アプリのパッケージ名またはアプリケーション ID ではなく、資格情報の取得に使用されるアカウントに関連付けられています。 これにより、複数のアプリで同じ資格情報のセットを使用できます。
SDK の依存関係管理
Lite、 Explore 、および Navigate の各エディション では、 Artifactory はまだサポートされていません。 つまり 、 ここの説明に従って、 HERE SDK ライブラリ( AAR; AAR )を手動でダウンロードして統合する必要があります。
エンジン
特に、Lite、Explore & Navigate Edition のすべてのフィーチャーは、エンジンを中心に構築されています。 特定のフィーチャーを探すには、まず API リファレンス で関連するエンジンを探し、このユーザー ガイド内の関連する章を参照して概要を確認することをお勧めします。
すべてのエンジンが Lite および Explore Edition で利用できるわけではありません。
-
SearchEngine
: ジオコーディングや リバースジオ コーディングなど、場所、提案、場所を検索するすべてのフィーチャーが含まれています。 -
OfflineSearchEngine
: すでにダウンロードされているマップ データを使用してリクエストをローカルで作成するオフラインバージョンの検索。 -
RoutingEngine
: さまざまなオプションやトランスポートタイプを含むルートを計算可能。 -
OfflineRoutingEngine
: すでにダウンロードされているマップ データを使用してルートを計算するオフラインバージョン。 -
LocationEngine
: 高度な HERE Positioning ソリューション。 -
ConsentEngine
: 例 : LocationEngine
を使用する前にユーザーの同意を集約するのに役立つサポートエンジン。 -
Navigator
/ : VisualNavigator
名前に「 engine 」は含まれていませんが、これらのクラスはエンジンとして機能し、ターン・バイ・ターンナビ (矢印ナビ)のすべての機能を制御します。 -
DynamicRoutingEngine
: 現在の交通状況の確認に基づいて、より短いルートまたはより速いルートを定期的に検索するエンジン。 これは、ルートの代替案についてドライバーに通知するためのガイダンス中に役立ちます。 -
TrafficEngine
: 交通障害を検索できるエンジン。 -
MapDownloader
/ : MapUpdater
これらのクラスは、マップ データのダウンロードまたは更新を実行し、オフライン モードをサポートするすべてのアプリケーションの重要な部分をマーク。 -
VenueEngine
: アプリへのプライベート施設の統合をサポートする専用のエンジン。 -
SDKNativeEngine
: 資格情報をプログラムで設定し、他のいくつかの詳細設定を許可するために必要。
マップに関連するすべてのフィーチャーが MapView
クラス全体にグループ化されます。 マップを表示せずに、ヘッドレスモードで HERE SDK を完全に操作できます。
月間アクティブユーザー数のカウント (MAU)
ご利用のプランに応じ て、 HERE SDK は、 1 か月あたりのトランザクション数および月間アクティブユーザー (MAU) などのその他のパラメータに基づいて請求されます。
レガシーアプリデータ
通常、完全に移行されたアプリ は、すでにインストールされているデータが含まれているデバイスで更新されます。 必要に応じて、データを保持、変換、または削除してください。
- Premium Edition は、すべてのマップ関連データを ".here-maps" フォルダに保存します。
- このフォルダが存在する場合は、削除することをお勧めします。
4.x HERE SDK は、 ".here-maps" フォルダを単独で読み取ることも削除することもできません。 フォルダーはアプリのディレクトリ内にあります。 ユーザーは、手動でフォルダーを参照および削除できます。また、そのフォルダーには、アプリケーション自体がアクセスして削除することもできます。
マップビュー
Explore Edition と Navigate Edition は、高度な HERE Rendering Engine フィーチャーを備えています。高度な 3D マップにより、ハイエンドデバイスに合わせて調整された高性能なマップレンダリングが提供され、視覚的に魅力的な真の 3D マップが提供されます。 詳細については、「主な概念」セクションを参照してください。
-
MapView
を統合する には、利用開始ガイドに従ってマップ ビューを適切にロードします。
-
API リファレンス で使用できる定義済みのMapScheme
スタイルについては、 Navigate Edition を参照してください。
-
カスタムマップスタイルは 、 Premium Edition とは異なるスタイル形式を使用しているため、互換性はありません。 HERE Style Editor の高度な機能の詳細については、「カスタムマップスタイル」を参照してください。
-
すぐに使用できるコードスニペットを取得し、マップ ビューにアイテムを追加する方法については、「マップアイテム」セクションを参照してください。 上記のセクションでは、現在利用可能なものの概要を示します。
-
Navigate Edition の違いと高度な機能の概要については、「カメラ」セクションを参照してください。 MapCamera
では、 3D カメラの完全な制御と、よりエキサイティングなフィーチャーを利用できます。 Navigate Edition にはズームレベルもありますが、実際の詳細レベルは異なる場合があります。 さらに 、Navigate Edition は地球からの距離を使用して、より正確な結果を得ることができるように、カメラをマップの上に配置します。
このセクションを補足 するには、ジェスチャーと交通状況の確認のセクションも参照して、利用可能なマップ ビューの動作について確認してください。 マーカーのクラスタリング、 カスタムラスタタイル、 3D ランドマーク 、 アニメーションなど、他の特定のマップフィーチャーはまだ利用できません。
カスタマイズしたズームイン / ズームアウトマップのアニメーションを追加するには、 DOUBLE_TAP
およびTWO_FINGER_TAP
ジェスチャを上書きします。
mapView.getGestures().disableDefaultAction(GestureType.DOUBLE_TAP);
mapView.getGestures().disableDefaultAction(GestureType.TWO_FINGER_TAP);
mapView.getGestures().setDoubleTapListener(new DoubleTapListener() {
@Override
public void onDoubleTap(@NonNull Point2D touchPoint) {
}
});
mapView.getGestures().setTwoFingerTapListener(new TwoFingerTapListener() {
@Override
public void onTwoFingerTap(@NonNull Point2D touchCenterPoint) {
}
});
ジェスチャーセクションでは、これをどのように実装できるかは、チュートリアルで参照可能。
マップカメラ
MapView
インスタンス内のCamera
オブジェクトは 、 Premium Edition のユーザーに新しい概念を提供します。 一般に、ユーザーの視点として関連付けることができます。この視点は、さまざまなアクションを使用して変更できます。 これらのアクションは 、 チルト、ズーム、バウンディングボックスなどの Premium Edition にすでに存在しています。 NMAMapView
の他のプロパティや、地球との新しい距離のようなものもあれば、名前を変更したものもあります。
MapView
に、 Camera
の設定済みの位置からの MapScene
が表示されます。 Camera
オブジェクト自体は変更 MapScene
されません。指定した位置からの 3D シーンのみを表します。
Camera
には、 Premium Edition ユーザー用 transformCenter
としても知られている principlePoint
プロパティがあります。 その違いは tranformCenter
、範囲 [{0}, 1] 、 [0,1]} の相対座標を取得することです。ここで、 {0} 0 } はマップの左上隅、 { 1 、 1 } は右下隅を表します。 デフォルト tranformCenter
値は {0.5,0.5} で、幅と高さの両方を中心にしています。 principlePoint
が画面上の MapView
サイズの範囲内のピクセル値をピクセル単位で取得します。 主なポイント調整の例については「トランスフォームセンターの変更 」セクションを参照してください。
マップレイヤー
用語Layer
は、共通の条件を持つ視覚的なデータを表します。この条件は、 MapView
で表すことができます。 MapScene
は 、複数のマップレイヤを同時に表すことができます。 Layer
の 表示範囲は、 mapScene.setLayerVisibility(layerName, newState)
で制御されます。 これは同期コールであり、指定された状態になります。 状態は VISIBLE
または HIDDEN
です。 既存の layerNames
が Layers
クラスで定義されます。
Layers
使用例を 「交通状況の確認」セクションに示します。
マップアイテム
マップアイテムを追加するためのエントリポイントは MapScene
です。このエントリポイントには、 .mapScene
のコールを使用して MapView
からアクセスできます。
NMAMapCircle
および NMAMapRoute
は 、 Navigate Edition では使用できません。
NMAMapCircle
の代わりに、 GeoCircle
のジオメトリポイントを使用する MapPolygon
を使用してください。 Route
の GeoPolyline
をレンダリングするには、 NMAMapRoute
MapPolyline
が推奨されるタイプです。
MapMarker
イメージの作成には 、 UIImage
PNG データからインスタンス化できるMapImage
クラスを使用します。詳細については、この Github の例を参照してください。
さらに MapMarker
、マップ UIView
にアンカーされているネイティブオブジェクトを表示できます。 UIView ベースのカスタムコンテンツを特別なViewPin
オブジェクトに設定し、マップにアンカーするだけで十分です。 Premium Edition のユーザーは、この特別なオブジェクトクラスをNMAMapOverlay
と認識している可能性があります。
詳細 ViewPin
な説明と例については 、 [ マップ ビューピンの追加 ] セクションを参照してください。
マップスタイル
Navigation Edition のMapView
は 、さまざまな事前定義MapSchemes
を使用してレンダリングでき ます。 たとえば、昼間、夜間、衛星などです。 API リファレンス を参照 して、使用可能なすべてのスタイルを確認してください。 また、専用 の HERE Style Editor を使用してマップをカスタマイズすることもできます。この Premium Edition では使用できません。
カスタムマップスタイルを作成するには、次の操作を行います。
- マップ要素のカラー、幅、およびサイズを定義して、ベースマップ全体のスタイルを設定。
- ズーム レベルでスタイリングをコントロール。
- カスタムフォントとアイコンを使用。
注
カスタムマップスタイルは 、 Premium Edition とは異なるスタイル形式を使用しているため、互換性はありません。
HERE Style Editor の高度な機能の詳細については、「カスタムマップスタイル」を参照してください。
マップダウンローダー
Navigate Edition では、このMapDownloader
クラスは Premium EditionクラスNMAMapLoader
の適切な置き換えです。 アプリケーションでのオフライン マップサポートの実装は、この MapDownloader
クラスから開始されます。 特定の地域または国のマップ データを明示的にプリロードするには、MapDownloader
を使用します。 マップ データのダウンロードの詳細 については、「オフラインマップ」セクションを参照してください。
Premium Edition
ユーザーにとって、オフラインのを取得するプロセスは、アクティブおよびパッシブダウンロードと呼ばれます。
アクティブダウンロード
Navigate Edition では、使用可能 なMapDownloader
メソッドを明示的に実行することで、アクティブなダウンロードが行われます。
ダウンロード可能な国またはワールドマップ データの一部には、特別な地域識別子が付けられています。 ID を持つリージョンのリストを取得するには、メソッドgetDownloadableRegions()
を使用します。 概要を表示するには :
- 最初の
SDKNativeEngine
を作成し(まだ初期化されていない場合)、静的 MapDownloader.fromEngineAsync(sdkNativeEngine)
メソッド呼び出しを使用して MapDownloader
をインスタンス化。 - 利用可能な地域のリストをダウンロード。
- リージョン ID のリストを使用してメソッド
downloadRegions()
を明示的に呼び出し、マップ データのアクティブなダウンロードを開始。 downloadRegions
メソッドの呼び出し後、 MapDownloaderTask
ただちにプロトコルに準拠し、リクエストのキャンセルに使用できるインスタンスを取得。 リージョンデータは非同期でダウンロードされる。 DownloadRegionsStatusListener
結果を処理するメソッドハンドラを実装。
パッシブダウンロード
パッシブマップのダウンロードは暗黙的に行われ、マップ データおよびすべての含まれている情報が更新されます。また、ユーザがマップ シーンを変更した場合(たとえば、マップを使用して移動した場合、パンまたはズームイン / アウトを実行した場合)に、 HERE SDK 自身がオンデマンドで実行します。 この方法では、使用時にネットワーク接続が必要です。 それ以外の場合は、すでにダウンロードされキャッシュされているデータのみが表示されます。
Places
Lite、Explore & Navigate Edition を使用すると、Premium Edition とほぼ同じバックエンドサービスにアクセスできます。 利用開始については、「検索」 セクションを参照してください。
新しい HERE SDK では、SearchRequest
や ExploreRequest
などの個別のリクエストクラスを使用する代わりに、すべてのフィーチャーが 1 つの SearchEngine
に結合されます。 これには、suggestions、ジオ コーディングと リバースジオ コーディング、およびルート沿いの検索などのその他の高度な検索フィーチャーが含まれます。
SearchEngine
では、専用の(オーバーロードされた)メソッドを呼び出すことで、さまざまな非同期要求を開始できます。 たとえば、カテゴリの場所を取得するには、次のオーバーロードされたメソッドsearch()
を使用します。
private void searchForCategories() {
List<PlaceCategory> categoryList = new ArrayList<>();
categoryList.add(new PlaceCategory(PlaceCategory.EAT_AND_DRINK));
categoryList.add(new PlaceCategory(PlaceCategory.SHOPPING_ELECTRONICS));
CategoryQuery categoryQuery = new CategoryQuery(categoryList, new GeoCoordinates(52.520798, 13.409408));
SearchOptions searchOptions = new SearchOptions();
searchEngine.search(categoryQuery, searchOptions, new SearchCallback() {
@Override
public void onSearchCompleted(SearchError searchError, List<Place> list) {
if (searchError != null) {
return;
}
for (Place searchResult : list) {
String addressText = searchResult.getAddress().addressText;
Log.d(TAG, addressText);
}
}
});
}
追加の場所へのリンクの一覧を含む発見リクエストは、評価、画像、レビュー、社説、所有者のコンテンツなど、その場所に関する詳細情報を含むリソースではまだサポートされていません。
接続モード
Premium Edition の検索機能は、オンラインおよびオフライン モードで使用できます。 アプリケーション開発者は、ネットワーク接続が利用可能であっても、オフラインリクエストを強制的に送信することができます。 開発者が接続パラメータを設定していない場合、オンライン / オフラインモード制御はネットワーク接続に基づいて SDK 側で実行されます。
Navigate Edition では、検索機能は 2 つのエンジン SearchEngine
、OfflineSearchEngine
によって制御されます。また、特定のアプリケーションに必要なコンポーネントの構成を柔軟に行うことができます。 SearchEngine
API メソッドのインターフェイスはOfflineSearchEngine
と同じですが、その逆は同じではありません。
Navigate EditionのSearchEngine
は、検索、ジオ コーディング、リバースジオ コーディング、および提案機能を備えたオンラインバージョンです。 OfflineSearchEngine
は 、ローカル検索、ジオ コーディング、およびリバースジオ コーディング要求に、プリロードまたはキャッシュされたマップ データを使用します。 データの鮮度は最新のダウンロード済みマップ データに依存するため、レスポンスがオンラインリクエストSearchEngine
と異なる場合があります。
また 、 Premium Edition と同様に、ネットワークに依存しないコードラッパーを実装することもできます。 オフラインでの検索の詳細 および Githubの例 については、リンクを参照してください。
追加の場所へのリンクの一覧を含む発見リクエストは、評価、画像、レビュー、社説、所有者のコンテンツなど、その場所に関する詳細情報を含むリソースではまだサポートされていません。
経路情報
経路機能を使用すると、開発者は、アプリケーション内の始点と終点の間のルートを定義して表示できます。 道路回避オプションや、車、歩行者、トラックのルート探索のトランスポートタイプなど、多くのオプションをサポートしています。
専用の RoutingEngine
を介して、利用可能なすべてのフィーチャーにアクセスできます。 次の例は、新しい HERE SDK を使用してルートを計算する方法を示しています。
Waypoint startWaypoint = new Waypoint(startGeoCoordinates);
Waypoint destinationWaypoint = new Waypoint(destinationGeoCoordinates);
List<Waypoint> waypoints =
new ArrayList<>(Arrays.asList(startWaypoint, destinationWaypoint));
routingEngine.calculateRoute(
waypoints,
new CarOptions(),
new CalculateRouteCallback() {
@Override
public void onRouteCalculated(@Nullable RoutingError routingError, @Nullable List<Route> routes) {
if (routingError == null) {
Route route = routes.get(0);
} else {
showDialog("Error while calculating a route:", routingError.toString());
}
}
});
経路 セクションでは、機能の概要、および新しい HERE SDK を使用して他の種類のルートを計算する方法について説明します。
徒歩とドライブに最適なターン・バイ・ターンナビ (矢印ナビ)
ナビゲーションエディション は、歩行者、トラック、および車のルートでのナビゲーションをサポートします。 このフィーチャーを使用すると、アプリは現在のデバイス位置を計算されたルートと照合して確認し、ジャストインタイムのナビゲーション指示を取得できます。 ビジュアルとオーディオの両方の命令がサポートされています。 現在、道路の矢印など、ほとんどの視覚的な情報は開発者が追加する必要があります。 このためには、 MSDKUI オープンソースライブラリから利用できるアイコンを使用できます。
Premium Edition とは対照的に、 Navigate Edition はバックグラウンドで実行されているPositioningManager
を利用しません。 代わりに、任意のソースから以下の場所Navigator
に自由にフィードできます 。 このクラスには、利用可能なすべてのガイダンス機能が含まれている。これは PremiumのNavigationManager
と同等 です。
専用 Navigator
クラスを使用すると、現在の位置を追跡し、計算されたルートを使用せずにマップに表示することもできます。
位置情報ソースとルートを設定すると、Navigator
はルート沿いの進行状況に関するイベントを送信します。 たとえば、経由地に到達したことを確認するには、次のスニペットを使用します。
navigator.setMilestoneReachedListener(new MilestoneReachedListener() {
@Override
public void onMilestoneReached(Milestone milestone) {
if (milestone.waypointIndex != null) {
Log.d(TAG, "A user-defined waypoint was reached, index of waypoint: " + milestone.waypointIndex);
Log.d(TAG,"Original coordinates: " + milestone.originalCoordinates);
} else {
Log.d(TAG,"A system defined waypoint was reached at " + milestone.mapMatchedCoordinates);
}
}
});
ナビゲーションの編集( Navigation Editon )は、シミュレーションモードもサポートしています。 navigationManager.simulate(route, speedInMetersPerSecond);
を呼び出す代わりに、別個のLocationSimulator
を使用してLocation
更新を生成します。 これにより、ナビゲーションおよび利用可能なさまざまな位置情報源からの分離をより適切に行うことができます。
次のコードでは、新しいインスタンスを作成し、パラメーターとしてRoute
およびLocationSimulatorOptions
を使用できます。 後者では、希望の速度設定を行うことができます。
LocationSimulator locationSimulator;
try {
locationSimulator = new LocationSimulator(route, locationSimulatorOptions);
} catch (InstantiationErrorException e) {
throw new RuntimeException("Initialization of LocationSimulator failed: " + e.error.name());
}
LocationSimulator
にLocationListener
を添付すると、Location
アップデートに関する通知を受け取ることができます。 次に、それらをNavigator
に個別でフィードできます 。 これにより、 Premium PositionSimulator
は廃止されました。 代わりに、LocationSimulator
を任意のルートシミュレーション目的で使用します。 LocationSimulator
は、 GPX ログトレースの再生もサポートしています。
さまざまなナビゲーションフィーチャーの詳細な概要については 、「ナビゲーション 」セクションを参照してください。
3D シェイプ( 3D 施設)
Premium Edition と比較して、プライベート施設のみを Navigate Edition と統合できます。 ショッピングモール、空港、駅、その他の建物などが含まれます。 施設を検索して施設を開き、マップビューポイントに施設が表示されたときに通知を受け取ることができます。
パブリック施設では Premium Edition はすでに非推奨になっており、 Navigate Edition では使用できません。 施設の所有者であり、 HERE が引き続きサービスまたはパートナーの施設を保守および表面化することを希望する場合は、 venues.support@here.com までお問い合わせください。
ポジショニング
Navigate Editionを使用すると、アプリケーションで 2 つの異なる位置情報ソースから選択できます。 Premium Edition で利用できる基本的な位置情報フィーチャーと同様に、 Android プラットフォームで提供されている任意のネイティブの位置情報を使用できます。
HERE SDK で使用されるLocation
クラスにandroid.location.Location
インスタンスを変換して、最も一般的なフィールドをカバーするには、次のメソッドを使用します。
private Location convertLocation(android.location.Location nativeLocation) {
GeoCoordinates geoCoordinates = new GeoCoordinates(
nativeLocation.getLatitude(),
nativeLocation.getLongitude(),
nativeLocation.getAltitude());
Location location = new Location(geoCoordinates, new Date());
if (nativeLocation.hasBearing()) {
location.bearingInDegrees = (double) nativeLocation.getBearing();
}
if (nativeLocation.hasSpeed()) {
location.speedInMetersPerSecond = (double) nativeLocation.getSpeed();
}
if (nativeLocation.hasAccuracy()) {
location.horizontalAccuracyInMeters = (double) nativeLocation.getAccuracy();
}
return location;
}
Navigate Edition
高度なポジショニングフィーチャー内では、専用LocationEngine
を介して処理 されます。 PositioningManager
このクラスは、 Premium Edition の既知のクラスを置き換えます。
Navigate Edition の高度な位置決め機能については 、「位置を取得 」セクションで説明しています。 オフラインでのネットワークの配置や屋内での配置 はまだ利用できません。
マップのディスクキャッシュ
新しい HERE SDK を使用すると、 SDKNativeEngine
経由で SD カードなどの別の場所にマップディスクキャッシュを設定できます。 これについては 、「主な概念」 セクションで説明しています。
アプリの例
以下に、利用可能なサンプルアプリを並べて比較します。
サーチ、ジオ コーディング、リバースジオ コーディング
マップフィーチャー
ルーティングとナビゲーション
その他のサンプルアプリ