2013-04-29 48 views
0

我有一个带搜索框的样本融合表格地图图层。我想用这个盒子在融合表中搜寻一个特定的位置并放大到那个点。在serach框中的自动完成工作正常,但对特定点的缩放不起作用。有没有其他方法可以解决它?我的融合表link is here搜索和缩放融合表格地图到特定点

+0

通过我的地图代码[这里摆弄]的方式(http://jsfiddle.net/ppsSH/) – mpsbhat 2013-04-29 13:21:37

+0

可能的[搜索中的重复Fusion Tables和缩放到结果](http://stackoverflow.com/questions/10206033/search-infusion-tables-and-zoom-to-results) – geocodezip 2013-04-29 13:24:03

回答

0

您需要了解FusionTable中数据的格式。您正在使用geoxml3来解析它,就好像它是KML一样,但它是一个两列位置(经度/纬度)。对于这种格式,查询这两列,并使用结果中心和缩放地图(你不需要geoxml3)。

  if(searchString == "") { 
       var query="SELECT 'Lat','Long' FROM " + tableid; 
      } 
      else { 
       var query="SELECT 'Lat','Long' FROM " + tableid + " WHERE 'Station Name' = '" + searchString + "'"; 
      } 
      zoom2query(query); 

和:

 function zoomTo(response) { 
      if (!response) { 
       alert('no response'); 
       return; 
      } 
      if (response.isError()) { 
       alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
       return; 
      } 
      var lat = response.getDataTable().getValue(0,0); 
      var lng = response.getDataTable().getValue(0,1); 
      var zoom_level = 15; 
      var location = new google.maps.LatLng(lat,lng); 
      map.setCenter(location); 
      map.setZoom(zoom_level); 
     } 

working example

+0

我从我的代码中删除了geoxml3解析器并更新了[fiddle ](http://jsfiddle.net/ppsSH/1/)。但是我为查询两列位置而苦苦挣扎。我可以得到一些示例代码吗? – mpsbhat 2013-04-29 14:19:40

+0

谢谢你的样本......! – mpsbhat 2013-04-29 14:37:01