2010-02-19 88 views
2

我讀過你可以使用谷歌地圖API或JavaScript或PHP。那麼他們每個人的優點和缺點是什麼?通過JavaScript或PHP使用Google maps API?

如果我得到的數據庫中存儲的地理編碼。我應該讓他們與Ajax和處理他們與JavaScript或我應該使用PHP?

它在常見問題解答中說,每個ip每天允許15000個請求。這是否意味着每個用戶必須運行15000個請求,如果即時通訊使用JavaScript?聽起來很多。但如果即時通訊使用PHP,而不是從服務器的IP,因此所有用戶15000?

會很棒,如果有人能夠闡明這個話題。

回答

4

Google Maps API是一個JavaScript庫。然而,Google通過JavaScript提供了client-side API的地理編碼服務,並通過server-side web service

這是一個關於如何使用JavaScript的地理編碼器的例子:

function initialize() { 
    if (GBrowserIsCompatible()) { 
    map = new GMap2(document.getElementById("map_canvas")); 

    geocoder = new GClientGeocoder(); 

    geocoder.getLatLng(
     "London, UK", 
     function(point) { 
     if (point) { 
      map.setCenter(point, 13); 
      var marker = new GMarker(point); 
      map.addOverlay(marker); 
     } 
     } 
    ); 
    } 
} 

下面是展示如何使用PHP來獲得服務器端的地址的緯度和經度的例子:

$url = 'http://maps.google.com/maps/geo?q=London,+UK&output=csv&sensor=false'; 

$data = @file_get_contents($url); 

$result = explode(",", $data); 

echo $result[0]; // status code 
echo $result[1]; // accuracy 
echo $result[2]; // latitude 
echo $result[3]; // longitude 

您正確理解了免費的地理編碼配額。服務器端地理編碼限於每臺服務器每天15k個請求,而客戶端地理編碼僅限於每臺客戶端每天15k個請求。您需要Google Maps API Premier來增加這些限制。

+0

所以它更好地要求JavaScript的原因那麼它將是每個用戶15000? – ajsie 2010-02-19 18:26:54

+0

有時您可能需要在服務器上進行地理編碼,例如,如果您的服務器正在從跟蹤設備接收GPS座標。但是如果你可以使用JavaScript,你的限制要大得多。 – 2010-02-19 19:37:08

2

我覺得你很困惑。您可以使用PHP與API的唯一部分是地理編碼API - http://code.google.com/apis/maps/documentation/geocoding/index.html

假設你是問你是否應該使用JavaScript或PHP之類的服務器端語言做地理編碼,最好的做法是緩存任何地理編碼您可以轉化爲某種持久性層次(xml/db/whatever),並最大限度地減少客戶端地理編碼請求的數量(因爲它會引入延遲)