フィーチャーを追加および削除します
データを追加します
基本的に、スペースに機能を追加するには 2 つの方法があります。 その唯一の違いは、スペース内の既存のデータの処理方法です。 POST を使用 すると、既存のデータがすべて保持 されます。 PUT を使用すると、スペースに残っているデータのみが PUT リクエストでアップロードしたデータになります。
機能を変更するための簡易リクエストがありますが、別の例では件名になっています。
メモ
アップロードする前に使用するタグについて検討 し、 addTags クエリ パラメーターを使用して追加します。 ID を指定せずにすべてのフィーチャーにタグを追加する方法はまだありません。
リクエスト
Swagger で試してください
POST /spaces/{spaceId}/features
対応するボディーを使用する場合:
本文を要求します
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"featureclass": "River"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
...
], ... [
...
]
]
}
}
]
}
応答
{
"features": [
{
"geometry": {
"type": "LineString",
"coordinates": [
[
...
], ... [
...
]
]
},
"id": "NTvvEciZlE",
"type": "Feature",
"properties": {
"featureclass": "River",
"@ns:com:here:xyz": {
"createdAt": 1528461230706,
"space": "{spaceId}",
"tags": [
"river"
],
"updatedAt": 1528461230706
}
},
"bbox": [
44.41260826914623,
31.5295270854107,
45.66944420664623,
32.563421942181535
]
}
],
"type": "FeatureCollection"
}
リクエスト
Swagger で試してください
次 の PUT リクエストでも同じことができます。
PUT /spaces/{spaceId}/features
同じボディーの場合:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"featureclass": "River"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
...
], ... [
...
]
]
}
}
]
}
同じ応答が返されます。
応答
{
"features": [
{
"geometry": {
"type": "LineString",
"coordinates": [
[
...
], ... [
...
]
]
},
"id": "NTvvEciZlE",
"type": "Feature",
"properties": {
"featureclass": "River",
"@ns:com:here:xyz": {
"createdAt": 1528461230706,
"space": "{spaceId}",
"tags": [
"river"
],
"updatedAt": 1528461230706
}
},
"bbox": [
44.41260826914623,
31.5295270854107,
45.66944420664623,
32.563421942181535
]
}
],
"type": "FeatureCollection"
}
そのため、これまでアップロードされた機能をそのまま使用しているのは簡単ではありません。
検証エラー
検証機能を使用している場合、次のような機能を追加または変更すると、エラーメッセージが表示されることがあります。
{
"type": "FeatureCollection",
...
"features": [],
"failed": [
{
"id": null,
"position": 0,
"message": "Feature on position 0 has JSON schema validations errors/warnings.\n[[1,151][/properties] The object must have a property whose name is \"city\"., [1,151][/properties] The object must have a property whose name is \"employees\"., [1,151][/properties] The object must have a property whose name is \"name\"., [1,151][/properties] The object must have a property whose name is \"country\".]"
}
]
}
失敗 したプロパティには、スキーマの検証によって拒否されたすべての機能が含まれています。
ID は送信した ID です。 送信しなかった場合、 ID は例のようにヌルになります。
position は、アップロードされたフィーチャコレクション内の位置(ゼロを基点とした位置)です。
このメッセージ には、スキーマ検証エラーと、スキーマに確認されなかった内容の詳細な説明が含まれています。
フィーチャーを削除します
もちろん、以前に追加した機能を削除することもできます。 このリクエストは次のとおりです。
リクエスト
Swagger で試してください
DELETE /spaces/{spaceId}/features/id={featureId1},{featureId2}
応答
HTTP/1.1 204 No Content
同じタグが付けられている機能を削除する場合は、次のようにしてもかまいません。
リクエスト
Swagger で試してください
DELETE /spaces/{spaceId}/features?tags=oldFeatures
応答 HERE は、 ID による削除と同じである必要があります。
次のリクエストを使用して、すべての機能を削除することもできます。
リクエスト
Swagger で試してください
DELETE /spaces/{spaceId}/features?tags=*