3.x から 4.x に移行する
- 最終更新日時2025年3月19日
- 所要時間 59 分
このガイドラインには、HERE SDK の 3 x エディションから Explore Edition または Navigate Edition に移行するための一連の手順が記載されています。Navigate Edition のすべての機能が Explore Edition で使用できるわけではないことに注意してください。Explore Edition は Navigate Edition のサブセットです。さらに、このガイドでは、ある 4.x エディションから別の 4.x エディションに移行する方法に関するいくつかの注意事項も提供します。
Mapbox や Google マップなどの別の SDK から移行する場合は、「はじめに」セクションを参照することをお勧めします。
注
Lite、Explore、Navigate Edition 内では、プラットフォームを容易に切り替えることができます。Android、iOS、Flutter など、利用可能なすべてのプラットフォームは、内部的に同じネイティブ コード ベースを共有しています。そのため、利用可能な HERE SDK 機能は、個々のプラットフォームの規則に忠実に適合しながら、とのプラットフォームでも一貫性のある動作を実現します。ただし、機能が異なれば、API や動作が異なる可能性があります。たとえば、HERE Rendering Engine は ライト レンダラー とは動作が異なるため、
MapViewLite
コンポーネントには若干異なる API が含まれています。主な違いについての詳細は、以下を参照してください。Starter Edition と Premium Edition は、別のテクノロジー スタックを共有しています。その結果、ほとんどの API、概念、動作が、新しい Lite、 Explore、Navigate Edition とは異なります。このため、より一貫性のある移行戦略が必要になる場合があります。考えられる手順を以下に示します。なお、Starter Edition と Premium Edition は廃止されています。
概略
非常に小規模なプロジェクトを除き、アプリをあるエディションから別のエディションに移行するには時間がかかるため、顧客に重大な変更が生じる可能性があります。労力を最小限に抑えるために、段階的なアプローチを推奨します。
- 開始する前に、機能の利用状況について詳細を確認します。目的のエディションで利用できない機能がある場合は、HERE 担当者にご相談ください。次回の定期リリースのいずれかで、その機能がすでに計画されている可能性があります。
新しいエディションで利用可能なプランを確認します。
HERE 担当者に新しい資格情報のセットをリクエストします。資格情報は、エディション間で相互に使用することはできませません。現時点では、Navigate Edition は、リクエストに応じてのみ入手できます。
移行を開始します。これについては、以下のセクションで詳しく説明します。
注
その他の便利なヒント:
- **機能の比較:**以下のサンプル アプリのセクションでは、主な 3.x の機能を 4.x の機能と比較して示すマッピング表と、これらの各機能の再利用可能なコード スニペットへのリンクを参照できます。
4.x 機能の検索:changelogchangelog では、初日からリリースされたすべての機能または API の記録が集中管理されています。探している機能と一致する可能性があるものを検索します。その後、この開発者ガイドで詳細を確認するか、「API リファレンス」を参照します。
**ユースケース:**以下の「機能リスト」、またはこの開発者ガイドの Q&A セクションで考えられるユースケースを確認することもできます。
移行の計画
アプリの複雑さによっては、ゼロから始める必要がない場合があります。代わりに、既存のプロジェクトのコピーを作成して、機能を段階的に移行することを検討してください。
アプリケーションの移行を正常に完了するには、いくつかの異なる方法があります。考えられる方法の 1 つは、次のようなものです。
まず、古い SDK ライブラリを統合解除します。
- 新しい SDK ライブラリを統合します。手順については、「HERE SDK を統合する」セクションを参照してください。
最後に、新しい API に適応させることでレガシー コードの残りのコンパイル エラーを修正し、テストを開始します。単体テストと統合テストが役立つ場合があります。
注
大規模なプロジェクトでは、事前に新しい SDK でコードをテストできる独立したプロジェクトを作成することが現実的な場合があります。これにより、必要なすべての機能を移行する前に、新しい動作が期待どおりかを確認できます。
ヒントとして、コードをインターフェースに対して実装し、コードを特定のライブラリから切り離しておくと便利です。こうすることで、ライブラリが統合解除されると同時に無数のコンパイルエラーが発生することなく、容易にレガシー コードをコメントアウトして機能的に置き換えることができます。
注
2 つの異なるエディションを同じアプリに統合することはできません。そのため一部のライブラリやクラスでは、コンパイル時に重複エラーが発生することがあります。
4.x の開発者ガイドについても理解しておく必要があります。すべてのコア機能のコーディング例のほか、リリースに合わせてアプリケーションを最適化する方法についてのヒントも記載されています。詳細については、最適化に関するガイドを参照してください。
エディションごとに必要な移行手順の詳細については、以下を参照してください。
Explore Edition から Navigate Edition に移行する
移行作業は不要です。Explore Edition は Navigate Edition のサブセットであるため、コードはこれまでと同じようにコンパイルされて動作します。アプリの libs フォルダー内のライブラリを置き換え、新しい資格情報を AndroidManifest.xml
に挿入するだけです。新しい資格情報は HERE 担当者にリクエストしてください。現時点では、Navigate Edition は、リクエストに応じてのみ入手できます。
Lite Edition から移行する
Lite Edition から Explore Edition または Navigate Edition に移行するすべてのユーザーは、次のセクションで説明する技術的および実用的な変更を考慮する必要があります。
資格情報
✅ Explore Edition では既存の資格情報を使用できます。
❌ Navigate Edition では既存の資格情報を使用できません。
Navigate Edition を使用するには、HERE との契約が必要です。詳細については、お問い合わせください。
さまざまな地図レンダラー
Lite Edition はローエンド デバイスで動作するよう調整された軽量地図レンダラーを使用しています。Explore Edition と Navigate Edition では、より強力でリソース集約型のレンダラーである HERE Rendering Engine を使用しています。
レンダラーの変更により、Explore Edition と Navigate Edition はローエンド デバイスでは動作しません。Explore Edition と Navigate Edition のハードウェア要件の内容については、「最小要件」を参照してください。
移行するには、MapViewLite
を MapView
で置き換える必要があります。次の手順を実行します。
- コード内で、
MapViewLite
をMapView
で置き換えます。 - 「HERE SDK を統合する」に従ってマップ ビューを適切に読み込みます。これは Lite Edition とほぼ同じです。
- XML レイアウト ファイルの名前空間を調整します。
パッケージサイズの増大
Explore Edition と Navigate Edition のパッケージ サイズは、Lite Edition のパッケージ サイズの 8 倍以上あります。
- Lite Edition のパッケージ サイズは約 10MB です。
- Explore Edition と Navigate Edition のパッケージ サイズは 80MB 以上です。
その他の考慮事項
Lite Edition の
MapStyle
スキームはMapScheme
スタイルに置き換えられます。NORMAL_DAY
およびSATELLITE
スタイルは、両方のエディションで利用できます。 Explore Edition で使用できる事前定義済みマップ スタイルの詳細については、「API リファレンス」を参照してください。Navigate Edition で使用できる事前定義済みマップ スタイルの詳細については、「APIリファレンス」を参照してください。カスタム マップ スタイルは異なる形式を使用しているため、互換性はありません。Lite Edition で作成されたスタイルは使用できません。HERE Style Editor を使用してカスタムスタイルを再作成するか、新しいスタイルを最初から作成します。詳細については、「カスタム マップ スタイル」を参照してください。
Explore Edition と Navigate Edition は、Lite Edition と同じマップ アイテムをサポートしています。
MapOverlay
ビューはMapViewPin
に名称が変更されます。アイテムをマップ ビューに追加してすぐに使えるコード スニペットを取得する方法については、マップ アイテムのトピックを参照してください。Explore Edition と Navigate Edition には 3D カメラ制御などの高度なカメラ機能があります。詳細については、「カメラ」トピックを参照してください。
Explore Edition と Navigate Edition ではズーム レベルが提供されますが、詳細レベルは Lite Edition とは異なる場合があります。Explore Edition と Navigate Edition ではより正確な結果を得るために、地球までの距離を使用してカメラを地図の上に配置します。既存の Lite Edition のズーム レベルの値をメートル単位の距離に変換するには、次の近似式を使用します。
double distanceToEarthInMeters = Math.pow(2, 16.251628683 - zoomlevelFromLite);
MapMarker
アイテムの回転は Explore Edition または Navigate Edition では使用できません。
サンプル アプリ
サンプル アプリを使用すると、選択したエディションへの移行に役立ちます。こちらにホストされている Lite Edition 用に作成されたすべてのサンプル アプリは、Explore Edition と Navigate Edition でも利用可能です。
利用可能なすべての例を確認するには、GitHub リポジトリにアクセスします。
Premium Edition から Explore Edition に移行する
Explore Edition は Navigate Edition のサブセットです。Explore Edition と Navigate Edition の資格情報は相互に使用できません。Explore Edition の場合は、「HERE SDK パッケージを入手する」セクションで説明されているように、セルフサービスにより資格情報を取得できます。
Premium Edition から Navigate Edition に移行する
他のエディションとは異なり、Starter Edition と Premium Edition はまったく別のテクノロジー スタックを共有しているため、新しい SDK エディションの Lite、Explore、Navigate は完全にゼロから構築されます。そのため、API、概念、動作が異なります。
これは結果的に、1:1 で変換することはできないことを意味します。移行を計画する場合は、移行の前後にアプリをテストするための十分なリソースを確保してください。
この開発者ガイドで説明されているユースケースに従って、利用可能な機能と考えられる相違点の概要を確認してください。「主な概念」セクションも参照してください。ここでは、Lite、Explore、Navigate の各エディションに共通する、最も一般的な概念を見つけることができます。
Navigate Edition で使用できるサンプル アプリ一式は、GitHub で確認できます。
Starter Edition はサブセットであるため、この移行ガイドには明示的に記載されていません。ただし、以下のセクションのほとんどは、Starter Edition から Navigate Edition に移行する場合、または Explore Edition に移行する場合にも適用できます__。
注
この移行ガイドでは、両エディションの複雑さと多様性により、Premium Edition と Navigate Edition の違いを個別に比較して説明していません。代わりに、一般的な概念とパターン、相違点に焦点を当てて、はじめにのための大まかなガイドラインを提供します。
ほとんどの場合、コードを 1 行ずつ変換するのではなく、古いコードを完全に削除して、Navigate Edition から新しいコードを機能的に挿入する方が簡単です。
- そのための最善のアプローチは、この開発者ガイドまたは GitHub に示されているさまざまなユースケースから取得できる適切なコード スニペットを探すことです。上記の「移行の計画」も参照してください。
移行すべき理由
新しい Explore Edition と Navigate Edition は、最新の HERE テクノロジー スタックを確実にサポートするように、完全にゼロから構築されています。Starter Edition および Premium Edition と比較すると、次のような利点があります。
- マイクロサービスとモジュール化されたコンポーネントを組み込んだ HERE プラットフォームからのデータを利用することで、1 つのエディションから別のエディションへのシームレスな切り替えを実現。
- 最適化されたサイズとパフォーマンス。
- 高度な地図のレンダリングとカスタマイズ機能。
- 毎週更新される最新のマップ データ。
- 新しいエディションでのみサポートされている新しい HERE プラットフォーム サービスを利用。
4.x 限定で利用できる機能:
- カスタム マップ カタログのサポート。
- カスタム バックエンド (セルフホスティング) のサポート。
- 日本などの新規市場に対応。
- 電気自動車に対応。
機能一覧
作業を開始する前に、各エディションで利用できる個々の機能の利用状況について確認してください。Navigate の機能一覧と Premium の機能一覧を比較します。この一覧はそれぞれのユーザー ガイドに記載されています。
注
Navigate Edition で使用できない機能がある場合は、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 ではサポートされません。そのため、4.x には OffScreenRenderer と MapOffScreenRenderer に相当する機能はありません。
- **TTS 用に事前に録音された音声:**事前に録音された音声ファイルは廃止されました。4.x HERE SDK は TTS エンジンをサポートするために複数の言語に対応していますが、これらのテキストは文字列としてのみ提供されるため、開発者はプラットフォーム ソリューションを選択して、これらのテキストを任意のエンジンで再生する必要があります。「ナビゲーション」セクションで、これを行う方法の例を示します。
置き換えられた機能
3.x の次の機能は、4.x では直接サポートされていないため、次の代替ソリューションに置き換えられています。
- Custom Location Extension 2 (CLE2)/CLE2 オフライン:
- カスタム ルーター拡張/フリート テレマティクス (CRE/FTCR):
- プラットフォーム データ拡張 (PDE):
「カスタム データ移行ガイド」には、4.x HERE SDK が提供する新しいカスタム データの概念がまとめられています。
資格情報
まず、新しい資格情報を取得します。Navigate Edition の場合は、HERE 担当者に連絡して、一連の評価資格情報を生成する必要があります。
Premium Edition とは対照的に、Navigate Edition では異なるタイプの資格情報を使用します。アプリ ID、トークン、ライセンス ID は不要です。その代わり、次の 2 つの文字列が必要です。
- アクセス キー ID
- アクセス キー シークレット
取得した資格情報は、プラットフォームに関係なく、Lite および Explore Edition で再度利用できます。さらに、これらの資格情報は複数のアプリで使用できます。たとえば、GitHub で見つかるすべてのサンプル アプリで使えます。
注
Premium Edition とは異なり、これらの資格情報は、アプリケーションのパッケージ名やアプリケーション ID に関連付けられているのではなく、資格情報を取得するために使用されるアカウントに関連付けられています。そのため、複数のアプリで同じ資格情報のセットを使用できます。
SDK の依存関係を管理する
Lite、Explore、Navigate Edition では、Artifactory はまだサポートされていません。そのため、HERE SDK ライブラリ (AAR) を手動でダウンロードして統合する必要があります。詳細については、「HERE SDK パッケージを入手する」を参照してください。
エンジン
特に注目すべき点として、Lite、Explore、Navigate Edition のすべての機能はエンジンを中心に構築されています。特定の機能を確認するには、まず「API リファレンス」で関連するエンジンを探し、このユーザー ガイド内の関連する章を参照して概要を確認することをお勧めします。
Lite および Explore Edition では、すべてのエンジンを使用できるわけではありません。
SearchEngine
:ジオコーディングやリリバース ジオコーディングなど、場所、候補、位置情報を検索するすべての機能が含まれています。OfflineSearchEngine
:ダウンロード済みのマップ データを使用してローカルでリクエストを実行する、オフライン バージョンの検索です。RoutingEngine
:さまざまなオプションや交通機関タイプを含むルートを計算できます。OfflineRoutingEngine
:ダウンロード済みのマップ データを使用してルートを計算するオフライン バージョンです。LocationEngine
:高度な HERE Positioning のソリューションです。ConsentEngine
:LocationEngine
などを使用する前にユーザーの同意を集約するのに役立つサポート エンジンです。Navigator
/VisualNavigator
:名前に「エンジン」は含まれていませんが、これらのクラスはエンジンとして機能し、ターン・バイ・ターンナビに関連するすべての機能を制御します。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 マップを提供します。詳細については、「主な概念」セクションを参照してください。
MapView
を統合するには、「HERE SDK を統合する」ガイドに従ってマップ ビューを適切に読み込みます。Navigate Edition で利用できる事前定義済みの
MapScheme
スタイルについては、「API リファレンス」を参照してください。カスタム マップ スタイルは、Premium Edition とは異なるスタイル形式を使用しているため、互換性はありません。HERE Style Editor の高度な機能の詳細については、「カスタム マップ スタイル」セクションを参照してください。
- すぐに使用できるコード スニペットを取得し、マップ ビューにアイテムを追加する方法については、マップ アイテムのセクションを参照してください。上記のセクションでは、現在利用可能な機能の概要を確認できます。
「カメラ」セクションを読み、Navigate Edition の相違点と高度な機能の概要を確認してください。
MapCamera
では、3D カメラの完全な制御と、より優れた機能を利用できます。Navigate Edition にもズーム レベルはありますが、実際の詳細レベルは異なる場合があります。さらに、Navigate Edition ではより正確な結果を得るために、地球までの距離を使用してカメラをマップの上に配置します。
このセクションを補足するため、「ジェスチャー」および「交通状況の確認」のセクションも参照して、利用可能なマップ ビューの動作について確認してください。マーカー クラスタリング、カスタム ラスター タイル、3D ランドマーク、アニメーションなど、その他の特定のマップ フィーチャーはまだ利用できません。
カスタマイズしたズーム イン/outの地図アニメーションを追加するには、DOUBLE_TAP
と TWO_FINGER_TAP
のジェスチャーを上書きします。
「ジェスチャー」セクションでは、これを実装する方法についてのチュートリアルを参照できます。
マップ カメラ
MapView
インスタンス内にある Camera
オブジェクトは、Premium Edition のユーザーには新しい概念です。一般に、これはユーザーの視点として関連付けることができ、この視点はさまざまなアクションを使用して変更できます。これらのアクション、たとえば傾斜、ズーム、バウンディング ボックス、NMAMapView
のその他のプロパティなど、すでに Premium Edition では存在していたものもあれば、新しいもの (地球への距離など) や名称が変更されたものもあります。
MapView
は、設定された Camera
の位置からの MapScene
を表示します。Camera
自体は MapScene
オブジェクトを変更することはなく、単に指定された位置からの 3D シーンを表示します。
Camera
には、principlePoint
プロパティ (Premium Edition ユーザーには transformCenter
として知られている) があります。その違いは、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
です。このエントリー ポイントには、MapView
から .mapScene
コールを使用してアクセスできます。
NMAMapCircle
および NMAMapRoute
は、Navigate Edition では使用できません。
NMAMapCircle
の代わりに、GeoCircle
のジオメトリー ポイントを使用するMapPolygon
を使用してください。NMAMapRoute
の場合、Route
のGeoPolyline
をレンダリングするのに推奨されるタイプはMapPolyline
です。
MapMarker
イメージの作成には、UIImage
PNG データからインスタンス化できる MapImage
クラスを使用します。詳細については、こちらの GitHub の例を参照してください。
MapMarker
に加え、ユーザーは地図に固定されるネイティブな UIView
オブジェクトを表示できます。カスタム UIView ベースのコンテンツを特別な ViewPin
オブジェクトに設定して、地図に固定するだけで十分です。Premium Edition のユーザーは、この特別なオブジェクト クラスを NMAMapOverlay
として認識している可能性があります。
ViewPin
のより詳細な説明と例については、「マップ表示ピンを追加する」セクションを参照してください。
マップ スタイル
Navigate Edition の MapView
は、さまざまな事前定義済みの MapSchemes
を使用してレンダリングできます。たとえば、昼、夜、衛星写真などのマップ スキームがあります。使用可能なすべてのスタイルについては、「API リファレンス」を参照してください。また、地図のカスタマイズは、専用の HERE Style Editor を使用して行うことができます。この機能は Premium Edition では利用できません。
カスタム マップ スタイルを作成するには、以下を行います。
- マップ要素の色、幅、サイズを定義して、ベース マップ全体のスタイルを設定する。
- ズーム レベルでスタイリングをコントロールする。
注
カスタム マップ スタイルは、Premium Edition とは異なるスタイル形式を使用しているため、互換性はありません。
HERE Style Editor の高度な機能の詳細については、「カスタム マップ スタイル」セクションを参照してください。
マップ ダウンローダー
Premium Edition の NMAMapLoader
クラスは、Navigate Edition では、MapDownloader
クラスに正式に置き換わっています。アプリケーションでのオフライン マップ サポートの実装は、この MapDownloader
クラスから開始されます。特定の地域または国のマップ データを明示的にプリロードするには、MapDownloader
を使用します。マップ データのダウンロードの詳細については、「オフライン マップ」セクションを参照してください。
Premium Edition
のユーザーは、オフライン マップを取得するプロセスを、アクティブおよびパッシブ ダウンロードとして認識しています。
アクティブ ダウンロード
Navigate Edition では、利用可能な MapDownloader
メソッドを明示的に実行することによってアクティブ ダウンロードが行われます。
ダウンロード可能な国または世界地図データの一部には、特別な地域 ID が付けられています。getDownloadableRegions()
メソッドを使用して、地域と ID のリストを取得します。概要を表示するには、次の手順を実行します。
- まず、
SDKNativeEngine
を作成し (まだ初期化されていない場合)、次に静的なMapDownloader.fromEngineAsync(sdkNativeEngine)
メソッド呼び出しを使用してMapDownloader
をインスタンス化します。 - 利用可能な地域のリストをダウンロードします。
- リージョン ID のリストを使用して
downloadRegions()
メソッドを明示的に呼び出し、マップ データのアクティブ ダウンロードを開始します。 downloadRegions
メソッドを呼び出すと、すぐにMapDownloaderTask
プロトコルに準拠し、リクエストのキャンセルに使用できるインスタンスを取得できます。地域データは非同期的にダウンロードされます。DownloadRegionsStatusListener
メソッド ハンドラーを実装して、結果を処理します。
パッシブ ダウンロード
地図のパッシブ ダウンロードは、マップ データと含まれているすべての情報を更新するために暗黙的に実行されます。また、これはユーザーがマップ シーンを変更したとき (たとえば、ユーザーが地図を使用して移動したときや、パンまたはズームイン/outしたとき) に、HERE SDK 自体により、オンデマンドで実行されます。この方法を使用するときは、ネットワーク接続が必要です。ネットワーク接続がない場合は、すでにダウンロードされキャッシュに保存されたデータのみが表示されます。
場所
Lite、Explore、Navigate Edition を使用すると、Premium Edition とほぼ同じバックエンド サービスにアクセスできます。利用を開始するには、「検索」セクションを参照してください。
新しい HERE SDK では、SearchRequest
や ExploreRequest
などの個別のリクエスト クラスを使用する代わりに、すべての機能が 1 つの SearchEngine
に統合されています。これには、推奨、ジオコーディングとリバース ジオコーディング、ルート沿いの検索などのその他の高度な検索機能が含まれます。
SearchEngine
を使用すると、専用の (オーバーロードされた) メソッドを呼び出すことで、さまざまな非同期リクエストを開始できます。たとえば、カテゴリーの場所を取得するには、次のオーバーロードされた search()
メソッドを使用します。
評価、画像、レビュー、記事、所有者コンテンツなど、その場所に関する詳細情報が記載された、場所の追加リソースへのリンク一覧を含む場所の検索リクエストは、まだサポートされていません。
接続モード
Premium Edition の検索機能は、オンラインおよびオフライン モードで使用できます。アプリケーション開発者は、ネットワーク接続が利用できる場合でも、オフライン リクエストを強制するオプションを使用できます。開発者によって接続パラメーターが設定されていない場合は、ネットワーク接続に基づき、SDK 側でオンライン/offline モードの制御が実行されます。
Navigate Edition では、検索機能は 2 つのエンジン (SearchEngine
と OfflineSearchEngine
) によって制御され、特定のアプリケーションに必要なコンポーネントの構成を柔軟に行うことができます。SearchEngine
の API メソッドのインターフェースは OfflineSearchEngine
と同じですが、その逆は同じではありません。
Navigate Edition の SearchEngine
は、検索、ジオコーディング、リバース ジオコーディング、提案機能を備えたオンライン バージョンです。OfflineSearchEngine
は、ローカル探索、ジオコーディング、リバース ジオコーディングのリクエストに、プリロードまたはキャッシュに保存されたマップ データを使用します。データの鮮度は最新のダウンロード済みマップ データに依存するため、オンラインの SearchEngine
リクエストとはレスポンスが異なる場合があります。
また、Premium Edition と同様に、ネットワークに依存しないコード ラッパーを実装できます。オフラインでの検索の詳細および GitHub の例については、リンクを参照してください。
評価、画像、レビュー、記事、所有者コンテンツなど、その場所に関する詳細情報が記載された、場所の追加リソースへのリンク一覧を含む場所の検索リクエストは、まだサポートされていません。
経路
経路機能を使用すると、開発者はアプリケーション内で出発地点と目的地点の間のルートを定義して表示できます。この機能は、道路の回避設定オプションや、車、歩行者、トラックのルーティングの移動タイプなど、多くのオプションをサポートしています。
専用の RoutingEngine
を使用して、利用可能なすべての機能にアクセスできます。次の例は、新しい HERE SDK を使用してルートを計算する方法を示しています。
経路のセクションでは、機能の概要と、新しい HERE SDK を使用して他のタイプのルートを計算する方法について説明しています。
徒歩とドライブのためのターン・バイ・ターンナビ
Navigate Edition は歩行者、トラック、自動車のルートのナビゲーションをサポートします。この機能を使用すると、アプリは現在のデバイス位置を計算されたルートと照合して確認し、ジャストインタイムのナビゲーション指示を取得できます。視覚的な指示と音声による指示の両方に対応しています。現在、道路の矢印など、ほとんどの視覚的な情報は開発者が追加する必要があります。この場合、MSDKUI オープン ソース ライブラリから入手できるアイコンを使用できます。
Premium Edition とは対照的に、Navigate Edition ではバックグラウンドで実行される PositioningManager
を使用しません。代わりに、任意のソースからの位置情報を、自由に Navigator
にフィードできます。このクラスには、利用可能なすべてのガイダンス機能が含まれています。これは Premium の NavigationManager
と同等です。
専用の Navigator
クラスを使用すると、現在の位置を追跡し、計算されたルートを使用せずに地図に表示することもできます。
位置情報ソースとルートを設定すると、Navigator
はルート沿いの進行状況に関するイベントを送信します。たとえば、経由地に到達したことを確認するには、次のスニペットを使用します。
Navigate Edition はシミュレーション モードにも対応しています。navigationManager.simulate(route, speedInMetersPerSecond);
を呼び出す代わりに、別の LocationSimulator
を使用して Location
の更新情報を生成します。これにより、ナビゲーションや利用可能なさまざまな位置情報源からの分離が改善されます。
次のコードにより、新しいインスタンスを作成し、Route
および LocationSimulatorOptions
をパラメーターとして許可します。後者では、目的の速度設定を行うことができます。
LocationListener
を LocationSimulator
に接続すると、Location
の更新に関する通知を受け取ることができます。次に、それらを Navigator
に個別にフィードできます 。これにより、Premium の PositionSimulator
は廃止されました。代わりに、LocationSimulator
を任意のルート シミュレーション目的で使用します。LocationSimulator
は、GPX ログ トレースの再生にも対応しています。
音声合成による音声ナビゲーションをサポートするために、別途
VoiceCatalog
をダウンロードする必要はありません。利便性を向上させるため、これらのアセットは HERE SDK ライブラリに統合されました。交通情報に対応したルート検索はデフォルトで有効になっており、現在の交通遅延はターン・バイ・ターンナビ中に
RouteProgress
イベントから取得できます。
さまざまなナビゲーション機能の詳細な説明については、「ナビゲーション」セクションを参照してください。
3D 施設
Premium Edition とは対照的に、HERE Indoor Map 機能で Navigate Edition と統合できるのは非公開施設のみです。これには、ショッピングモール、空港、鉄道駅、その他の建物が含まれます。施設を検索、開設できるほか、施設がマップ ビュー ポートに表示されたときに通知を受け取ることができます。
公共施設は、Premium Edition ではすでに廃止されており、Navigate Edition では利用できません。施設の所有者であり、HERE またはパートナーのサービス提供で引き続き施設を維持および表示することを希望する場合は、venues.support@here.com までお問い合わせください。
ポジショニング
Navigate Edition を使用すると、アプリケーションは 2 つの異なる位置情報ソースから選択できます。Premium Edition で使用できる基本的な位置情報機能と同様に、Android プラットフォームで提供されている任意のネイティブの位置情報を使用できます。
次のメソッドを使用して、最も一般的なフィールドをカバーするために android.location.Location
インスタンスを HERE SDK で使用される Location
クラスに変換します。
Navigate Edition
内では、高度なポジショニング機能は専用の LocationEngine
を介して処理されます。このクラスは Premium Edition の既知の PositioningManager
を置き換えます。
Navigate Edition の高度なポジショニング機能については、「位置情報の取得」セクションで説明しています。オフラインの Network Positioning と屋内のポジショニングはまだ利用できません。
地図のディスク キャッシュ
新しい HERE SDK を使用すると、SDKNativeEngine
経由で SD カードなどの別の場所に地図のディスク キャッシュを設定できます。これについては、「主な概念」セクションで説明しています。
アプリを移行すると、以前にダウンロードおよびインストールされたすべてのマップ データを削除できます。また、3.x キャッシュ内の既存のデータは使用されなくなりますので、3.x キャッシュからすべてのデータを削除することをお勧めします。4.x HERE SDK では、以前のフォーマットと互換性のない、まったく新しい最適化されたマップ形式が使用されます。
サンプル アプリ
以下に、利用可能なサンプル アプリの対照比較を示します。
検索、ジオコーディング、リバース ジオコーディング
マップ フィーチャー
ルート検索とナビゲーション
その他のサンプル アプリ
この記事内
- 概略
- 移行の計画
- Explore Edition から Navigate Edition に移行する
- Lite Edition から移行する
- Premium Edition から Explore Edition に移行する
- Premium Edition から Navigate Edition に移行する
- 移行すべき理由
- 機能一覧
- 実装されていない機能
- 資格情報
- SDK の依存関係を管理する
- エンジン
- レガシー アプリ データ
- マップ ビュー
- マップ カメラ
- マップ レイヤー
- マップ アイテム
- マップ スタイル
- マップ ダウンローダー
- 場所
- 接続モード
- 経路
- 徒歩とドライブのためのターン・バイ・ターンナビ
- 3D 施設
- ポジショニング
- 地図のディスク キャッシュ
- サンプル アプリ