谷歌地图 - 地理编码100解决和校准视口?

时间:2011-07-28 19:10:33

标签: google-maps-api-3

我确信我正在处理一个已经多次解决的相当常见的问题。

我的网络应用程序从另一项服务请求大约100个以行划分的建筑物地址。我现在必须在google地图上绘制所有这些作为gmarkers(使用api版本3)。我还必须校准视口以显示所有gmarkers,即确定地图中心和相应的缩放值。

我从Google Maps API中找到了一些代码并进行了调整以绘制一点:

  function codeAddress() {
    var address = '1 Yonge Street, Toronto, ON'; 
    geocoder.geocode( { 'address': address}, geocodeCallBack);
  }

  function geocodeCallBack(results, status)
  {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }

  }

但是,我怀疑执行100次异步地理编码调用可能会很慢。有没有人建议达到我需要的最佳方法?

1 个答案:

答案 0 :(得分:1)

每次加载页面时执行100个地理编码需要几十秒,所以我建议提前进行地理编码。

如果地址始终相同或很少更改,您可以使用地理编码服务(http://code.google.com/apis/maps/documentation/javascript/services.html)提前对其进行地理编码将生成的Lat / Lng存储在您的服务器上,只要它们只显示在Maps API地图上

暂时意味着您必须定期更新这些Lat / Lng(例如每30天更新一次)。

(详见10.1.3b:http://code.google.com/apis/maps/terms.html