フィーチャーの空間検索
このセクションでは、提供された形状と交差するスペース内の特定のフィーチャーを検索する方法について説明します。
空間検索のための形状を提供できます
空間検索では、入力として Geometry が必要です。 1 つの一般的な使用例 : 特定の位置から約 1000 メートル離れた場所にあるすべての機能を検索します。 もう 1 つの方法として、道路から 100 メートル離れた場所にあるすべての機能を見つけることができます。
このような空間検索を実現するには、 Point または LineSting Geometry と、メートル単位で示される半径を指定します。半径は、入力 Geometry に厚みを付けるために適用されます。
もう 1 つの一般的な用途は、国に属するすべての機能を検索することです。 このために必要なのは、その国の Polygon Geometry を提供することだけです。
すべての GeoJSON ジオメトリタイプを入力 [Point 、 MultiPoint 、 LineString 、 MultiLineString 、 Polygon 、 MultiPolygon ] を参照してください
POST リクエスト を介した形状の送信
検索ジオメトリを提供する最も簡単な方法は、 POST リクエストを使用して送信することです。
空間検索で既存の形状を参照しています
検索形状を提供するもう 1 つの方法は、既存のフィーチャーから読み取ることです。このフィーチャーは、アクセス権を持つデータ ハブスペースに保存されます。 Geometry の検索が非常に複雑な場合、または頻繁に使用する Geometry を空間検索に保存する場合にお勧めします。
空間検索を拡張します
空間検索リクエストを定義と結合できます。
- 半径 - メートル単位で入力した形状に厚みを付けます
- プロパティ検索 - プロパティに基づいてフィルタを追加します
- タグ検索 - タグに基づいてフィルタを追加します
- 選択 - 応答に排他的に含まれるプロパティを選択します
Spatial Get-Requests を使用しています
リクエスト
Swagger で試してください
空間的検索 - 位置を参照し ( 緯度、経度 ) 、メートルで示された半径を定義して検索します。
GET /spaces/{spaceId}/spatial?lon={Longitude}&lat={Latitude}&radius={raduisInMeters}
空間検索 - データ ハブスペースからフィーチャーを参照して検索します。
GET /spaces/{spaceId}/spatial?refSpaceId={referencedSpace}&refFeatureId
={referencedFeatureId}
応答
{
"type": "FeatureCollection",
"features":
[
{
"type": "Feature",
"id": "BfiimUxHjj",
"geometry":
{
"type": "Point",
"coordinates":
[
7.01,
50.03
]
},
"properties":
{
"name": "Anfield",
"@ns:com:here:xyz":
{
"createdAt": 1517504700726,
"updatedAt": 1517504700726,
"space": "x-demospace",
"tags":
[
"football",
"stadium"
]
},
"amenity": "Football Stadium",
"capacity": 54074,
"popupContent": "Home of Liverpool Football Club"
}
}
]
}
空間的な事後要求を使用しています
リクエスト
Swagger で試してください
空間的検索 - 形状を投稿して検索します。
POST /spaces/{spaceId}/spatial
次のボディーを使用します
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
7,
50
],
[
7.1,
50
],
[
7.1,
50.1
],
[
7,
50.1
],
[
7,
50
]
],
[
[
7.05,
50.05
]
[
7.05,
50.09
],
[
7.09,
50.09
],
[
7.09,
50.05
],
[
7.05,
50.05
]
]
]
]
}
応答
{
"type": "FeatureCollection",
"features":
[
{
"type": "Feature",
"id": "BfiimUxHjj",
"geometry":
{
"type": "Point",
"coordinates":
[
7.01,
50.03
]
},
"properties":
{
"name": "Anfield",
"@ns:com:here:xyz":
{
"createdAt": 1517504700726,
"updatedAt": 1517504700726,
"space": "x-demospace",
"tags": []
[
"football",
"stadium"
]
},
"amenity": "Football Stadium",
"capacity": 54074,
"popupContent": "Home of Liverpool Football Club"
}
}
]
}