地図のアーキテクチャと構造の概要
HERE レーン は、主に 多数 の属性を持つトポロジモデルによって表される道路ネットワークで構成されています。 カタログ内のレイヤー には、これらのモデルに基づいて、マップ データを含むメモリに最適化された個別のレイヤーが一覧表示されます。 このデータは 、ネイティブ( Protobuf )パブリケーション形式、 タイリング、 バージョン管理、 圧縮を使用して提供 され、このデータのモジュール化された可用性をさらに最適化します。 詳細については、以下のセクションを参照してください。
トポロジモデル
HERE レーン は、ロードセンターラインモデルとレーンモデルをベースにしたさまざまな層で構成されています。 ロードセンターラインモデルのレイヤーには、道路のトポロジーとジオメトリが含まれています。 レーンモデルのレイヤーには、レーントポロジー、ジオメトリ、レーンレベルの属性が含まれています。
このドキュメントの「論理データモデル」では、これらのトポロジモデルの基礎となるロジックと、それらを強化するさまざまな属性について説明します。
このドキュメントの「形式の仕様」では、これらのトポロジモデルのプロトコルバッファの実装とその属性について説明します。
カタログ内のレイヤー
HERE Lanes カタログには、ストレージ容量を最適化し、一般的な使用例の効率を更新するための論理レイヤーが含まれています。
ネイティブ ( Protobuf )パブリケーション形式
HERE Native スキーマ for HERE Lanes は、サイズ効率のバランス、スキーマの進化のサポート、言語サポート、一般的な使いやすさのために、 Google のプロトコルバッファデータ形式を使用してファイルとして公開されています。
Proto3 構文
現在のバージョンの HERE Lanes では、 Proto3 構文のダイアレクトが使用されています。 この新しい( 2015 年頃)ダイアレクトは、既存の Proto2 構文の拡張版で、新しい言語機能を提供し、より広範なクライアント言語サポートの可能性を提供します。 プロトコルバッファランタイムソフトウェアは、並行して方言をサポートしており、エンコード形式には互換性があります ( 一部の制限があります ) 。 プロトコルバッファランタイム v3.0.0 では、 Proto3 構文のサポートが導入 されました。したがって、これは現在の HERE レーンデータを処理するために必要な最小バージョンです。
Proto3 構文への移行の選択は、完全に新しいスキーマデザインにしばらく戻すことで作成された新しい言語機能と機会によって推進されました。この結果、レガシー形式との下位互換性を維持する必要がなくなりました。
ネイティブ ( Protobuf )スキーマ組織
HERE レーンの各レイヤー は、特定の種類のデータを公開します。 そのため、各レイヤーには独自のトップレベルメッセージタイプがあります。 たとえば 、道路トポロジジオメトリ レイヤーのタイルには、最上位レベルの TopologyLayerTile メッセージが 1 つ含まれています。 各レイヤーには、レイヤー固有の .proto スキーマファイルにパッケージ化された最上位の ( およびその他の ) 埋め込みメッセージが含まれています。 たとえば、トポロジ層のメッセージは「 layer-topology.proto" スキーマ」ファイルにあります。
レイヤー間で再利用される一般的なメッセージ構造がある場合は、プロトコルバッファの「インポート」機能を使用して、 common.proto ファイルからアクセスします。 たとえば、ほとんどのレイヤースキーマファイルでは、メッセージを参照する共通のトポロジを持つ common.proto ファイルがインポートされます。
特定のレイヤーに必要なすべてのプロトコルバッファメッセージ定義を含むスキーマファイルは、 1 つの zip アーカイブにパッケージ化され、カタログにも公開されます。 この zip アーカイブは、カタログのメタデータでそのデータレイヤーに関連付けられているスキーマレイヤー内の非タイリング(汎用)パーティションとして利用できます。
ネイティブ ( Protobuf )の使用状況
一般に、 Google プロトコルバッファスタイルガイドに従います。
タイリング
マップ データ は、 HEREtile タイリング方式を使用してパーティション分割され、レベル 14 で公開されています。
バージョン管理
HERE Lanes カタログ ( データレイヤーの統合されたグループ ) は、バージョン管理された「スナップショット」として公開されます。 すべてのレイヤーおよびタイルのマップ全体を含む、単一のカタログバージョン番号が各データセットに割り当てられます。 すべての地図更新で、地図の全体的なバージョン番号が増分されます。 マップのレイヤーおよびタイルは、すべての公開済みコンテンツのレイヤーおよびタイルにわたって内部的な整合性を保ちながら、バージョンごとに取得できます。
圧縮
公開された地図のタイルは、 ZIP 圧縮方式で圧縮されます。 これらのファイルに対する HTTP リクエストは、 HTTP ヘッダ Content-Type "application/x-protobuf" および Content-Encoding "gzip" とともに返されます。 さらに、圧縮タイルを使用するカタログレイヤーの「コンテンツタイプ」と「コンテンツエンコード」の値は、レイヤーメタデータで指定されたものと同じになります。