Как обновить таблицу Google Map Engine?
У меня есть таблица в Google Maps Engine, которую я хотел бы динамически обновлять с помощью JavaScript на сайте Google. Я нашел эту страницу справки, которая объясняет, как добавлять функции в существующую таблицу, но я пытаюсь понять, как изменить код, чтобы он обновлял таблицу, а не добавлял ее. Я считаю, что мне нужно изменить processResponse
а также processErrorResponse
функции. Тем не менее, я довольно новичок в 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"
}
}
]
}
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));
}
});
}
batchInsert
, правда к названию, только вставляет новые функции. Пытаться batchPatch
вместо.