移行ガイド

このガイドラインでは、別の HERE SDK エディションから Explore Edition または Navigate Edition に移行するための一連の手順を示します。 Navigate Edition のすべての機能Explore Edition で利用できるわけではありません。 Explore EditionNavigate Editionサブセットです。

マップボックスや Google マップなどの別の SDK から移行する場合 は、「主な概念」セクションを参照することをお勧めします。 HERE LiteExplore & Navigate の各エディションで統一された、最も一般的な概念を見つけることができます。 これらのエディションの違いについては、このガイドの「概要」セクションを参照してください。

簡単に確認できます

  • LiteExplore & Navigate の各エディションでは、プラットフォーム間を直接切り替えることができます。 Android 、 iOS 、 Flutter など、利用可能なすべてのプラットフォームが、フードの下にある同じネイティブコードベースを共有します。 このようにすると、利用可能な HERE SDK 機能がプラットフォーム間で一貫して動作するとともに、個々のプラットフォーム規則に忠実に適合します。 ただし、機能が異なると、 API および動作が異なる場合 があります。たとえば、 HERE Rendering Engine の動作がライトレンダラーとは異なるため、MapViewLiteコンポーネントには若干異なる API が含まれています。 主な相違点の詳細を以下に示します。

  • StarterEdition と Premium Edition は、異なるテクノロジスタックを共有しています。 その結果、ほとんどの API 、概念、および動作が、新しい LiteExplore & Navigate Edition と異なります。 このためには、より一貫した移行の計画が必要になる場合があります 可能な手順を以下に示します。 Starter Edition および Premium Edition は廃止されました。

概要

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

  1. 作業を開始する前に、フィーチャーの可用性についての詳細を確認してください。 HERE SDK の開始ページにある「 HERE SDK の機能比較」の一覧を参照してください。 対象のエディションの機能を利用できない場合は、HERE の担当者にお問い合わせください。 次回の定期リリースのいずれかですでに予定されている可能性があります。

  2. 新しいエディションで利用可能なプランを確認してください。 HERE SDK の使用を自由に開始できます。 利用可能なプランの概要については、価格表を参照してください。 プランの詳細については、FAQ を参照してください。

  3. HERE の担当者に新しい資格情報のセットをリクエストしてください。 資格情報 は、エディション間で交換できません。 現在 のところ、 Navigate Edition はリクエストを受けた場合にのみ利用できます。

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

情報

その他の役立つヒント :

  • フィーチャーの比較 : 以下のサンプルアプリのセクションで は、 4.x の機能と比較して 3.x の主な機能を示すマッピングテーブルを見つけることができます。このテーブルには、前述の各機能の再利用可能なコードスニペットへのリンクが含まれています。

  • 4.x のフィーチャーを検索 : リリース ノート ページ では、 1 日目以降にリリースされたすべてのフィーチャーまたは API 1 つのページに表示できます。 テキスト検索 (STRG + F/command + F) を使用して、検索するフィーチャーに一致する可能性があるものを検索します。 ほとんどの場合、リリース ノートには、最初のオリエンテーションを提供するための簡潔な指示が含まれています。 この 開発者ガイド または API リファレンス で、詳細情報を参照します。

  • 使用例 : また、 以下のフィーチャー 一覧、またはこの開発者ガイド Q&A セクションで考えられる使用例を一覧表示することもできます。

移行の計画

アプリの複雑さによっては、最初から始める必要がない場合があります。 代わりに、既存のプロジェクトのコピーを作成して、フィーチャーの移行を段階的に開始することをお勧めします。

アプリの移行を正常に完了するには、いくつかの方法があります。 次のいずれかの方法を使用できます。

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

  2. 次に、利用開始 セクションに従って新しい SDK ライブラリを統合します。

  3. 最後に、新しい API に適応してテストを開始することで、レガシーコードの残りのコンパイルエラーを修正します。 単体テストと統合テストが役立つ場合があります。

大規模なプロジェクトでは、分離されたプロジェクトを作成して、新しい SDK でコードを事前にテストできます。 これにより、 必要なすべてのフィーチャーが移行される前に、新しい動作が期待どおりかどうかを確認できます。

ヒントとして、コードがインターフェイスに対して実装されている場合に、特定のライブラリ からコードを分離しておくと役立ちます。 このようにすると、ライブラリ の統合が解除された後に無数のコンパイルエラーが発生するのではなく、レガシーコードをコメント化して機能的に置き換える方が簡単になります。

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

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

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

Exploreから Navigate Edition へ移行

