Определенно возможно делать то, что вы хотите сделать, но это не так просто.В этом примере местоположение для панорамирования вычисляется с помощью Google Geocoding API с использованием адреса.Но у вас на самом деле нет адреса (т.е. содержания locationColumn
) в вашем коде JavaScript.Это зависит от того, какую информацию вы храните в locationColumn
, я полагаю, что это какой-то адрес, который можно геокодировать.
Поэтому вы должны отправить оператор выбора непосредственно в Fusion Tables.Google Fusion Tables имеет интерфейс JSONP, который вы можете использовать для этой цели.
var gftUrl = 'http://www.google.com/fusiontables/api/query?';
var jsonUrlTail = '&jsonCallback=?';
var query = 'select ' + locationColumn + ' from ' + tableid + ' where ' + where;
var params = "sql=" + encodeURI(query + jsonUrlTail);
var myCallback = function(data,status) {
if(status !== 'success') {
window.alert('Call to Google Fusion Tables failed: ' + status);
return;
}
var address = data.table.rows[0][0];
/* start code from google example */
geocoder.geocode({
address: address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.setZoom(10);
// OPTIONAL: run spatial query to find results within bounds.
var sw = map.getBounds().getSouthWest();
var ne = map.getBounds().getNorthEast();
var where = 'ST_INTERSECTS(' + locationColumn +
', RECTANGLE(LATLNG' + sw + ', LATLNG' + ne + '))';
layer.setOptions({
query: {
select: locationColumn,
from: tableId,
where: where
}
});
} else {
window.alert('Address could not be geocoded: ' + status);
}
});
/* end code from google example */
}
var jqxhr = $.post(gftUrl, params, myCallback, "jsonp"); /* jsonp parameter is very important */
В этом примере я использую jQuery для функции $.post
.