2011-07-28 60 views
0

我確定我正在處理一個相當普遍的問題,這個問題之前已經解決了很多次。谷歌地圖 - 地理編碼100地址和校準視口?

我的web應用程序從另一個服務中請求大約100行分隔的建築物地址。我現在必須將所有這些作爲gmapkers在谷歌地圖上繪製(使用api版本3)。我還必須校準視圖端口以顯示所有的標記,即確定地圖中心和適當的縮放值。

,我發現,谷歌地圖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

每次頁面加載時執行100次地理編碼都需要幾十秒鐘,所以我建議提前進行地理編碼。

如果地址總是相同或很少更改,則可以使用地理編碼服務(http://code.google.com/apis/maps/documentation/javascript/services.html)預先對其進行地理編碼,只要它們僅在地圖API地圖上顯示,就會暫時將結果經緯度/長度存儲在您的服務器上。

暫時意味着您必須定期更新這些緯度/經度(例如,每30天一次)。

(詳見10.1.3b:http://code.google.com/apis/maps/terms.html