移行作業は不要です。 Explore EditionNavigate Edition のサブセット であるため、コードは以前と同様にコンパイルおよび動作します。 アプリの libs フォルダー内のライブラリを置き換え、新しい資格情報を AndroidManifest.xmlに挿入するだけで済みます。 HERE の担当者に新しい資格情報をリクエストしてください。 現在 のところ、 Navigate Edition はリクエストを受けた場合にのみ利用できます。

Lite から Explore Editionへ移行

次のセクションをお読みください。 Explore EditionNavigate Editionサブセットです。 アプリの libs フォルダー内のライブラリ を置き換える必要がありますが、同じ資格情報 を保持できます。 Lite Edition および Explore Edition の資格情報 は交換可能です。

Lite から Navigate Edition へ移行

Lite Editionが軽量のマップレンダラーを使用するため、マップ ビューに関連するすべてのコードを調整する必要がある場合があります。Navigate Edition に切り替える場合、HERE Rendering Engine の強力なフィーチャーを利用するには、MapViewLiteMapViewに置き換える必要があります。 幸いなことに、他のすべてのコードは、すでに Navigate Edition と同じネイティブコードベースを共有しているため、同じ状態を保つことができます。

  1. MapViewLiteMapViewに置き換えて開始します。

  2. 利用開始 』ガイドに従って、マップ ビューを正しくロードします。 Lite Edition とほぼ同じです。

  3. 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>
  1. Lite Edition で使用できるMapStyleスキーム が MapScheme スタイルに置き換えられていることに注意してください。 NORMAL_DAY および SATELLITE スタイルは、両方のエディションで利用できます。 API リファレンス で利用できる追加の定義済みマップスタイルについては、 Navigate Edition を参照してください。

  2. カスタムマップスタイルは異なるスタイル形式を使用しており、互換性がないことを確認してください。 HERE Style Editor の高度な機能の詳細については、「カスタムマップスタイル」を参照してください。

  3. すぐに使用できるコードスニペットを取得し、マップ ビューにアイテムを追加する方法については、「マップアイテム」セクションを参照してください。 Navigate Edition は、Lite Edition と同じマップアイテムのセットをサポートしています。MapOverlayビューの名前がMapViewPinに変更されました。 Lite Editionで利用できる一部のフィーチャーは 、 Navigate Edition ではまだ利用できません。たとえば、アイテムの回転MapMarkerはだサポートされていません。 上記のセクションでは、現在利用可能なものの概要を示します。

  4. Navigate Edition で利用できる相違点と高度な機能については、「カメラ」セクションを参照してください。 MapCameraでは、 3D カメラの完全な制御と、よりエキサイティングなフィーチャーを利用できます。

Navigate Edition にはズームレベルもありますが、実際の詳細レベルは異なる場合があります。 Navigate Edition のマッププロジェクションでは、メルカトル図法ではなく地球投影法が使用されます。 さらに 、 Navigate Edition は地球からの距離を使用して、より正確な結果を得ることができるように、カメラをマップの上に配置します。 既存の Lite ズーム レベルの値をメートル単位の距離に変換するには、次の近い方の数式を使用します。

double distanceToEarthInMeters = Math.pow(2, 16.251628683 - zoomlevelFromLite);

移行を支援するために、GitHubExplore Edition または Navigate Edition にすでに移植されている Lite Edition で利用可能なサンプルアプリと同じセットを見つけることができます。

Premiumから Explore Edition へに移行

次のセクションをお読みください。 Explore EditionNavigation Editionサブセットです。 Explore Edition および Navigate Edition の資格情報は交換できませんExplore Edition の場合、「利用開始」の項で説明されているように、セルフサービスを介して資格情報を取得できます。

Premiumから Navigate Edition へ移行

他のエディションとは異なり 、 Starter および Premium Edition はまったく異なるテクノロジスタックを共有 しているため、新しい SDK エディションの LiteExplore & Navigate は完全に最初から構築されています。 その結果、 API 、概念、および動作が異なります。

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

この 開発者ガイド で説明されている使用例に従って、利用可能なフィーチャーと考えられる相違点の概要を確認してください。 また、 「主な概念」セクションも参照してください。 HERE LiteExplore & Navigate の各エディションで統一された、最も一般的な概念を見つけることができます。

GitHubNavigate Edition で利用できるサンプルアプリのセットを見つける ことができます。

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

注 : 重要

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

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

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

移行するべき理由

