HERE Map Content エンティティを参照しています
はじめに
位置情報サービスは、多くの場合、マップエンティティへの参照を返します。 一般に、次の情報を提供する必要があります。
- 識別子 : エンティティの一意の識別子
- パーティション / タイル : マップ データ でこの識別子を見つける場所
- 地図 HERE リソースネーム :データのソースとなる地図。 応答には、異なるマップからソースされたエンティティ( BYOD など)を含めることができます。
- マップバージョン : エンティティが抽出されたマップバージョン。
- メタデータ :エンティティ固有の Extra メタデータ 。 たとえば、 topologySegment の一部または特定の方向のみを参照できます。
設計上の考慮事項
- トポロジセグメント
- 場所
- 管理者の場所
- ガソリンスタンド /EV 充電ステーション
- トール ゾーン / 環境ゾーン
ユースケース
- サービス提供
- カタログサービス / データサービスへのサービス
- サービスへのカタログ / データサービス
- カタログ / データサービスからカタログ / データサービスへ
位置参照の定義
位置参照定義は、ライブラリおよびサービス全体で使用して、マップエンティティへの参照を交換できる定義のコレクションです。
ほとんど EntityReference
のケースで動作する汎用的なものと SegmentReference
、トポロジセグメントを参照するための特殊なものを提供しています。
エンティティ参照
マップエンティティへの参照は、次の構造を持つ HERE リソースネーム の形式になります。
Format: `{catalogHrn}:{catalogVersion}:({layerId})?:{partitionId/tileId}:{entityIdentifier}(#{entityMetadata})?`
ここで、
- カタログ番号 : カタログ カタログカタログ( Catalog HERE リソースネーム
- カタログバージョン : カタログバージョン
- layerId ( 任意 ): エンティティが見つかるカタログ内のレイヤー識別子。 参照されているデータが複数のレイヤーに分散している場合、レイヤーは提供されません
- partitionId/teleId:
- HERETile パーティショニング : これは TileId で、この識別子はマップの特定のバージョン ( レベル 12 ~ 15) にあります。
- 一般的なパーティション分割 : これは、対応するレイヤーで定義されているパーティション です。
- entityIdentifier :カタログ内のエンティティの完全な識別子。
-
entityMetadata :エンティティ固有の追加のメタデータ 。
- 「 $ 」、「 # 」、「 : 」などの制御文字は使用できません。
例 :
参照を配置 :
hrn:here:data::olp-here:rib-2:4829:electric-vehicle-charging-stations:23618403:here:pds:place:276u33de-35e6b730b28b43eeb64518ec41f5b4c3
トポロジセグメント :
hrn:here:data::olp-here:rib-2:4823::377894444:here:cm:segment:97139412
ダイレクト・トポロジー・セグメント:
hrn:here:data::olp-here:rib-2:4823::377894444:here:cm:segment:97139412#+
範囲ベースのセグメント :
hrn:here:data::olp-here:rib-2:4823::377894444:here:cm:segment:97139412#+0.2..0.8
domain:system:type:id の形式のセグメントの識別子。例 : "here:cm:segment:3455277" 。 このプロパティは、カタログ内で一意です。
コンパクトなエンティティ参照
コンパクトなエンティティ参照は EntityReference で、プレースホルダを使用して繰り返されるサブ文字列を短縮します。
参照にプレースホルダーが含まれている場合 refReplacements
は、対応すると組み合わせてのみ解釈できます。 すべてのプレースホルダーを置き換えると、になり EntityReference
ます。 例 : "$0:23618402:$ 1:5262h5rn-8835451b09847b46cd822794f35697" パターン : '(^|:)$ \d + (:|$)'
対応するを使用 refReplacements
します。
"refReplacements": {
"0": "hrn:here:data::olp-here:rib-2:3217:environmental-zones",
"1": "here:cm:envzone",
"2": "hrn:here:data::olp-here:rib-2:3217:",
"3": "here:cm:segment"
},
完全な HERE リソースネーム を再構築 refReplacement
するには、すべてのプレースホルダーを response パラメーターの置き換え文字列で置き換える必要があります。
照会パラメーター ( メソッド get) など、参照されている一部を交換する場合に、上記のリプレゼンテーションを使用できます。 構造化されたリクエスト / レスポンス(通常は JSON )には、代替のコンパクトなリプレゼンテーションが定義されています。
リプレゼンテーションは、置換文字列と置換後のプレースホルダーを含むコンパクトリファレンスを含むオブジェクトによって構成されます。
refReplacements: object {index} → {referencePart}
index: placeholder index. Format \d+
referencePart: part of the reference that can be replaced at the given index.
reference: entity reference as described above but where some parts are replaced by placeholders.
The placeholder format is \$\d+ and need to be surrounded by colons or string start/end.
It can be captured with the following regular expression: (^|:)\$\d+(:|$)
Examples:
Valid placeholders: $0:23:layer1:41879514:$1:5262h5rn-8835451b09847bab46cd822794f35697
Invalid placeholder: $0:23:layer1:41879514:$1:$2-8835451b09847bab46cd822794f35697
例
Places
{
"refReplacements": {
"0": "hrn:here:data::olp-here:rib-2:23:electric-vehicle-charging-stations",
"1": "here:pds:place",
"2": "customer1:data::my-realm:map:4:electric-vehicle-charging-stations",
"3": "xxx:yyy:place"
},
...
"places": [
{ ...,
"placeRef": "$0:41879513:$1:7762h5rn-77262d51b09847bab46cd822794f919e"
},
{ ...,
"placeRef": "$0:41879514:$1:5262h5rn-8835451b09847bab46cd822794f35697"
},
...
{ ...,
"placeRef": "$2:41879513:$3:4683213516541320"
}
]
}
Topology Segments
{
"refReplacements": {
"0": "hrn:here:data::olp-here:rib-2:42:", /* note the trailing column to denote a missing layerId */
"1": "hrn:here:data::olp-here:here-map-content-japan-2:5:"
"2": "here:cm:segment",
"3": "here:xs1:segment"
},
...
"segments": [
{"ref": "$0:23618402:$2:170299229#+0.6..1"},
{"ref": "$0:23618402:$2:170299229#+"},
...
{"ref": "$0:23618402:$2:100633204#-"},
{"ref": "$0:23618402:$2:103074267#+0..0.4"},
{"ref": "$1:23618402:$3:101400170#+0.27..1"}
{"ref": "$1:23618402:$3:201933605#-"}
{"ref": "$1:23618402:$3:201933605#+"}
{"ref": "$1:24330788:$3:5851092#-0..0.81"}
]
}
トポロジセグメントには、次の形式の追加のメタデータ を含めることができます。{ direction } ( { range } | { point } )?
direction format:
* This is an undirected or bidirectional segment.
+ This is a directed segment following the pre-defined segment direction (forward direction). The pre-defined segment direction is the one going from the start node to the end node as defined in the source catalog.
- This is a directed segment following the opposite direction (backward direction).
? The segment has an unknown direction.
range format: {startOffset}..{endOffset}
startOffset <= endOffset
point format: offset
すべてのオフセットは、 [01](\.\d+)?
0 ~ 1 の正の浮動小数点数で、書式およびセグメント内の位置を表します。 ダイレクトセグメントの場合、オフセットは常にセグメントの方向を基準にしていますが、非ダイレクトセグメントの場合、オフセットはフォワードの方向を基準にしています。