HERE SDK の最適化
この 最適化ガイド では、 HERE SDK のサイズを縮小し、ロードまたは処理する必要のあるデータを削減してランタイムの動作を最適化するためのオプションをいくつか示します。
フィーチャー設定を使用します
LayerConfiguration
を設定すると 、MapView
をパンするとき、またはオフラインで使用するために新しい Region
をダウンロードするときに、キャッシュにロードするマップ データの量を指定できます。 たとえば、ターン・バイ・ターンナビ (矢印ナビ)などのフィーチャーがアプリケーションで使用されていない場合 、フィーチャーの設定のnavigation
を削除できます。
その結果、MapView
をパンすると、キャッシュにダウンロードされるデータ量が少なくなります。 さらに、新しいRegion
をダウンロードすると、サイズが小さくなります。
LayerConfiguration
をSDKOptions.layerConfiguration
を経由してアイテムのFeature
リストとして設定すると 、一覧表示され ているフィーチャーのみが有効になり、それ以外のフィーチャーはすべて 無効になります。 1 つのフィーチャーは1つのみを無効にする場合は、他のすべてのフィーチャーを有効にするか、または無効にする必要があります。
たとえば、フィーチャー・一覧に navigation
とTRUCK
が含まれている場合、 ナビゲーション フィーチャーとトラックフィーチャーのみが有効になり、その他のフィーチャーはすべて無効になります。
Region
が 初めてダウンロードまたはキャッシュされたときに、グローバルに設定されたのみLayerConfiguration
が使用されます。 すでにダウンロードされているリージョンのLayerConfiguration
を更新する場合は、リージョンを削除して再度ダウンロードするか、または mapUpdater.performFeatureUpdate()
を呼び出します ( 以下のも参照 ) 。
現在、以下のフィーチャーを指定できます。 表には、デフォルトで有効になっているフィーチャーも表示されます。
フィーチャー | 有効 | 説明 |
detailRendering | はい | 建物などの追加のレンダリングの詳細。 MapView にのみ使用されます。 設定されていない場合、オフラインのリージョンをダウンロードするとき、またはそのようなデータが含まれているエリアをプリフェッチするときに、データが除外されます。 ただし、オンラインでの使用中には、このようなデータがキャッシュにダウンロードされて表示されることがあります。 |
navigation | はい | ナビゲーション中のマップマッチングに使用されるマップ データ。 設定されていない場合、オンラインまたはオフラインで使用しているときにナビゲーションが正しく動作しないことがあります。 |
offlineSearch | はい | 検索に使用されるマップ データ。 設定されていない場合、 OfflineSearchEngine を使用するとが正しく動作しないことがあります。 |
offlineRouting | はい | ルートの計算に使用されるマップ データ。 設定されていない場合、 OfflineRoutingEngine を使用するとが正しく動作しないことがあります。 |
truck | はい | トラックルートの計算に使用されるマップ データ。 設定しないと、 OfflineRoutingEngine を使用してトラックルートを計算するときにが正しく動作しないことがあります。 トラックナビゲーション中の地図の一致にも使用されます。 設定しないと、オフラインで使用しているときにトラックナビゲーションが正しく動作しないことがあります。 オンライントラックナビゲーションは、デバイスがオンライン接続されている場合でも機能します。 |
landmarks3d | いいえ | テクスチャ付き 3D ランドマークのレンダリングに使用されるマップ データ。 設定されていない場合、オフラインのリージョンをダウンロードするとき、またはそのようなデータが含まれているエリアをプリフェッチするときに、データが除外されます。 LANDMARKS レイヤーがMapScene に対して表示されるように設定されている場合、3D ランドマークはオンライン使用中にも表示されます。 |
junctionView3x4 , junctionView16x9 | いいえ | 複雑な交差点に適した 3D ビジュアル。 このアセットデータは、ガイダンス中に SVG 画像を表示するために使用できます。 有効にすると、ダウンロードされたリージョンに、対応する JunctionViewWarning イベントで使用される交差点表示イメージが含まれます。 これは、旅程を開始する前にアセットをダウンロードする場合に役立ちます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 各イメージは最大 15 MB を使用できます。 HERE SDK の今後のリリースでは、リアルさのレベルを下げることでサイズが最適化されることに注意してください。 デフォルトでは、レイヤーは有効になっていません。 |
junctionSign3X4 、 junctionSign4X3 、 junctionSign3X5 、、 junctionSign5X3 junctionSign16X9 | いいえ | 署名者のビジュアル。 このアセットデータは、ガイダンス中に SVG 画像を表示するために使用できます。 有効にすると、ダウンロードされたリージョンに、対応する SignpostWarning イベントで使用される交差点表示イメージが含まれます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 各イメージは最大 300 KB を使用できます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 デフォルトでは、レイヤーは有効になっていません。 |
rendering | はい | Carto POI などの基本的なレンダリングフィーチャーのセット。 ベースレイヤーとして、このフィーチャーを無効にすることはできません。 |
traffic | はい | RDS-TMC 形式を使用してトラフィックブロードキャストフィーチャーを提供するマップ データ。 インターネット接続がない場合に使用して、ルーティングモジュールが無線チャネル経由で送信されるトラフィックデータを利用して、OfflineRoutingEngine を使用してルートを作成できるようにします。 |
ev | いいえ | EV 充電ステーションのオフライン マップデータ。 |
truckServiceAttributes | いいえ | トラックに関連する属性をOfflineSearchEngine から戻すことができます。 |
fuelStationAttributes | いいえ | OfflineSearchEngine によって燃料属性が返されるようにします。 |
offlineBusRouting | いいえ | バスルートの計算に使用されるマップ データ。 設定されていない 場合 、 OfflineRoutingEngine はBusOptions でルートを計算できないことがあります。 |
terrain | いいえ | 地形データを表すために使用されるマップ データ 。 |
この detailRendering
フィーチャーは Headless Editionには関連していません。
一覧表示されている各フィーチャーは、 1 つ以上の OCM レイヤーグループに関連しています。 OCM レイヤーグループの名前は、 API リファレンス のフィーチャーごとに確認できます。 ただし、ほとんどのユースケースの場合、関連する OCM レイヤー名を知っていても関連ありません。
さらに、 HERE SDK エディションで現在使用するのに適していない 2 つのレイヤーADAS
とEHORIZON
(電子ホライズン)があります。これらのレイヤーは現在は無視してかまいません。 デフォルトでは、これらはすでに無効になっています。
フィーチャーが無効になっている場合、そのフィーチャーに必要なデータがキャッシュ内のスペースまたはダウンロードRegion
の一部 としては使用されません。 また、フィーチャーをオフラインで使用することはできません。 また、offlineSearch
が無効になっているのにOfflineSearchEngine
を使おうとした場合など、エラーが発生することもあります。詳細については、以下を参照してください。
注
SearchEngine
や RoutingEngine
などのエンジン では、キャッシュされた、またはダウンロードされたマップ データは使用されません。 関連するフィーチャーが無効になっていない場合、OfflineSearchEngine
および OfflineRoutingEngine
のみがこのようなデータを使用します。 たとえば、アプリがオンラインで完全に動作することが確実な場合は、オフライン検索フィーチャーを無効にしても安全です。 ただし、一時的に接続が失われたときにアプリ が POI を検索できるようにする 場合は、そのような失われた POI を検出したときににOfflineSearchEngine
に切り替えることができます。そのため、関連するフィーチャーを無効にしないでください。
上記のように、一部の無効化されたフィーチャーについては、デバイスがオンライン接続され、フィーチャーが必要な場合に、デバイスが対応するデータをダウンロードすることがあります。 たとえば、このlandmarks3d
フィーチャーが無効になっていても、対応するレイヤーMapScene
が有効になっている場合、デバイスは必要なテクスチャをダウンロードして 、 3D ランドマークがMapView
のビューポイントに表示されたときにレンダリングします。
上記のすべてのフィーチャについて、 offlineSearch
およびofflineRouting
を除き、 HERE SDK はまず、必要なデータがキャッシュで利用可能かどうかを確認します。 オフラインで使用するためにダウンロードされたRegion
があるかどうかが確認されます。 見つからない場合、 HERE SDK は必要なデータをワイヤレスでダウンロードしようとします。 offlineSearch
とofflineRouting
の動作は同じですが、ワイヤレスではデータは要求されません。
フィーチャーの設定を更新
フィーチャーの設定は、次のアプリケーションアップデートのインストール後に mapUpdater.performFeatureUpdate()
を呼び出して更新でき ます。PList
ファイル内のフィーチャーの設定が更新されたら、このメソッドを呼び出します。
その結果、キャッシュされたマップ データ が削除され、その後更新されます。 また、ダウンロードしたリージョンが更新され、変更内容が反映されます。
アップデートをいつ実行するかは開発者の責任で決定してください。 HERE SDK は、このような更新がいつ行われるかを決定または通知しません。 performFeatureUpdate()
の呼び出しは、アプリケーションが更新された後で 1 回のみ必要です。 開発者がフィーチャーの設定を変更していない場合は、この関数を呼び出す必要はありません。
未使用の音声を削除
未使用の音声ガイダンスファイルを削除することで、 HERE SDK のサイズを削減できます。
これらのファイルは、テキスト / スピーチボイスメッセージでターン・バイ・ターンナビ (矢印ナビ) を使用する場合にのみ必要です。
未使用のファイルを削除するには、次の操作を行います。
heresdk.framework
の内部でフォルダios-arm64/voice_assets
を開き、不要な音声パッケージを削除します。
ここで サポートされているすべての音声言語のリストと、 HERE SDK フレームワーク内に保存されている関連する音声スキンの名前を見つけることができます。
未使用のフォントの削除
未使用のフォントを削除することで、 HERE SDK のサイズを削減できます。 これについては、 ここで説明します。
ファットバイナリ
HERE SDKのバイナリサイズを配布用に最適化する方法の詳細については 、こちらをご覧ください。
その他のオプション
HERE SDK の最適化-その他のオプションは次のとおりです。
さらに、すべてのエンジンには、フィーチャーの設定方法を許可するいくつかのオプションが含まれています。 たとえば、SearchEngine
を使用する場合、SearchOptions
を指定して、返される検索結果を制限できます。