Powered by Zoomin Software.詳細については、以下までお問い合わせくださいZoomin

HERE SDK for Android Explore - 開発者ガイド

製品カテゴリ
テクノロジー
ドキュメント タイプ
バージョン
製品ライフサイクル
本書

HERE SDK for Android Explore - 開発者ガイド: 3.x から 4.x に移行する

フィードバック
印刷
目次

3.x から 4.x に移行する

フィードバック
印刷
  • 最終更新日時2025年3月19日
  • 所要時間 59 分

このガイドラインには、HERE SDK の 3 x エディションから Explore Edition または Navigate Edition に移行するための一連の手順が記載されています。Navigate Edition のすべての機能が Explore Edition で使用できるわけではないことに注意してください。Explore EditionNavigate Edition のサブセットです。さらに、このガイドでは、ある 4.x エディションから別の 4.x エディションに移行する方法に関するいくつかの注意事項も提供します。

Mapbox や Google マップなどの別の SDK から移行する場合は、「はじめに」セクションを参照することをお勧めします。

  • LiteExploreNavigate Edition 内では、プラットフォームを容易に切り替えることができます。Android、iOS、Flutter など、利用可能なすべてのプラットフォームは、内部的に同じネイティブ コード ベースを共有しています。そのため、利用可能な HERE SDK 機能は、個々のプラットフォームの規則に忠実に適合しながら、とのプラットフォームでも一貫性のある動作を実現します。ただし、機能が異なれば、API や動作が異なる可能性があります。たとえば、HERE Rendering Engineライト レンダラー とは動作が異なるため、MapViewLite コンポーネントには若干異なる API が含まれています。主な違いについての詳細は、以下を参照してください。

  • Starter EditionPremium Edition は、別のテクノロジー スタックを共有しています。その結果、ほとんどの API、概念、動作が、新しい LiteExploreNavigate Edition とは異なります。このため、より一貫性のある移行戦略が必要になる場合があります。考えられる手順を以下に示します。なお、Starter EditionPremium Edition は廃止されています。

概略

非常に小規模なプロジェクトを除き、アプリをあるエディションから別のエディションに移行するには時間がかかるため、顧客に重大な変更が生じる可能性があります。労力を最小限に抑えるために、段階的なアプローチを推奨します。

  1. 開始する前に、機能の利用状況について詳細を確認します。目的のエディションで利用できない機能がある場合は、HERE 担当者にご相談ください。次回の定期リリースのいずれかで、その機能がすでに計画されている可能性があります。
  2. 新しいエディションで利用可能なプランを確認します。

  3. HERE 担当者に新しい資格情報のセットをリクエストします。資格情報は、エディション間で相互に使用することはできませません。現時点では、Navigate Edition は、リクエストに応じてのみ入手できます。

  4. 移行を開始します。これについては、以下のセクションで詳しく説明します。

その他の便利なヒント:

  • **機能の比較:**以下のサンプル アプリのセクションでは、主な 3.x の機能を 4.x の機能と比較して示すマッピング表と、これらの各機能の再利用可能なコード スニペットへのリンクを参照できます。
  • 4.x 機能の検索:changelogchangelog では、初日からリリースされたすべての機能または API の記録が集中管理されています。探している機能と一致する可能性があるものを検索します。その後、この開発者ガイドで詳細を確認するか、「API リファレンス」を参照します。

  • **ユースケース:**以下の「機能リスト」、またはこの開発者ガイドの Q&A セクションで考えられるユースケースを確認することもできます。

移行の計画

アプリの複雑さによっては、ゼロから始める必要がない場合があります。代わりに、既存のプロジェクトのコピーを作成して、機能を段階的に移行することを検討してください。

アプリケーションの移行を正常に完了するには、いくつかの異なる方法があります。考えられる方法の 1 つは、次のようなものです。

  1. まず、古い SDK ライブラリを統合解除します。

  2. 新しい SDK ライブラリを統合します。手順については、「HERE SDK を統合する」セクションを参照してください。
  3. 最後に、新しい API に適応させることでレガシー コードの残りのコンパイル エラーを修正し、テストを開始します。単体テストと統合テストが役立つ場合があります。

大規模なプロジェクトでは、事前に新しい SDK でコードをテストできる独立したプロジェクトを作成することが現実的な場合があります。これにより、必要なすべての機能を移行する前に、新しい動作が期待どおりかを確認できます。

ヒントとして、コードをインターフェースに対して実装し、コードを特定のライブラリから切り離しておくと便利です。こうすることで、ライブラリが統合解除されると同時に無数のコンパイルエラーが発生することなく、容易にレガシー コードをコメントアウトして機能的に置き換えることができます。

2 つの異なるエディションを同じアプリに統合することはできません。そのため一部のライブラリやクラスでは、コンパイル時に重複エラーが発生することがあります。

4.x の開発者ガイドについても理解しておく必要があります。すべてのコア機能のコーディング例のほか、リリースに合わせてアプリケーションを最適化する方法についてのヒントも記載されています。詳細については、最適化に関するガイドを参照してください。

エディションごとに必要な移行手順の詳細については、以下を参照してください。

Explore Edition から Navigate Edition に移行する

移行作業は不要です。Explore EditionNavigate 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 EditionNavigate Edition では、より強力でリソース集約型のレンダラーである HERE Rendering Engine を使用しています。

レンダラーの変更により、Explore EditionNavigate Edition はローエンド デバイスでは動作しません。Explore EditionNavigate Edition のハードウェア要件の内容については、「最小要件」を参照してください。

移行するには、MapViewLiteMapView で置き換える必要があります。次の手順を実行します。

  1. コード内で、MapViewLiteMapView で置き換えます。
  2. HERE SDK を統合する」に従ってマップ ビューを適切に読み込みます。これは Lite Edition とほぼ同じです。
  3. XML レイアウト ファイルの名前空間を調整します。
<!--Replace the code for Lite Edition:-->

<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>

<!--With this code:-->

<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>

パッケージサイズの増大

Explore EditionNavigate Edition のパッケージ サイズは、Lite Edition のパッケージ サイズの 8 倍以上あります。

  • Lite Edition のパッケージ サイズは約 10MB です。
  • Explore EditionNavigate Edition のパッケージ サイズは 80MB 以上です。

その他の考慮事項

  • Lite EditionMapStyle スキームは MapScheme スタイルに置き換えられます。NORMAL_DAY および SATELLITE スタイルは、両方のエディションで利用できます。 Explore Edition で使用できる事前定義済みマップ スタイルの詳細については、「API リファレンス」を参照してください。Navigate Edition で使用できる事前定義済みマップ スタイルの詳細については、「APIリファレンス」を参照してください。

  • カスタム マップ スタイルは異なる形式を使用しているため、互換性はありません。Lite Edition で作成されたスタイルは使用できません。HERE Style Editor を使用してカスタムスタイルを再作成するか、新しいスタイルを最初から作成します。詳細については、「カスタム マップ スタイル」を参照してください。

  • Explore EditionNavigate Edition は、Lite Edition と同じマップ アイテムをサポートしています。MapOverlay ビューは MapViewPin に名称が変更されます。アイテムをマップ ビューに追加してすぐに使えるコード スニペットを取得する方法については、マップ アイテムのトピックを参照してください。

  • Explore EditionNavigate Edition には 3D カメラ制御などの高度なカメラ機能があります。詳細については、「カメラ」トピックを参照してください。

  • Explore EditionNavigate Edition ではズーム レベルが提供されますが、詳細レベルは Lite Edition とは異なる場合があります。Explore EditionNavigate Edition ではより正確な結果を得るために、地球までの距離を使用してカメラを地図の上に配置します。既存の Lite Edition のズーム レベルの値をメートル単位の距離に変換するには、次の近似式を使用します。

    double distanceToEarthInMeters = Math.pow(2, 16.251628683 - zoomlevelFromLite);
    
  • MapMarker アイテムの回転は Explore Edition または Navigate Edition では使用できません。

サンプル アプリ

サンプル アプリを使用すると、選択したエディションへの移行に役立ちます。こちらにホストされている Lite Edition 用に作成されたすべてのサンプル アプリは、Explore EditionNavigate Edition でも利用可能です。

利用可能なすべての例を確認するには、GitHub リポジトリにアクセスします。

Premium Edition から Explore Edition に移行する

Explore EditionNavigate Edition のサブセットです。Explore EditionNavigate Edition の資格情報は相互に使用できません。Explore Edition の場合は、「HERE SDK パッケージを入手する」セクションで説明されているように、セルフサービスにより資格情報を取得できます。

Premium Edition から Navigate Edition に移行する

他のエディションとは異なり、Starter EditionPremium Edition はまったく別のテクノロジー スタックを共有しているため、新しい SDK エディションの LiteExploreNavigate は完全にゼロから構築されます。そのため、API、概念、動作が異なります。

これは結果的に、1:1 で変換することはできないことを意味します。移行を計画する場合は、移行の前後にアプリをテストするための十分なリソースを確保してください。

この開発者ガイドで説明されているユースケースに従って、利用可能な機能と考えられる相違点の概要を確認してください。「主な概念」セクションも参照してください。ここでは、LiteExploreNavigate の各エディションに共通する、最も一般的な概念を見つけることができます。

Navigate Edition で使用できるサンプル アプリ一式は、GitHub で確認できます。

Starter Edition はサブセットであるため、この移行ガイドには明示的に記載されていません。ただし、以下のセクションのほとんどは、Starter Edition から Navigate Edition に移行する場合、または Explore Edition に移行する場合にも適用できます__。

この移行ガイドでは、両エディションの複雑さと多様性により、Premium EditionNavigate Edition の違いを個別に比較して説明していません。代わりに、一般的な概念とパターン、相違点に焦点を当てて、はじめにのための大まかなガイドラインを提供します。

  • ほとんどの場合、コードを 1 行ずつ変換するのではなく、古いコードを完全に削除して、Navigate Edition から新しいコードを機能的に挿入する方が簡単です。

  • そのための最善のアプローチは、この開発者ガイドまたは GitHub に示されているさまざまなユースケースから取得できる適切なコード スニペットを探すことです。上記の「移行の計画」も参照してください。

移行すべき理由

新しい Explore EditionNavigate 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 には OffScreenRendererMapOffScreenRenderer に相当する機能はありません。
  • **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 の依存関係を管理する

LiteExploreNavigate Edition では、Artifactory はまだサポートされていません。そのため、HERE SDK ライブラリ (AAR) を手動でダウンロードして統合する必要があります。詳細については、「HERE SDK パッケージを入手する」を参照してください。

エンジン

特に注目すべき点として、LiteExploreNavigate Edition のすべての機能はエンジンを中心に構築されています。特定の機能を確認するには、まず「API リファレンス」で関連するエンジンを探し、このユーザー ガイド内の関連する章を参照して概要を確認することをお勧めします。

Lite および Explore Edition では、すべてのエンジンを使用できるわけではありません。

  • SearchEngine:ジオコーディングやリリバース ジオコーディングなど、場所、候補、位置情報を検索するすべての機能が含まれています。
  • OfflineSearchEngine:ダウンロード済みのマップ データを使用してローカルでリクエストを実行する、オフライン バージョンの検索です。
  • RoutingEngine:さまざまなオプションや交通機関タイプを含むルートを計算できます。
  • OfflineRoutingEngine:ダウンロード済みのマップ データを使用してルートを計算するオフライン バージョンです。
  • LocationEngine:高度な HERE Positioning のソリューションです。
  • ConsentEngineLocationEngine などを使用する前にユーザーの同意を集約するのに役立つサポート エンジンです。
  • 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 EditionNavigate 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_TAPTWO_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) {
        // Start your custom zoom in animation.
    }
});

