マップを使用
HERE SDK for iOS の主要なフィーチャーの 1 つ がマッピングです。マッピングには、マップ ビューの追加、マップに表示される場所の変更、およびそのプロパティの変更が含まれます。 マッピング API の主なコンポーネントはマップ ビュー UIView
です。このコンポーネントはサブクラスとして統合されています。 マップ ビューは 、 マップおよびさまざまなプロパティを表示するためのベクトルベースのビューを表します。
HERE Map Data は 毎週更新 され、常に最新のマップ データを利用できるようになっています。 マップ ビューを統合することで、このメリットを自動的に享受できます。
注
簡単なマップアプリケーションを作成する場合 は、利用開始の項を参照してください。
マップとそのプロパティを操作するには、まず [ カメラ ] セクションを確認することをお勧めします。 その他のフィーチャー :
- 一般的なマップジェスチャや、パニングや回転などのデフォルトのマップビヘイビアーを処理するためのマップジェスチャ。
- サテライトと通常のマップ レイヤーなどの既定のマップスタイルを瞬時に切り替えるマップスキーム。 利用可能なマップスキームの詳細については、以下を参照してください。
- マップ アイテムを使用してオブジェクトや図形をマップ上に配置し、それらを操作します。
- カスタムサーバーイメージを追加のマップ レイヤーとして表示する カスタムラスタータイル。
- カスタムマップスキームを読み込むカスタムマップスタイル。
デフォルトでは、MapView
は 60 フレーム / 秒( FPS )でレンダリングされます。 mapView.frameRate
最大フレームレートを使用して調整できます。たとえば、ローエンドデバイスでの CPU/GPU の使用量を削減できます。 FPS を 0 に設定することで、自動レンダリングサイクルを非アクティブ化することもできます。 負の値を設定しても効果はありません。 この値は、アプリに複数のMapView
が含まれている場合に、インスタンスごとのMapView
に個別に設定できます。
別 のオプションとして、レンダリングする要素が少ないカスタムマップスタイルを使用することもできます。
HERE SDK フレームワークのサイズを縮小するため に、未使用のフォントはアプリケーションを使用する前に削除できます。
その他のオプションについては 、「最適化ガイド」で説明しています。
マップスキームを読み込み
HERE SDK では、 5 つの事前設定済みマップスキームがサポートされて
-
normalDay
: 昼間の使用に適したロスレスのスケーラブルなベクターベースのビューを表します。 マップ。 -
normalNight
: 夜間使用のためのロスレスでスケーラブルなベクターベースのビューを表します。 マップ。 -
hybridDay
: 衛星の画像と、ベクターストリートネットワーク、マップラベル、 POI 情報を組み合わせたハイブリッド方式の昼間バージョン。 -
hybridNight
: 衛星の画像と、ベクターストリートネットワーク、マップラベル、 POI 情報を組み合わせたハイブリッド方式の夜間バージョン。 -
satellite
: さまざまなズームステージの衛星画像を表示するビットマップベースのマップ。
衛星画像を除き、独自のマップスタイルを完全にカスタマイズすることもできます。
マップ スキームをロードするには、次のコード スニペットを使用します。
let mapScheme = MapScheme.normalDay;
mapView.mapScene.loadScene(mapScheme: mapScheme, completion: onLoadScene)
...
private func onLoadScene(mapError: MapError?) {
guard mapError == nil else {
print("Error: Map scene not loaded, \(String(describing: mapError))")
return
}
}
周囲の光が明るい日中は、 dayのバリエーションを使用することをお勧めします。 night
バリアントは、軽量化されている場合の使用に合わせて最適化されています。 たとえば、ドライバーがトンネルを通過するときに、アプリケーションが昼間から夜間のスキームに切り替わる場合があります。Navigate Edition 使用している場合は、変更された道路属性について通知を受け、トンネルを通過するときに通知を受け取ることができます。 これにより、アプリケーションがマップ スキームをその場で切り替えることができます。 この問題は自動的には発生しません。
HERE SDK は、昼間モードと夜間モードを切り替える現在の時刻を自動的に検出するわけではありません。 アプリケーションは、ユーザーの設定に基づいて、またはデバイスのクロックを確認することによって、この処理を行うことができます。
左から右へ : MapScheme.normalDay 、 MapScheme.normalNight 、 MapScheme.hybridDay 、 MapScheme.hybridNight 利用可能なマップスタイルが最適化され、視覚的な干渉なしにコンテンツやオーバーレイをベース マップに簡単に追加できます。 マップの配色はあまりカラフルではありません。また、色覚異常が発生した場合でも読みやすさを最大限に高めるために、クリーンで中立的な色調をサポートしています。
- 街路網はグレーのスケールで設計され、明るさ、コントラスト、幅を階層構造で提供します。
- 全体的に明るい色使いでまとめられている。
- キーの色は、グレー、ブルー、グリーン、ホワイトです。
さらに、 HERE SDK では 、 ラベルを含まない衛星スキームを提供しています。
MapScheme.satellite 地図レイヤーを追加します
HERE SDK では、マップスキームに加えて、現在のトラフィックフローなどの追加情報を表示する特定の種類のレイヤーを追加できます。 以下に、このようなレイヤーを有効にする方法を示します。
mapView.mapScene.enableFeatures([MapFeatures.trafficFlow : MapFeatureModes.trafficFlowWithFreeFlow])
mapView.mapScene.enableFeatures([MapFeatures.trafficIncidents : MapFeatureModes.defaultMode])
mapView.mapScene.enableFeatures([MapFeatures.safetyCameras : MapFeatureModes.defaultMode])
mapView.mapScene.enableFeatures([MapFeatures.vehicleRestrictions : MapFeatureModes.defaultMode])
mapView.mapScene.enableFeatures([MapFeatures.landmarks : MapFeatureModes.landmarksTextured])
mapView.mapScene.enableFeatures([MapFeatures.extrudedBuildings : MapFeatureModes.defaultMode])
mapView.mapScene.enableFeatures([MapFeatures.buildingFootprints : MapFeatureModes.defaultMode])
すべてのエディションですべてのフィーチャーのレイヤーを利用できるわけではありません。 API リファレンス で サポートされているレイヤーを確認してください。 レイヤーを追加すると、ローエンドデバイスのパフォーマンスへの影響が最小限に抑えられることに注意してください。
以下に、サポートされているすべてのマップレイヤーのスクリーンショットを示します。
交通渋滞レイヤーには、道路での交通渋滞が表示されます。 | 交通障害マップ レイヤー には、事故、建設工事などの事故が表示されます。 | スピードカメラマップ レイヤー にスピード警告カメラが表示されます。 | 車両制限マップ レイヤー には、トラック固有の情報が表示されます。 |
3D ランドマークマップ レイヤー は、テクスチャード加工のランドマークを示しています | 押し出された Buildings マップ レイヤー には、建物の 3D 表現が表示されます。 | Buildingフットプリントマップ レイヤー には、建物の 2D フットプリントが表示されます。 | Buildingおよびフットプリントのマップレイヤーは、既定で有効になっています。 これは、無効化されたときの状態です。 |
一部のレイヤーでは、MapContentSettings
を使用して表示されたコンテンツをフィルタリングできます
-
MapFeatures.trafficIncidents
: filterTrafficIncidents(trafficIncidents: [TrafficIncidentType])
表示されている交通障害をフィルタリングするために使用します。 -
MapFeatures.vehicleRestrictions
: filterVehicleRestrictions(truckSpecifications: TruckSpecifications, hazardousMaterials: [HazardousMaterial], tunnelCategory: TunnelCategory)
表示されているトラック制限をフィルタリングするために使用します。
注 : マップレイヤー buildingFootprints
& extrudedBuildings
は、MapView
でデフォルトで有効になっています。
未使用のフォントファイルの削除
HERE SDK には、サポートされているすべての言語のマップラベルをレンダリングするフォントが含まれています。 アプリ 全体のサイズを最適化する場合は、選択したフォントを削除できます。 たとえば、 Chinese
Japanese
と Korean
文字を含むフォントには、簡体字中国語 (GB2312) 、繁体字中国語 ( ビッグ 5) 、日本語 (JIS 0208) 、韓国語 (KSC 5601) のサポートが含まれています。 このフォントでは、共有の Unicode コードポイントに簡体字中国語の表意文字が使用されます。 このフォントを削除するには heresdk.framework
、ファイルを開き、次のファイルを削除します。
geoviz/DroidSansFallback.ttf
別の例として、日本語文字の完全なセットをレンダリングする必要がない場合は、次を削除できます。
geoviz/NotoSansJP-Regular.otf
フォントを削除する場合は、マップの言語を削除したフォント以外の言語に切り替えることをお勧めします。 マップラベルを表示するには、少なくとも 1 つのフォントを残す必要があります。 削除されたフォントの言語でラベルを表示する必要があるたびに、欠落している文字ごとにエラーメッセージが記録されます。
フォントファイルのサイズは、通常数メガバイトの範囲にあります。
マップ言語の設定
マップで使用する言語をカスタマイズして、道路、都市、その他のマップ データのラベルを表示できます。 既定では、リージョンのローカル言語が使用されます。
MapView.primaryLanguage = languageCode
を呼び出して世界の言語を設定するか、nil
を呼び出してデフォルトの動作に戻します。これ MapView
により、のすべてのインスタンスの言語が設定されます。 言語が世界のどのリージョンでもサポートされていない場合は、そのリージョンのローカル言語が代わりに表示されます。
地政学的見解
HERE SDK では、複数の地理的な政治的見解および異議を申し立てた境界をサポートしており、国際ビュー(デフォルト)またはローカルの国ビューに基づいてマップの境界を表示します。 ローカルビューは、 2 つ以上の政治組織(通常は国)が国境および所有権または支配権を主張する場合に、マップ上の特定の領域にのみ影響を与えます。
SDKOptions
経由でアクセスできる politicalView
メンバーの 3 文字の言語コードを設定することで、デフォルトの地政学的ビューを変更できます。サポートされている国コードは、カバレッジページからアクセスできます。
設定すると、マップ ビューには設定されている国の地政学的見解に従ってすべての国の境界が表示され、MapView
にはそれに応じて国境が表示されます。
このフィーチャはベータ版としてリリースされています。
実行時に地政学的ビューを変更する場合は、次のコード スニペット を使用します。
SDKCache.fromEngine(SDKNativeEngine.sharedInstance!).clearCache { (error) in
if error == nil {
}
}
var options: SDKOptions? = SDKNativeEngine.sharedInstance?.options
options?.politicalView = "ARG"
新しいオプションを設定するには、新しい共有インスタンスを作成する必要もあるため、進行中の HERE SDK 操作ではこのオプションを呼び出さないでください。 理想 的には、アプリのライフサイクル中に HERE SDK を初めて初期化する前に、オプションとpoliticalView
を 1 回のみ設定します。
マップ データの可用性
デフォルトでは、日本、中国、韓国などの世界の一部のリージョンには、限定的なマップ データ が含まれています。 マップ データ の全てのフィーチャにアクセスするには、HERE の担当者に連絡してください。
HERE SDK では、すべての種類のデータがマップタイルに保存されます。 これには、マップ ビュー でのレンダリングの目的で必要なデータが含まれている場合がありますが、これに限定されるものではありません。 たとえば、マップタイルには、マップ ビュー には表示されないが、ターン・バイ・ターンナビ (矢印ナビ) などの他の目的で必要な場所または道路の属性に関するデータも含まれています。
マップ タイル に保存されている情報は、交通情報やランドマークなどの個別のトピックの情報を保持する複数のレイヤーに分類されます。
Navigate Edition では、フードの下で 最適化されたクライアントマップ (OCM) カタログ形式を使用して、コンパクトで高速かつ柔軟なマップを提供しています。 OCM カタログは、 HERE Map Content ( HMC )からコンパイルされます。
OCM 形式では、使用されているすべてのデータをデバイスストレージに永続的に保存することも、マップキャッシュに一時的に保存することもできます。 このようにして、アプリケーションは、デバイスがオンラインかどうかに関係なく、同じ機能にアクセスできます。
Explore Edition 内部 では、オフラインユースケース をサポートしていない若干異なるマップ形式が使用されていることに注意してください。
オフラインの地図
すべてのマップ データは、使用前にプリロード ( アクティブまたは明示的なダウンロードとも呼ば れます ) することも、オンライン使用中にダウンロード ( パッシブまたは暗黙的なダウンロードとも呼ばれます ) することもできます。 いずれの方法もデータのダウンロードにはネットワーク接続が必要ですが、明示的な方法では、事前にデータを準備し、デバイスがネットワーク接続されていない場合にデータを消費することができます。また、暗黙的な方法ではキャッシュを使用します。キャッシュはマップの使用中に上書きできます。
一部の HERE SDK 機能では、 関連 する API リファレンス のマニュアルまたはこのガイドに示されているように、特定のマップバージョンが必要になる場合があります。
これは、キャッシュされたマップ データ にも関連します。次のセクションを参照してください。 マップバージョンの詳細については、 ここを参照してください。
CatalogConfiguration を使用してマップ データ をカスタマイズします
既定では、 HERE SDK は、特殊なマップ形式にコンパイルされたマップ データ を使用します。 このデータは、その場でマップキャッシュにダウンロードされるか、オフラインマップを使用して事前にダウンロードできます ( すべてのエディションで利用できるわけではありません ) 。 Explore Edition および Navigate Edition は 、 OCM マップ形式を使用します。
図: カスタムマップレイヤ。 マップは、マップデータを含むレイヤの集合です。 各レイヤには、ジオメトリとアトリビューションを持つマップオブジェクトが含まれます。 レイヤのコンテンツはタイルに分割され、効率的な検索、マップ表示、ルーティング、マップマッチング、 運転者の警告およびその他のデータ。 コアマップコンテンツはリージョンマップに分割されますが、常に単一のグローバルマップとして使用できます。 その他のコンテンツは、専用のマップ(ほとんどが世界地図)で配信されます。
このデータは HERE と一緒にカスタマイズでき、カスタムカタログからアクセスできます。 このサービスを利用すると、個人所有のデータ( BYOD )を当社に持ち込むことができます。 これを行うには、カタログの HERE リソースネーム 値と範囲を指定する必要があります。 また、オフラインのマップデータと一致するように、ルーティングや検索などの特定の HERE オンラインサービスを適応させることもできます。 この場合、 HERE を使用すると、企業のために調整された HERE サービスをホストするカスタムバックエンドを設定できます。 このようなカスタムバックエンドは、EngineBaseURL
を介して指定でき ます。次に、SearchEngine
で開始されたすべてのリクエスト(たとえば、)がそのバックエンドを使用します。
カスタム CatalogConfiguration
およびカスタムバックエンド URL は SDKOptions
、 HERE SDK が初期化されるたびに指定する必要があります。設定は保持されないためです。
最初に、開始するカタログバージョンを指定する必要があります。 DesiredCatalog
は 、 HERE platform でカタログを識別する方法を提供します。 開発者は、カタログの HERE リソースネーム ( HERE リソースネーム )と CatalogVersionHint
、目的のバージョンのを指定することもできます。 設定が完了すると、MapUpdater
の経由で定期的なマップの更新を使用できます ( すべてのエディションで利用できるわけではありません ) 。 このカタログバージョンは、 MapVersionHandle
の一部として表示されます。
このような設定を行うには、 HERE との特別な契約が必要です。 詳細については、 HERE の担当者にお問い合わせください。
HERE Map Attributes API を使用すると、HEREのすべてのマップデータと顧客のプライベートマップデータにアクセスできます。
マップを自動更新
アプリケーションを起動するたびに、最新のマップバージョンに自動的に更新できますか? はい、リージョンがインストールされていない場合に可能です。 リージョンをインストールしている場合は、mapUpdater.updateCatalog()
を使用して更新する必要があり ます。 「オフラインマップ 」セクションを参照してください。 リージョンがインストールされていない場合は、CatalogVersionHint
を設定して更新できます 。
CatalogConfiguration
を作成するとき に、CatalogVersionHint
を設定できます(上記も参照)。
CatalogVersionHint.latest(ignoreCachedData)
実際には、HERE SDKを初期化するたびに、キャッシュされたマップデータが自動的に更新されます。 デフォルトでは、マップのOCM IDを設定する必要があります(カスタムマップを使用しない場合は、上記を参照してください)。
let defaultOCMHRN = "hrn:here:data::olp-here:ocm"
次に、次のステップとして、HERE SDKを初期化して catalogConfigurations
VIAを設定し SDKOptions
ます。
デバイスにリージョンがインストールされている場合、このコードはキャッシュされたマップデータを更新しないことに注意してください。 デバイス上に存在するキャッシュデータ(たとえば、マップキャッシュ内のデータや またはPrefetchAroundRouteOnIntervals
またはPrefetchAroundLocation
によってキャッシュされたデータ )は、新しいマップバージョンが利用可能な場合は使用されなくなります。 このようなデータは、LRU戦略を使用して時間の経過とともに削除されます。つまり、キャッシュはすぐには削除されませんが、必要に応じて新しいデータが使用され、キャッシュがいっぱいになると古いデータが削除されます。 したがって、これは起動時間に何の影響も与えないか、または非常に限られた影響しか与えません。
キャッシュされたOCMベースのマップデータ(Navigate Editionなど)を自動的に更新するには、デフォルトのHRN値を使用します。上記 DesiredCatalog
のコードスニペットに示されているように、「hrn:here:data:olp-here:ocm」を使用します。
フラグを使用すると ignoreCachedData
、マップバージョンを更新しようとするときに、デバイス上に存在する可能性のあるキャッシュデータをどのように処理するかを指定できます。 false
に設定すると 、HERE SDKは、キャッシュされたマップデータがまったくなく(最初のインストール時やキャッシュのクリア後など) かつ、 インストールされているマップデータがない場合にのみ、最新バージョンを使用するように自動更新します。 そうしないと、これは効果がありません。
マップのダウングレード
マップバージョンを固定的に選択することもできます。 たとえば、特定のカタログバージョンから開始する場合(現在のカタログバージョンよりも古い場合でも)。
CatalogVersionHint.specific(57)
その後、HERE SDKを初期化する際には、前のセクションで説明した手順と同じ手順を実行してください。
これは、キャッシュまたは永続的なマップデータがない場合にのみ効果があります。 clearCache()
SDKCache
たとえば、インスタンスを呼び出すことで、アプリを終了する前にキャッシュをクリアできます。
初めてインストールする場合は、マップビューを表示する前とルートデータをプリフェッチする前に、この操作を行う必要はありません。
マップキャッシュの調整
オンラインおよびオフラインのユースケースをより適切にサポートするために、 HERE SDK はダウンロードされたベクターマップ データのキャッシュをサポートしています。 これはバックグラウンドで発生します。 マップの操作中、データはローカルのデバイスに保存され、デバイスの接続が失われたり、オフライン モードで操作されたりした場合でもアクセスできます。
統合されたマップ キャッシュ メカニズムは、標準のベクターベースのマップ スキームをサポートしています。衛星画像やその他のラスター タイルもキャッシュされますが、構成できない別のキャッシュにあります。
キャッシュされたデータの量には制限があり、マップの使用中に新しいマップデータで上書きされることに注意してください。ほとんどの場合、アプリを以前と同じ場所で再起動したときに追加のデータをダウンロードする必要がないため、これでユーザーは起動時間が短縮されたように感じることができます。
キャッシュがいっぱいになる と、 LRU ( Least Recently Used )方式が適用されます。
SDKOptions
を使用して HERE SDK を手動で初期化する場合、キャッシュパスと最大サイズを指定 できます。 キャッシュパスは Info.plist
ファイルを介して設定することもできます。 詳細については、「エンジン」セクションを参照してください。
注 : 顧客のラスタレイヤには、別のキャッシュを定義できます。
マップキャッシュを消去するには、次の手順を実行します。
SDKCache.fromEngine(SDKNativeEngine.sharedInstance!).clearCache { (error) in
if error == nil {
}
}
SDKNativeEngine
の共有インスタンスをnil
に設定しても、キャッシュは消去されません。
空の文字列をキャッシュパスとして設定すると、デフォルトのキャッシュパスが保持されます。このパスには、次の方法SDKNativeEngine.sharedInstance?.options.cachePath
でもアクセスできます。
let cachePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path ?? ""
let sdkOptions = SDKOptions(accessKeyId: "YOUR_ACCESS_KEY_ID",
accessKeySecret: "YOUR_ACCESS_KEY_SECRET",
cachePath: cachePath)
注
ターン・バイ・ターンナビ (矢印ナビ) ではキャッシュが必要なため、を作成する場合は有効なキャッシュパスが必要 SDKNativeEngine
です。
Info.plist
ファイルからキャッシュパスを指定することもできます。 SDKNativeEngine
例については、 API リファレンス を参照してください。
オフラインのマップとは関係なく、マップキャッシュを新しいバージョンのマップに更新できます。 マップ mapUpdater.performMapUpdate()
キャッシュを呼び出すと、 Region
インストールされていない場合でも、新しいバージョンに更新されます ( 利用可能な場合 ) 。 オフラインのマップが利用可能な場合、以前と同様にマップキャッシュと一緒に更新されます。 キャッシュの更新後にオフラインのマップがインストールされた場合は、同じマップバージョンが使用されます。 マップキャッシュ と オフラインマップに異なるバージョンを使用することはできません。
マップビューのパン中に最新のマップデータを取得するには、更新が利用可能かどうかを確認してからインストールします。 オフライン Region
マップがインストールされていない場合は、数秒しかかかりません。 MapVersionHandle
は、現在使用されているマップバージョンを示します。
注
アプリケーションを新規インストールする場合、最新のマップバージョンが使用されているとは限りません。 通常、各 HERE SDK リリースには特定のマップバージョンが付属しています。 ただし、 ( カスタム ) CatalogConfiguration
を使用している場合 は、アプリ のインストール直後に使用するマップバージョンを指定できます。たとえば、DesiredCatalog
で最新のマップバージョンを指定します。
マップのバージョン、キャッシュ、およびオフラインマップの詳細 については、「オフラインマップ」セクションを参照してください。
注
SDKOptions
経由で、キャッシュの有効期限を指定することもできます。 時間を 0 に設定すると、アプリ がキャッシュにデータを保存できなくなります。 オフラインのリージョンがインストールされていない場合、 - デバイスの接続が失われたとき - デバイスが再びオンラインになるまでマップは表示されません。 これにより、常に最新で最大のマップ データ を表示できるとは限りません。 この場合も、マップの更新が利用できるかどうかを確認する必要があります。
マップキャッシュに関する質問と回答
-
マップ タイル とは: マップタイルはマップキャッシュに保存されます。 マップ タイル には、検索とルーティングに関連するデータと、ビジュアルリプレゼンテーションのベクターデータが含まれています。 最適化されたクライアントマップ( OCM ) 形式で保存されます。 マップのタイルは、さまざまなズームレベルで使用できます。 マップ タイル には、ズーム レベル によって異なるデータが含まれている場合があります。
-
マップキャッシュ内のデータが失われた場合、どのような影響がありますか? 通常、マップキャッシュが完了しているとは見なされず、周囲の領域にタイルが失われることがあります。 これは、マップタイルがレンダリングされている間にオンデマンドでのみロードされるためです。 マップキャッシュに不足しているタイルがある場合 、たとえば、OfflineSearchEngine
が不足しているタイルの一部である POI や道路名を見つけられず、 HERE Rendering Engine はそのようなデータをレンダリングできません。また、 不足しているタイルの周りにルートが見つからない場合、 OfflineRoutingEngine
が失敗することがあります。 OfflineSearchEngine
および OfflineRoutingEngine
は、すべてのエディションで使用できるわけではありません。
-
マップキャッシュのサイズを指定してください。 マップキャッシュのサイズは、アプリケーションによって変更できます。 256 MB 以上を使用してください ( デフォルト ) 。 512 MB 以上または 1 GB を推奨します。 ターン・バイ・ターンナビ (矢印ナビ) (などで利用可能 Navigate Edition
)の場合、ズーム レベル 14 のマップタイルが必要です。このタイルは、約 2 km の円に相当します ただし、場所によって多少異なる場合があります。
-
キャッシュの削除ポリシーは何ですか ? HERE SDK は LRU ( Least Recently Used タイル )ロジックを使用して、マップキャッシュがいっぱいになったときにタイルを削除します。 たとえば、現在の場所から離れた場所にあるタイルなど、削除する高度なロジックはありません。ユーザーが次に訪問する可能性のある世界の領域は予測できないからです。 ただし、マップキャッシュは セッション固有のものではありません。このキャッシュのデータは、最後の電源サイクルから最後にデバイスが使用されたときのものであり、次回アプリ が使用されたときからまだ残っています。 キャッシュは、デバイスごとではなく、アプリ ごとに固有のものであることに注意してください。
-
キャッシュ済みのマップ タイル はオフラインで検索できますか ? はい、OfflineSearchEngine
では常に検索できます。 ただし、すべてのマップ タイル にすべてのズーム レベル の同じ検索結果が含まれているわけではありません。 OfflineSearchEngine
は 、すべてのエディションで使用できるわけではありません。
-
一度にキャッシュされるマップ タイル は 1 つだけですか ? はい。位置が 2 つのタイルの端にない限り、一度に追加できるタイル は 1 つだけです。 ズーム レベル によっては、マップ ビュー のレンダリングに複数のタイルが必要になります。この処理は、ズーム レベル が変更された場合にのみ自動的には行われません。
-
衛星画像はキャッシュされていますか? はい。衛星マップ スキーム が設定されている場合、対応する画像もキャッシュされますが、衛星画像は 90 日後(契約上の理由により)使用できず、削除されます。 この場合、 HERE SDK は利用可能な新しい衛星マップタイルがあるかどうかを確認し、ある場合はキャッシュ内のイメージが自動的に更新されます。 画像が変更されていない場合は、タイムスタンプ のみが更新され、この確認後 90 日間画像を再利用できます。 ただし、 LRU 戦略は引き続き適用されます。 非衛星の地図タイル は、キャッシュがいっぱいの場合にのみ削除されます。古いタイルの古さや、時間に基づいて古いタイルが自動的に削除されることはありません。
-
地球儀のような「ベース マップ 」はいつでも利用できますか? HERE SDK は、自動的に世界のタイル、つまり世界で最も多いズーム レベル タイルをダウンロードします。 これは、レンダリングの目的で非常に限られた量の情報を使用して、世界中で利用できるマップが常に存在することを意味します。 国や大陸の形が表示され、大文字がテキストラベルで表示されます。
-
キャッシュは自動的に消去されますか ? いいえ、フルキャッシュは LRU 戦略に基づいてのみ消去されます ( 上記を参照 ) 。 接続が中断されたためにタイルが完全にダウンロードされていない場合、これらのタイルは保持され、接続が再開されたときにダウンロードが続行されます。
-
接続が利用可能な場合、ルート全体が事前にキャッシュされますか。 いいえ、自動的には発生しません。 ただし、RoutePrefetcher
を使用して、ルート経路沿いのキャッシュにマップ データ をダウンロードできます。 詳細については、ターン・バイ・ターンナビ (矢印ナビ) セクションを参照してください。 RoutePrefetcher
は、すべてのエディションで使用できるわけではありません。
HERE Logo Watermark
HERE SDK を使用する場合は、 HERE ロゴがマップ ビューに常に表示されていることが必要です。 既定では、 HERE ロゴはマップの右下隅にあります。 ただし 、マップ ビューインスタンスでsetWatermarkLocation()
を呼び出すことで、アプリの設計に合わせてその場所を簡単にカスタマイズできます。 UI 要素が重複しているため、必要な場合にのみ既定の配置を変更することをお勧めします。 非常に小さいビューの場合の注意 : マップの両端の濃度が 250 の独立したピクセルサイズ未満の場合、透かしは自動的に非表示になります。
注
HERE との特別な合意がある場合にのみ、 HERE ロゴを削除できます。
CarPlay のサポートを追加
HERE SDK は、 Apple の CarPlay ソリューションとシームレスに統合できます。
たとえば、 HERE SDK のプレミアムオフラインおよびオンラインサーチフィーチャーを使用して、車の中の場所を検索したり、本格的なナビゲーションソリューションを統合したりできます。 「 HERE マップを CarPlay に統合 」チュートリアルに従って、車両のヘッドユニットディスプレイでマップ ビュー をはじめたり表示する方法を確認します。