【问题标题】:Search in Fusion Tables and Zoom to results在 Fusion Tables 中搜索并缩放至结果
【发布时间】:2012-04-18 08:55:27
【问题描述】:

大家好,这是我的情况:http://www.tamrielma.ps/skyrim/

我添加了一个基于这个众所周知的示例的搜索:https://developers.google.com/fusiontables/docs/samples/autocomplete 但这还不够:D,我希望地图根据搜索结果缩放和居中(这是单个标记而不是一组标记,所以我想这不是“绑定相关”解决方案)。

提前感谢您的任何建议

【问题讨论】:

    标签: google-maps-api-3 google-fusion-tables


    【解决方案1】:

    有趣的地图。 :-) 我看到您已经在使用 Google.visualization 库进行自动完成设置。我认为同一个库(我相信它使用 FT JSONP API)可用于通过回调获取位置值,类似于您的 getData() 回调。 例如

    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);
        }
    
    }
    

    【讨论】:

    • 我怎样才能通过 lat long 来映射?我的意思是,我必须从搜索按钮启动 getLocationData?抱歉,我不是很熟练...
    • 好的。我编辑了我的答案。您的“情况”页面看起来相当熟练。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多