2011-07-22 70 views
0

點是從JSON文件中指出的標記,但如果目前的JSON,不要有任何的LAT和液化天然氣應該計算它,但它不工作谷歌地圖的問題與地理編碼

//For example when 
item.county = 'Orust' 
//and 
item.region = 'Bohuslän' 

爲什麼就是它?

if(lat == null) 
      { 
       geocoder.geocode({ 'address': item.county+', '+item.region}, function(result, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
        if(result[0]) 
        { 
         latlng = result[0].geometry.location 
        } 
       } 
       }); 

我錯過了什麼嗎?

回答

0

首先檢查回調中是否按預期工作。要做到這一點,改變這種:

latlng = result[0].geometry.location; 

要這樣:

console.log(result[0].geometry.location); 

(您也可以只添加了console.loglatlng分配上面,而不是改變它其實,這可能是更好的。)

如果在JavaScript控制檯中產生的消息看起來像一個latlng對象,那麼問題可能是範圍問題 - 換句話說,latlng以外的回調與latlng不一樣回調方。

如果JavaScript控制檯中產生的消息看起來不像latlng對象,那麼問題出在回調本身內部。請你把最後console.log()上面看到,如果你是把這個得到任何結果都:

console.log(result); 

如果這些console.log命令永遠不會觸發,並沒有出現在你的JavaScript控制檯,則狀態從geocoder.geocoder()返回不是OK,您需要在回調中添加一些錯誤處理以查看發生了什麼。

0

請求地理編碼器異步運行。您無法訪問從外部代碼回撥內部分配的vriable。其實你可以,但它會是未定義的。