mapView.getGestures().setTwoFingerTapListener(new TwoFingerTapListener() {
    @Override
    public void onTwoFingerTap(@NonNull Point2D touchCenterPoint) {
        // Start your custom zoom out animation.
    }
});

ジェスチャー」セクションでは、これを実装する方法についてのチュートリアルを参照できます。

マップ カメラ

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 の場合、RouteGeoPolyline をレンダリングするのに推奨されるタイプは MapPolyline です。

MapMarker イメージの作成には、UIImage PNG データからインスタンス化できる MapImage クラスを使用します。詳細については、こちらの GitHub の例を参照してください。

MapMarker に加え、ユーザーは地図に固定されるネイティブな UIView オブジェクトを表示できます。カスタム UIView ベースのコンテンツを特別な ViewPin オブジェクトに設定して、地図に固定するだけで十分です。Premium Edition のユーザーは、この特別なオブジェクト クラスを NMAMapOverlay として認識している可能性があります。

ViewPin のより詳細な説明と例については、「マップ表示ピンを追加する」セクションを参照してください。

マップ スタイル

Navigate EditionMapView は、さまざまな事前定義済みの MapSchemes を使用してレンダリングできます。たとえば、昼、夜、衛星写真などのマップ スキームがあります。使用可能なすべてのスタイルについては、「API リファレンス」を参照してください。また、地図のカスタマイズは、専用の HERE Style Editor を使用して行うことができます。この機能は Premium Edition では利用できません。

カスタム マップ スタイルを作成するには、以下を行います。

  • マップ要素の色、幅、サイズを定義して、ベース マップ全体のスタイルを設定する。
  • ズーム レベルでスタイリングをコントロールする。

カスタム マップ スタイルは、Premium Edition とは異なるスタイル形式を使用しているため、互換性はありません。

HERE Style Editor の高度な機能の詳細については、「カスタム マップ スタイル」セクションを参照してください。

マップ ダウンローダー

Premium EditionNMAMapLoader クラスは、Navigate Edition では、MapDownloader クラスに正式に置き換わっています。アプリケーションでのオフライン マップ サポートの実装は、この MapDownloader クラスから開始されます。特定の地域または国のマップ データを明示的にプリロードするには、MapDownloader を使用します。マップ データのダウンロードの詳細については、「オフライン マップ」セクションを参照してください。

Premium Edition のユーザーは、オフライン マップを取得するプロセスを、アクティブおよびパッシブ ダウンロードとして認識しています。

アクティブ ダウンロード

Navigate Edition では、利用可能な MapDownloader メソッドを明示的に実行することによってアクティブ ダウンロードが行われます。

ダウンロード可能な国または世界地図データの一部には、特別な地域 ID が付けられています。getDownloadableRegions() メソッドを使用して、地域と ID のリストを取得します。概要を表示するには、次の手順を実行します。

  1. まず、SDKNativeEngine を作成し (まだ初期化されていない場合)、次に静的な MapDownloader.fromEngineAsync(sdkNativeEngine) メソッド呼び出しを使用して MapDownloader をインスタンス化します。
  2. 利用可能な地域のリストをダウンロードします。
  3. リージョン ID のリストを使用して downloadRegions() メソッドを明示的に呼び出し、マップ データのアクティブ ダウンロードを開始します。
  4. downloadRegions メソッドを呼び出すと、すぐに MapDownloaderTask プロトコルに準拠し、リクエストのキャンセルに使用できるインスタンスを取得できます。地域データは非同期的にダウンロードされます。
  5. DownloadRegionsStatusListener メソッド ハンドラーを実装して、結果を処理します。

パッシブ ダウンロード

地図のパッシブ ダウンロードは、マップ データと含まれているすべての情報を更新するために暗黙的に実行されます。また、これはユーザーがマップ シーンを変更したとき (たとえば、ユーザーが地図を使用して移動したときや、パンまたはズームイン/outしたとき) に、HERE SDK 自体により、オンデマンドで実行されます。この方法を使用するときは、ネットワーク接続が必要です。ネットワーク接続がない場合は、すでにダウンロードされキャッシュに保存されたデータのみが表示されます。

場所

LiteExploreNavigate Edition を使用すると、Premium Edition とほぼ同じバックエンド サービスにアクセスできます。利用を開始するには、「検索」セクションを参照してください。

新しい HERE SDK では、SearchRequestExploreRequest などの個別のリクエスト クラスを使用する代わりに、すべての機能が 1 つの SearchEngine に統合されています。これには、推奨、ジオコーディングとリバース ジオコーディング、ルート沿いの検索などのその他の高度な検索機能が含まれます。

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) {
                // An error happened ...
                return;
            }

            // If error is null, list is guaranteed to be not empty.
            for (Place searchResult : list) {
                String addressText = searchResult.getAddress().addressText;
                Log.d(TAG, addressText);
            }
        }
    });
}

評価、画像、レビュー、記事、所有者コンテンツなど、その場所に関する詳細情報が記載された、場所の追加リソースへのリンク一覧を含む場所の検索リクエストは、まだサポートされていません。

接続モード

Premium Edition の検索機能は、オンラインおよびオフライン モードで使用できます。アプリケーション開発者は、ネットワーク接続が利用できる場合でも、オフライン リクエストを強制するオプションを使用できます。開発者によって接続パラメーターが設定されていない場合は、ネットワーク接続に基づき、SDK 側でオンライン/offline モードの制御が実行されます。

Navigate Edition では、検索機能は 2 つのエンジン (SearchEngineOfflineSearchEngine) によって制御され、特定のアプリケーションに必要なコンポーネントの構成を柔軟に行うことができます。SearchEngine の API メソッドのインターフェースは OfflineSearchEngine と同じですが、その逆は同じではありません。

Navigate EditionSearchEngine は、検索、ジオコーディング、リバース ジオコーディング、提案機能を備えたオンライン バージョンです。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 を使用して他のタイプのルートを計算する方法について説明しています。

徒歩とドライブのためのターン・バイ・ターンナビ

Navigate Edition は歩行者、トラック、自動車のルートのナビゲーションをサポートします。この機能を使用すると、アプリは現在のデバイス位置を計算されたルートと照合して確認し、ジャストインタイムのナビゲーション指示を取得できます。視覚的な指示と音声による指示の両方に対応しています。現在、道路の矢印など、ほとんどの視覚的な情報は開発者が追加する必要があります。この場合、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 {
            // For example, when transport mode changes due to a ferry.
            Log.d(TAG,"A system defined waypoint was reached at " + milestone.mapMatchedCoordinates);
        }
    }
});

Navigate Edition はシミュレーション モードにも対応しています。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());
}

LocationListenerLocationSimulator に接続すると、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 クラスに変換します。

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 を介して処理されます。このクラスは Premium Edition の既知の PositioningManager を置き換えます。

Navigate Edition の高度なポジショニング機能については、「位置情報の取得」セクションで説明しています。オフラインの Network Positioning と屋内のポジショニングはまだ利用できません。

地図のディスク キャッシュ

新しい HERE SDK を使用すると、SDKNativeEngine 経由で SD カードなどの別の場所に地図のディスク キャッシュを設定できます。これについては、「主な概念」セクションで説明しています。

アプリを移行すると、以前にダウンロードおよびインストールされたすべてのマップ データを削除できます。また、3.x キャッシュ内の既存のデータは使用されなくなりますので、3.x キャッシュからすべてのデータを削除することをお勧めします。4.x HERE SDK では、以前のフォーマットと互換性のない、まったく新しい最適化されたマップ形式が使用されます。

サンプル アプリ

以下に、利用可能なサンプル アプリの対照比較を示します。

検索、ジオコーディング、リバース ジオコーディング

マップ フィーチャー

ルート検索とナビゲーション

その他のサンプル アプリ

この記事は役に立ちましたか?
TitleResults for “How to create a CRG?”Also Available inAlert