新しい Lite,Explore & Navigate エディション は、最新の HERE テクノロジスタックをサポートするように、完全に一から構築されています。 Starter および Premium Editionと比較すると、次の利点があります。

  • マイクロサービスとモジュール化されたコンポーネントを組み込んだ HERE platform からのデータを利用することで、ほとんどの場合、 1 つのエディションから別のエディションへのシームレスな切り替えが可能になります。
  • 最適化されたサイズとパフォーマンス。
  • 高度なマップレンダリングおよびカスタマイズ機能。
  • 毎週更新されるフレッシュなマップ データ。
  • 新しいエディションでのみサポートされている新しい HERE platform サービスを利用できます。

4.x 専用のフィーチャー :

  • 個人データの持ち込み( BYOD )のサポート。
  • カスタムバックエンドおよびマップカタログのサポート ( セルフホスティング ) 。
  • 日本などの新しい市場のサポート。
  • 電気自動車のサポート。

フィーチャー・一覧

作業を開始する前に、各エディションで利用できる個々のフィーチャーの詳細について確認してください。 HERE SDK の開始ページにある「 HERE SDK のフィーチャー比較」の一覧を参照してください。 さらに、より詳細な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 ではサポートされません。 したがって 、 OffScreenRendererMapOffScreenRenderer の 4.x の同等の 処理は使用できません。
  • TTS 用の録音済み音声 : 録音済みの音声ファイルは廃止されました。 4.x HERE SDK で は、 TTS エンジンをサポートするために複数の言語がサポートされていますが、これらのテキストは文字列としてのみ提供されます。そのため、開発者は、選択したエンジンでこれらのテキストを再生するプラットフォーム ソリューションを選択する必要があります。 ナビゲーションセクション に、この方法の例が表示されます。

フィーチャーの置き換え

3.x の次のフィーチャーは 4.x では直接サポートされていません。代わりに、代替の BYOD ( Bring Your Own Data )ソリューションが使用されます。 詳細については、各アカウント管理者にお問い合わせいただくか、 HERE サポートチームにお問い合わせください。

  • Custom Location Extension 2 ( CLE2) /CLE2 オフライン このフィーチャーは、検索およびジオ コーディング の BYOD に置き換えられました。 MyPlaces クラスを使用すると、カスタムデータをインポートできます。 新しい BYOD の概念の詳細について は、 4.x の検索ガイドを参照してください。
  • カスタムルーター拡張機能 : このフィーチャーは、 BYOD ユースケース をサポートするための新しいカスタムデータ概念に置き換えられました。これは、MyPlacesの検索およびジオ コーディング と同様です(上記を参照)。
  • プラットフォーム データ拡張 (PDE): この機能は、新しいカスタムデータ概念に置き換えられました。
  • Fleet Telematics カスタムルート (FTCR): このフィーチャーは、新しいカスタムデータ概念に置き換えられました。

資格情報

まず、新しい資格情報 を取得します。 Navigate Edition の場合、HERE の担当者に連絡して、一連の評価資格情報 を生成する必要があります。

Premium Edition とは対照的に、 Navigate Edition では異なるタイプの資格情報が使用されます。 アプリ ID 、トークン、およびライセンス ID は不要です。その代わり、次の 2 つの文字列が必要です。

  • アクセスキー ID
  • アクセスキーのシークレット

取得した資格情報は 、プラットフォームに関係なく、 Lite および Explore の各エディションで再利用できます。さらに、これらの資格情報を複数のアプリで使用できます。 たとえば、 GitHub にあるすべてのサンプルアプリで動作 します。

Premium Edition とは異なり、これらの資格情報 は、アプリのパッケージ名またはアプリケーション ID ではなく、資格情報の取得に使用されるアカウントに関連付けられています。 これにより、複数のアプリで同じ資格情報のセットを使用できます。

SDK の依存関係管理

LiteExplore 、および Navigate の各エディション では、 Artifactory はまだサポートされていません。 つまり 、 ここの説明に従って、 HERE SDK ライブラリ( AAR; AAR )を手動でダウンロードして統合する必要があります。

エンジン

