在Fusion Tables中搜索并缩放至结果 [英] Search in Fusion Tables and Zoom to results
问题描述
大家好,这是我的情况: http://www.tamrielma.ps/skyrim/
Hi all here's my situation: http://www.tamrielma.ps/skyrim/
我已经根据这个众所周知的示例添加了一个搜索: https://developers.google.com/fusiontables/docs/samples/autocomplete
但这还不够:D和我希望地图放大和中心基于搜索结果(这是一个单一的标记不是一组,所以我想这不是一个绑定相关的解决方案)。
I've added a search based on this well know example: https://developers.google.com/fusiontables/docs/samples/autocomplete But it's not enough :D and I want that the map zooms and centers on the basis of the search results (that's a single markers not a group of, so I imagine that's not a "bound related" solution).
感谢任何建议
推荐答案
有趣的地图。 :-)我发现你已经在使用Google.visualization库进行autocomplete设置。我认为可以使用相同的库(使用FT JSONP API我相信)通过回调获取位置值,类似于getData()回调。
Eg
Interesting map. :-) I see you are already using the Google.visualization library for your autocompplete set up. I think that the same library (which uses FT JSONP API I believe) could be used to get the location values via a a callback, similar to your getData() callback. E.g.
function changeQuery(value) {
value = value.replace("'", "\\'");
layerMarkers.setQuery("SELECT Location FROM "+ fusione +" WHERE Name = '" + value + "'");
// ADDED, using same query as above
var queryText = encodeURIComponent( "SELECT Location FROM "+ fusione +" WHERE Name = '" + value + "'");
var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=' + queryText);
query.send(getLocationData);
}
// location may need parsing into LatLng object
function getLocationData(response) {
numRows = response.getDataTable().getNumberOfRows();
if(numRows == 1){
var loc_str = response.getDataTable().getValue(0, 0));
var tmp = loc_str.split(" ");
var lat = parseFloat(tmp[0]);
var lng = parseFloat(tmp[1]);
var zoom_level = 10;
var location = new google.maps.LatLng(lat,lng);
map.setCenter(location);
map.setZoom(zoom_level);
}
}
这篇关于在Fusion Tables中搜索并缩放至结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!