[英]Google Maps problem with Geocoder
重點是從 JSON 文件中指出標記,但是如果當前的 json 沒有任何 lat 和 lng 它應該計算它,但它不起作用
//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
}
}
});
我錯過了什么嗎?
首先檢查回調內部是否按預期工作。 為此,請更改:
latlng = result[0].geometry.location;
對此:
console.log(result[0].geometry.location);
(您也可以在latlng
分配上方添加console.log
而不是更改它。實際上,這可能更好。)
如果 JavaScript 控制台中的結果消息看起來像一個latlng
object,那么問題可能是latlng
latlng
回調不同。
如果 JavaScript 控制台中的結果消息看起來不像是latlng
object,那么問題出在回調本身。 通過將其放在上面最后一個console.log()
的位置來檢查是否得到任何結果:
console.log(result);
如果這些console.log
命令從未觸發,並且 JavaScript 控制台中沒有出現任何內容,則從 geocoder.geocoder geocoder.geocoder()
返回的狀態不OK
,您需要在回調中添加一些錯誤處理以查看發生了什么。
對地理編碼器的請求異步運行。 您無法從外部代碼訪問在回調內部分配的變量。 實際上你可以,但它是未定義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.