移行ガイド
このガイドラインでは、別の HERE SDK エディションから Explore Edition または Navigate Edition に移行するための一連の手順を示します。 Navigate Edition のすべての機能 が Explore Edition で利用できるわけではありません。 Explore Edition は Navigation 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 はリクエストを受けた場合にのみ利用できます。
-
移行を開始します。 詳細については、以下のセクションで説明します。
移行戦略
アプリの複雑さによっては、最初から始める必要がない場合があります。 代わりに、既存のプロジェクトのコピーを作成して、機能の移行を段階的に開始することをお勧めします。
アプリの移行を正常に完了するには、いくつかの方法があります。 次のいずれかの方法を使用できます。
-
古い SDK ライブラリをまずデ積分してください。
-
次に、はじめに セクションに従って新しい SDK ライブラリを統合します。
-
最後に、新しい API に適応してテストを開始することで、レガシーコードの残りのコンパイルエラーを修正します。 単体テストと統合テストが役立つ場合があります。
注
大規模なプロジェクトでは、分離されたプロジェクトを作成して、新しい SDK でコードを事前にテストできます。 これにより、 必要なすべての機能が移行される前に、新しい動作が期待どおりかどうかを確認できます。
ヒントとして、コードがインターフェイスに対して実装されている場合に、特定のライブラリ からコードを分離しておくと役立ちます。 このようにすると、ライブラリ の統合が解除された後に無数のコンパイルエラーが発生するのではなく、レガシーコードをコメント化して機能的に置き換える方が簡単になります。
注
2 つの異なるエディションを同じアプリに統合することはできません。そのため、一部のライブラリまたはクラスでは、コンパイル時に複製エラーが発生することがあります。
また、『4.x Developer's Guide: すべてのコア機能のコーディング例に加えて、リリースに向けてアプリケーションを最適化するための役立つヒントも含まれています。 詳細については、最適化ガイドを参照してください。
各エディションで必要な移行手順の詳細については、以下を参照してください。
探索から Navigate Edition に移行します
移行作業は不要です。 Explore Edition は Navigate Edition のサブセット であるため、コードは以前と同様にコンパイルおよび動作します。 アプリの libs フォルダー内のライブラリを置き換え、新しい資格情報をに挿入するだけ AndroidManifest.xml
で済みます。 HERE の担当者に新しい資格情報をリクエストしてください。 現在 のところ、 Navigate Edition はリクエストを受けた場合にのみ利用できます。
Lite から Explore Edition に移行します
次のセクションをお読みください。 Explore Edition は Navigation 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 で利用可能なサンプルアプリと同じセットを見つけることができます。
プレミアムから Explore Edition に移行します
次のセクションをお読みください。 Explore Edition は Navigation Edition のサブセットです。 Explore Edition および Navigate Edition の資格情報は交換できません。 Explore Edition の場合、「はじめに」の項で説明されているように、セルフサービスを介して資格情報を取得できます。
プレミアムから 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 テクノロジスタックをサポートするように、完全に一から構築されています。 StarterEdition および Premium Edition と比較する と、次の利点があります。
- マイクロサービスとモジュール化されたコンポーネントを組み込んだ HERE platform からのデータを利用することで、ほとんどの場合、 1 つのエディションから別のエディションへのシームレスな切り替えが可能になります。
- 最適化されたサイズとパフォーマンス。
- 高度なマップレンダリングおよびカスタマイズ機能。
- マップが毎週更新された Fresh マップ データ。
- 新しいエディションでのみサポートされている新しい HERE platform サービスを利用できます。
機能一覧
作業を開始する前に、各エディションで利用できる個々の機能の詳細について確認してください。 HERE SDK の開始ページにある「 HERE SDK の機能比較」の一覧を参照してください。 さらに、より詳細 なナビゲート機能のリストを、各ユーザーガイドの一部として利用できるプレミアム機能のリストと比較します。
注
Navigate Edition で機能が利用できない場合は、HERE の担当者にお問い合わせください。 次回の定期リリースのいずれかですでに予定されている可能性があります。
実装されていない機能
Premium Edition と比較して、 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 ではサポートされません。 したがって 、 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 の説明に従って、 HERE SDK ライブラリ( AAR; AAR )を手動でダウンロードして統合する必要があります。
エンジン
特に、Lite、Explore & Navigate Edition のすべての機能は、エンジンを中心に構築されています。 特定の機能を探すには、まず API リファレンス で関連するエンジンを探し、このユーザー ガイド内の関連する章を参照して概要を確認することをお勧めします。
すべてのエンジンが Lite および Explore Edition で利用できるわけではありません。
-
SearchEngine
: ジオ コーディングや reverse ジオ コーディングなど、場所、提案、場所を検索するすべての機能が含まれています。 -
OfflineSearchEngine
: すでにダウンロードされているマップ データを使用してリクエストをローカルで作成するオフラインバージョンの検索。 -
RoutingEngine
: さまざまなオプションやトランスポートタイプを含むルートを計算できます。 -
OfflineRoutingEngine
: すでにダウンロードされているマップ データを使用してルートを計算するオフラインバージョン。 -
LocationEngine
: 高度な HERE Positioning ソリューション。 -
ConsentEngine
: を使用する前にユーザーの同意を集約するのに役立つサポートエンジン LocationEngine
。例 : 。 -
Navigator
/ : VisualNavigator
名前に「 engine 」は含まれていませんが、これらのクラスはエンジンとして機能し、ターン・バイ・ターンナビ (矢印ナビ)のすべての機能を制御します。 -
DynamicRoutingEngine
: 現在の交通状況に基づいて、より短いルートまたはより速いルートを定期的に検索するエンジン。 これは、ルートの代替案についてドライバーに通知するためのガイダンス中に役立ちます。 -
TrafficEngine
: 交通事故を検索できるエンジン。 -
MapDownloader
/ : MapUpdater
これらのクラスは、マップ データのダウンロードまたは更新を実行し、オフライン モードをサポートするすべてのアプリケーションの重要な部分をマークします。 -
VenueEngine
: アプリへのプライベート施設の統合をサポートする専用のエンジン。 -
SDKNativeEngine
: 資格情報をプログラムで設定し、他のいくつかの詳細設定を許可するには、が必要です。
マップに関連するすべての機能が MapView
クラス全体にグループ化されます。 地図を表示せずに、ヘッドレスモードで HERE SDK を完全に操作できます。
月間アクティブユーザー数のカウント (MAU)
HERE SDK 4.12.0.0 以降、 MAU のカウント方法が変更されました。 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) {
}
});
ジェスチャー( Gestures )セクションでは、これをどのように実装できるかのチュートリアルを参照できます。
地図カメラ
MapView
インスタンス内のCamera
オブジェクトは 、 Premium Edition 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
な説明と例については 、 [Add マップ ビュー Pins (ピンの追加) ] セクションを参照してください。
地図のスタイル
Navigation Edition のMapView
は 、さまざまな事前定義MapSchemes
を使用してレンダリングでき ます。 たとえば、昼間、夜間、衛星などです。 API リファレンス を参照 して、使用可能なすべてのスタイルを確認してください。 また、専用 の HERE Style Editor を使用してマップをカスタマイズすることもできます。この Premium Edition は では使用できません。
カスタムマップスタイルを作成するには、次の操作を行います。
- マップ要素のカラー、幅、およびサイズを定義して、ベースマップ全体のスタイルを設定します。
- ズーム レベルでスタイリングをコントロールします。
- カスタムフォントとアイコンを使用します。
注
カスタムマップスタイルは 、 Premium Edition とは異なるスタイル形式を使用 し、互換性はありません。
HERE Style Editor の高度な機能の詳細については、「カスタムマップスタイル」を参照してください。
地図ダウンローダー
Navigate Edition では、このMapDownloader
クラスは Premium EditionNMAMapLoader
クラスの適切な置き換えです。 アプリケーションでのオフライン マップサポートの実装は、この MapDownloader
クラスから開始されます。 特定 MapDownloader
の地域または国のマップ データを明示的にプリロードするには、を使用します。 マップ データのダウンロードの詳細 については、「オフラインマップ」セクションを参照してください。
Premium Edition
ユーザーにとって、オフラインの地図を取得するプロセスは、アクティブおよびパッシブダウンロードと呼ばれます。
アクティブなダウンロード中です
Navigate Edition では、使用可能 なMapDownloader
メソッドを明示的に実行することで、アクティブなダウンロードが行われます。
ダウンロード可能な国またはワールドマップ データの一部には、特別な地域識別子が付けられています。 getDownloadableRegions()
ID を持つリージョンのリストを取得するには、メソッドを使用します。 概要を表示するには :
- 最初の
SDKNativeEngine
を作成し(まだ初期化されていない場合)、静的 MapDownloader.fromEngineAsync(sdkNativeEngine)
メソッド呼び出しを使用して MapDownloader
をインスタンス化します。 - 利用可能な地域のリストをダウンロードします。
downloadRegions()
リージョン ID のリストを使用してメソッドを明示的に呼び出し、マップ データのアクティブなダウンロードを開始します。 downloadRegions
メソッドの呼び出し後、 MapDownloaderTask
ただちにプロトコルに準拠し、リクエストのキャンセルに使用できるインスタンスを取得します。 リージョンデータは非同期でダウンロードされます。 DownloadRegionsStatusListener
結果を処理するメソッドハンドラを実装します。
パッシブダウンロード中です
パッシブマップのダウンロードは暗黙的に行われ、マップ データおよびすべての含まれている情報が更新されます。また、ユーザがマップ シーンを変更した場合(たとえば、マップを使用して移動した場合、パンまたはズームイン / アウトを実行した場合)に、 HERE SDK 自身がオンデマンドで実行します。 この方法では、使用時にネットワーク接続が必要です。 それ以外の場合は、すでにダウンロードされキャッシュされているデータのみが表示されます。
Places
Lite、Explore & Navigate Edition を使用すると、Premium Edition とほぼ同じバックエンドサービスにアクセスできます。 はじめに については、「検索」 セクションを参照してください。
新しい HERE SDK では、SearchRequest
や ExploreRequest
などの個別のリクエストクラスを使用する代わりに、すべての機能が 1 つの SearchEngine
に結合されます。 これには、提案、ジオ コーディングと Reverse ジオ コーディング、およびルート沿いの検索などのその他の高度な検索機能が含まれます。
で 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 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 {
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 までお問い合わせください。
Positioning
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 カードなどの別の場所にマップディスクキャッシュを設定できます。 これについては 、「主な概念」 セクションで説明しています。
アプリの例
以下に、利用可能なサンプルアプリを並べて比較します。
検索ジオ コーディング ( Search )、非表示(ジオ コーディング )、および逆方向の
地図機能
ルーティングとナビゲーション
その他のサンプルアプリ