フィーチャーを追加および削除します

メモ

API のエンドポイントは https://xyz.api.here.com/hubです。

データを追加します

基本的に、スペースに機能を追加するには 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=*

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

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