簡體   English   中英

地理編碼器的谷歌地圖問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM