1

Google サイトで JavaScript を使用して動的に更新したい Google Maps Engine のテーブルがあります。既存のテーブルに機能を追加する方法を説明しているこのヘルプ ページを見つけましたが、テーブルに追加するのではなくテーブルを更新するようにコードを変更する方法を理解するのに苦労しています。私は具体的にprocessResponseandprocessErrorResponse関数を変更する必要があると信じています。ただし、私は JavaScript/jQuery/JSON にかなり慣れていないため、代わりに何が必要かを判断する方法が正確にはわかりません#insert-table-features-response。私にそれを説明できる人がここにいますか?

編集:別の言い方をすれば、以下に示すリクエストを JavaScript で行うにはどうすればよいですか?

POST https://www.googleapis.com/mapsengine/v1/tables/{YOUR_TABLE_KEY}/features/batchPatch?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer {. . .}
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "features": [
  {
   "geometry": {
    "type": "Point",
    "coordinates": [
     -82,
     35
    ]
   },
   "properties": {
    "Lat": 35,
    "Long": -82,
    "Name": "6:41:13 AM 11/27/14",
    "gx_id": "123ABC456DEF7890"
   }
  }
 ]
}
4

2 に答える 2

2

これを jpatokal の回答に対するコメントに絞り込もうとするのではなく、回答に入れます。

彼らが言ったように、.batchPatchではなくリクエストを使用する必要がありますbatchInsert。こちらのドキュメントをご覧ください: https://developers.google.com/maps-engine/documentation/reference/v1/tables/features/batchPatch

ドキュメントで提供されている JS を使用している場合、リンク先のページのコードには次の関数が含まれています。

function insertTableFeatures(tableId) {
  doRequest({
    path: '/mapsengine/v1/tables/' + tableId + '/features/batchInsert',
    method: 'POST',
    body: {
      features: cities
    },
    processResponse: function(response) {
      $('#insert-table-features-response').text(
          JSON.stringify(response, null, 2));
    },
    processErrorResponse: function(response) {
      $('#insert-table-features-response').text('Error response:\n\n' +
          JSON.stringify(response, null, 2));
    }
  });
}

pathをからに変更し、 を更新する必要がbatchInsertありbatchPatchますbody: { ... }。次のように、指定した HTTP リクエストの本文に置き換えることができます。

function updateTableFeatures(tableId) {
  doRequest({
    path: '/mapsengine/v1/tables/' + tableId + '/features/batchPatch',
    method: 'POST',
    body: {
     "features": [
      {
       "geometry": {
        "type": "Point",
        "coordinates": [
         -82,
         35
        ]
       },
       "properties": {
        "Lat": 35,
        "Long": -82,
        "Name": "6:41:13 AM 11/27/14",
        "gx_id": "123ABC456DEF7890"
       }
      }
     ]
    },
    processResponse: function(response) {
      // You'll probably want to change these too
      $('#insert-table-features-response').text(
          JSON.stringify(response, null, 2));
    },
    processErrorResponse: function(response) {
      // You'll probably want to change these too
      $('#insert-table-features-response').text('Error response:\n\n' +
          JSON.stringify(response, null, 2));
    }
  });
}
于 2014-11-30T22:19:50.737 に答える
1

batchInsert、その名の通り、新しい機能のみを挿入します。batchPatch代わりに試してください。

于 2014-11-28T05:04:12.030 に答える