我正在尝试在Google融合地图中创建从文本到标记的链接。更准确地说,我希望地图能够刷新和缩放所选的位置。
图片更容易理解: http://projeteurope.free.fr/ 例如,如果单击页面右侧的“Akrame”,地图应放大点(融合表中已存在,并且是19 Rue Lauriston,75016 Paris)
我看了不同的主题和网站,但我不明白该怎么做(我是javascript的初学者) Fusion Table + Google Maps 或http://alamatku.com/cari?query=UPS&area=jakarta 或Google Fusion Tables With Maps - Link Table field to Map Info Window
我只是希望地图可以放大特定的市场,而不是仅使用标记来创建新图层。
非常感谢你有任何线索! 罗宾
答案 0 :(得分:0)
您可以使用GViz (the google visualization library)查询融合表并缩放标记上的地图。
CODE:
function changeQuery(term) {
layer.setOptions({query:{select:'Latitude', /* was 'Latitude,Longitude', used to work... */
from:FT_TableID,
where:"Nom contains "+term
}
});
// zoom and center map on query results
//set the query using the parameter
var queryText = encodeURIComponent("SELECT 'Latitude', 'Longitude' FROM "+FT_TableID+" WHERE 'Nom' contains '"+term+"'");
var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=' + queryText);
//set the callback function
query.send(zoomTo);
}
function zoomTo(response) {
if (!response) {
alert('no response');
return;
}
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
FTresponse = response;
//for more information on the response object, see the documentation
//http://code.google.com/apis/visualization/documentation/reference.html#QueryResponse
numRows = response.getDataTable().getNumberOfRows();
numCols = response.getDataTable().getNumberOfColumns();
var bounds = new google.maps.LatLngBounds();
for(i = 0; i < numRows; i++) {
var point = new google.maps.LatLng(
parseFloat(response.getDataTable().getValue(i, 0)),
parseFloat(response.getDataTable().getValue(i, 1)));
bounds.extend(point);
}
// zoom to the bounds, if you have only one result,
// you may want to do a map.setCenter; map.setZoom to specify the behavior
map.fitBounds(bounds);
}