インタラクティブなマップ レイヤー にデータを公開します
interactive
REST API を使用してインタラクティブマップ レイヤー にデータを公開するには、次の手順を実行します。
- HTTP 要求で使用する許可トークン を取得します。 詳細については、『 Identity & Access Management Guide 』を参照してください。
- API ルックアップサービスを使用
interactive
して、書き込み先のカタログの API のベース URL を取得します。 API ルックアップサービスの使用方法の詳細については、『 API Lookup 開発者ガイド 』を参照してください。 - POST または
interactive
API の PUT リクエストを使用して、データをレイヤーに送信します。
機能を追加します
レイヤーに機能を追加する方法は 2 つありますが、その違いはレイヤー内の既存のデータの処理方法のみです。
- POST を使用して、新しい機能を作成するか、既存の機能にパッチを適用します。
- PUT を使用して、新しいフィーチャーを作成するか、または既存のフィーチャーを置き換えます。
POST を使用します
このメソッドを使用すると、フィーチャーの作成、更新、削除を行うことができます。また、ユーザーは、 1 つのリクエストで挿入、更新、削除などの複数の操作を結合できます。
POST /<Base path for the interactive API from the API Lookup Service>/layers/<Layer ID>/features
API リクエスト本文では、次の 2 つのコンテンツタイプがサポートされていFeatureCollection
] をクリック FeatureModificationList
します。これは既定のタイプで、およびです。
FeatureCollection
リクエスト :
{
"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,
"updatedAt": 1528461230706
}
},
"bbox": [
44.41260826914623,
31.5295270854107,
45.66944420664623,
32.563421942181535
]
}
],
"type": "FeatureCollection"
}
FeatureModificationList
FeatureModificationList
このタイプでは、動作プロパティを onFeatureNotExists
またはのいずれかに設定でき onFeatureExists
ます。
onFeatureNotExists
提供された ID の機能が存在しない場合、または提供された機能に ID が含まれていない場合は、次のいずれかの操作を実行できます。
-
create
- 新しいオブジェクトが作成されます。 これがデフォルトのアクションです。 -
retain
- アクションが実行されないため、バッチ操作の実行を続行できます。 -
error
- 指定した ID のオブジェクトが存在しない場合、エラーが発生し、バッチ操作全体がキャンセルされます。
onFeatureExists
指定した ID のフィーチャーが存在する場合は、次のいずれかの操作を実行できます。
-
patch
- フィーチャオブジェクトは部分的な更新オブジェクトとして処理されます。この更新オブジェクトには、変更するプロパティのみが含まれている場合があります。 オブジェクトに存在しないプロパティが挿入され、プロパティの値が null に設定されていない限り、すべての既存のプロパティの値が更新されます。その結果、プロパティがオブジェクトから削除されます。 これがデフォルトのアクションです。 -
replace
- 指定された ID のオブジェクトが存在する場合、そのオブジェクトは指定された機能オブジェクトに置き換えられます。 -
merge
- 提供されたフィーチャーオブジェクトは、部分的な更新ではなく、完全なオブジェクトバージョンとして処理されます。 -
delete
- 指定した ID の機能が削除されます。 -
retain
- 機能の現在の状態が保持され、応答に含まれます。 -
error
- オブジェクトがすでに存在する場合にエラーを発生させます。
リクエスト :
{
"type": "FeatureModificationList",
"modifications": [
{
"type": "FeatureModification",
"onFeatureExists": "update",
"onFeatureNotExists": "create",
"featureData": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "NTvvEciZlE",
"properties": {
"featureclass": "Roads"
}
}
]
}
},
{
"type": "FeatureModification",
"onFeatureExists": "delete",
"onFeatureNotExists": "retain",
"featureIds": [
"<id2>",
"<id3>"
]
}
]
}
レスポンス :
{
"features": [
{
"geometry": {
"type": "LineString",
"coordinates": [
[
...
], ... [
...
]
]
},
"id": "NTvvEciZlE",
"type": "Feature",
"properties": {
"featureclass": "Roads",
"@ns:com:here:xyz": {
"createdAt": 1528461230706,
"updatedAt": 1528461230706
}
},
"bbox": [
44.41260826914623,
31.5295270854107,
45.66944420664623,
32.563421942181535
]
}
],
"type": "FeatureCollection"
}
PUT を使用します
次の PUT リクエストを使用しても同じ応答が返されます。
PUT /<Base path for the interactive API from the API Lookup Service>/layers/<Layer ID>/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,
"updatedAt": 1528461230706
}
},
"bbox": [
44.41260826914623,
31.5295270854107,
45.66944420664623,
32.563421942181535
]
}
],
"type": "FeatureCollection"
}
注
バージョン対応のインタラクティブマップ レイヤー を使用している場合、上記のいずれかの方法でデータを公開すると、レイヤーのバージョン番号が自動的に増加します。