特に、LiteExplore & 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 EditionNavigate 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) {
        // 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 のユーザーに新しい概念を提供します。 一般に、ユーザーの視点として関連付けることができます。この視点は、さまざまなアクションを使用して変更できます。 これらのアクションは 、 チルト、ズーム、バウンディングボックスなどの 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です。 既存の layerNamesLayers クラスで定義されます。

Layers使用例を 「交通状況の確認」セクションに示します。

マップアイテム

マップアイテムを追加するためのエントリポイントは MapScene です。このエントリポイントには、 .mapScene のコールを使用して MapView からアクセスできます。

NMAMapCircleおよび NMAMapRoute は 、 Navigate Edition では使用できません。

  • NMAMapCircle の代わりに、 GeoCircle のジオメトリポイントを使用する MapPolygon を使用してください。
  • RouteGeoPolyline をレンダリングするには、 NMAMapRoute MapPolyline が推奨されるタイプです。

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

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

詳細 ViewPin な説明と例については 、 [ マップ ビューピンの追加 ] セクションを参照してください。

マップスタイル

Navigation EditionMapViewは 、さまざまな事前定義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() を使用します。 概要を表示するには :

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

パッシブダウンロード

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

Places

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

新しい HERE SDK では、SearchRequestExploreRequest などの個別のリクエストクラスを使用する代わりに、すべてのフィーチャーが 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) {
                // 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 側で実行されます。

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 を使用して他の種類のルートを計算する方法について説明します。

徒歩とドライブに最適なターン・バイ・ターンナビ (矢印ナビ)

ナビゲーションエディション は、歩行者、トラック、および車のルートでのナビゲーションをサポートします。 このフィーチャーを使用すると、アプリは現在のデバイス位置を計算されたルートと照合して確認し、ジャストインタイムのナビゲーション指示を取得できます。 ビジュアルとオーディオの両方の命令がサポートされています。 現在、道路の矢印など、ほとんどの視覚的な情報は開発者が追加する必要があります。 このためには、 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);
        }
    }
});

ナビゲーションの編集( 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());
}

LocationSimulatorLocationListenerを添付すると、Locationアップデートに関する通知を受け取ることができます。 次に、それらをNavigatorに個別でフィードできます 。 これにより、 Premium PositionSimulator は廃止されました。 代わりに、LocationSimulator を任意のルートシミュレーション目的で使用します。 LocationSimulator は、 GPX ログトレースの再生もサポートしています。

  • 音声読み上げによる音声ナビゲーションをサポート するために、別途VoiceCatalogをダウンロードする必要はありません。 これらのアセットが HERE SDK ライブラリに統合され、利便性が向上しました。

  • トラフィックアウェアルーティングはデフォルトでイネーブルになっており、現在のトラフィック遅延はターン・バイ・ターンナビ (矢印ナビ)中にイベント RouteProgressから取得できます。

さまざまなナビゲーションフィーチャーの詳細な概要については 、「ナビゲーション 」セクションを参照してください。

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 カードなどの別の場所にマップディスクキャッシュを設定できます。 これについては 、「主な概念」 セクションで説明しています。

アプリの例

以下に、利用可能なサンプルアプリを並べて比較します。

サーチ、ジオ コーディング、リバースジオ コーディング

Premium Explore Navigate 説明
アプリ の例を自動提示します サンプルアプリ を検索します サンプルアプリ を検索します さまざまな種類のAutosuggest リクエストを送信します。
ジオコーダとリバースジオコーダの例アプリ サンプルアプリ を検索します サンプルアプリ を検索します ジオコード およびリバースジオコード 要求をトリガーします。
サンプルアプリ を検索します サンプルアプリ を検索します サンプルアプリ を検索します さまざまな種類の検索リクエストを送信します。
Premium Edition では使用できません。 Explore Edition では使用できません。 SearchHybrid のサンプルアプリ 検索リクエストをオンラインおよびオフラインで送信します。

マップフィーチャー

Premium Explore Navigate 説明
3D モデルのサンプルアプリ MapItems のアプリ の例 MapItems のアプリ の例 マップに 3D モデルを表示します。
map-attribute のアプリ の例 交通状況の確認の例アプリ 交通状況の確認の例アプリ 属性の操作をマップします。
マップのカスタマイズのサンプルアプリ CustomMapStyles のアプリ の例 CustomMapStyles のアプリ の例 マップ スキーム をカスタマイズします。
マップジェスチャーの例アプリ ジェスチャーの例:アプリ ジェスチャーの例:アプリ マップジェスチャを処理します。
マップオブジェクトのアプリ の例 MapItems のアプリ の例 MapItems のアプリ の例 マップアイテムをマップに追加します。
Premium Edition では使用できません。 CustomRasterLayers のアプリ の例 CustomRasterLayers のアプリ の例 カスタムのラスターレイヤーを読み込みます。
マップレンダリングのサンプルアプリ HelloMap のサンプルアプリ HelloMap のサンプルアプリ HERE SDK をプロジェクトに統合し、デバイスに HERE マップを表示します。
マップダウンローダの例のアプリ Explore Edition では使用できません。 オフラインマップのサンプルアプリ オフライン マップ データをダウンロード。

ルーティングとナビゲーション

