フィーチャーの空間検索

このセクションでは、提供された形状と交差するスペース内の特定のフィーチャーを検索する方法について説明します。

空間検索では、入力として 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"
            }
        }
    ]
}

」に一致する結果は 件です

    」に一致する結果はありません