Premium Explore Navigate 説明
高度なナビゲーションの例アプリ Explore Edition では使用できません。 ナビゲーション例アプリ 位置情報の更新、追跡と自由な移動の切り替えを行います。
default-navigation-using-ftcr-routing example アプリ FTCR はメンテナンス中です。 BYOD ルーティングを使用します。 FTCR はメンテナンス中です。 BYOD ルーティングを使用します。 Navigation using "Fleet Telematics Custom Routes (FTCR)" is in maintenance mode. Use the Bring-Your-Own-Data (BYOD) capability of the [Routing v8](https://here-tech.skawa.fun/documentation/routing-api/dev_guide/index.html) REST API or related features in the HERE SDK.
mapdataprefetcherのExample アプリ ( マップデータフレッチャーのサンプル Explore Edition では使用できません。 ナビゲーション例アプリ ナビゲーション中に取得したマップ データ を表示します。
ルーティング例のアプリ ルーティング例のアプリ ルーティング例のアプリ ルートを計算してマップに表示します。
Routing-TTA サンプルアプリ ルーティング例のアプリ ルーティング例のアプリ ルートを計算し、到着までの時間 (TTA) を表示します。
speed-limit-watcher の例アプリ 4.x ではまだサポートされていません ナビゲーション例アプリ 現在走行中の道路の現在の速度および現在の制限速度の警告を表示します。
ターンバイターンナビゲーションの例アプリ Explore Edition では使用できません。 ナビゲーション例アプリ ターン・バイ・ターンナビ (矢印ナビ) を起動します。
音声ナビゲーションの例、アプリ Explore Edition では使用できません。 ナビゲーション例アプリ 音声ガイドでナビゲーションを整理できます。
Premium Edition では使用できません。 EVRouting サンプルアプリ EVRouting サンプルアプリ 電気自動車のルートを計算し、等値線で到達可能な領域を表示します。
Premium Edition では使用できません。 Explore Edition では使用できません。 RoutingHybrid サンプルアプリ RoutingEngine がルートをオンラインで計算するように設定し、 OfflineRoutingEngine がルートをオフラインで計算するように設定します。
Premium Edition では使用できません。 Explore Edition では使用できません。 NavigationCustom Example アプリ ( 英語 カスタムの LocationIndicator を含むカスタムのナビゲーションエクスペリエンスを表示します。
Premium Edition では使用できません。 Explore Edition では使用できません。 ナビゲーションクイックスタートのサンプルアプリ 基本的なナビゲーションアプリ の設定方法を示します。

その他のサンプルアプリ

Premium Explore Navigate 説明
3D 会場のサンプルアプリ Explore Edition では使用できません。 IndoorMap のアプリ の例 施設 を 3D モードで表示します。
アプリ の例を示します CLE はメンテナンス中です。 代わりに BYOD を使用します。 CLE はメンテナンス中です。 代わりに BYOD を使用します。 カスタム位置情報拡張( CLE )がメンテナンスモードになっています。 ジオ コーディング and Search v7 REST API の個人所有データの持ち込み( BYOD )フィーチャーを使用して、カスタムの場所を検索するか、 HERE SDK の BYOD 機能を使用します。
アプリ のポジショニング例 Explore Edition では使用できません。 アプリ のポジショニング例 マップ上の場所を表示する HERE Positioning の例。
platform-data-extension のアプリ の例 PDE はメンテナンス中です。 Map Attributes サービスを 4.x と一緒に使用してください PDE はメンテナンス中です。 Map Attributes サービスを 4.x と一緒に使用してください プラットフォーム データ拡張 (PDE) リクエストを送信する方法を示します。
場所を指定するポジショニングの例アプリ Explore Edition では使用できません。 IndoorMap のアプリ の例 施設 内部の HERE Positioning 。
Premium Edition では使用できません。 Explore Edition では使用できません。 CartoPOIPicking の例アプリ 埋め込み POI マーカーの選択方法を表示します。
Premium Edition では使用できません。 公共交通機関のサンプルアプリ 公共交通機関のサンプルアプリ マップに表示される A から B までの公共交通機関ルートを計算します。
Premium Edition では使用できません。 StandAloneEngine のサンプルアプリ StandAloneEngine のサンプルアプリ マップ ビュー なしでエンジンを使用する方法を示します。
Premium Edition では使用できません。 交通状況の確認の例アプリ 交通状況の確認の例アプリ マップで交通量と交通事故の視覚化を切り替える方法を示します。
Premium Edition では使用できません。 UnitTesting のサンプルアプリ UnitTesting のサンプルアプリ HERE SDK が単体テストで分岐しました。

」に一致する結果は 件です

    」に一致する結果はありません