2013-10-16 115 views
1

首先,我不擅長編程,只是初學者,所以請記住任何迴應。 我的問題是使用Google Maps v3進行反向地理編碼。我在互聯網上發現了很多例子,並且已經掌握了我的地圖工作的基礎知識,但是反向地理編碼部分讓我感到沮喪,因爲我無法使其工作。我繼續收到「object HTMLDivElement」的錯誤。那我有麻煩的代碼的部分是:反向地理編碼 - 谷歌地圖v3

var geocoder = new google.maps.Geocoder(); 

    var point = new google.maps.LatLng(38.41054600530499, -112.85153749999995); 
    geocoder.geocode({ 'latLng': point }, function (results, status) { 
    if (status !== google.maps.GeocoderStatus.OK) { 
     alert(status); 
    } 
    // This is checking to see if the Geoeode Status is OK before proceeding 
    if (status == google.maps.GeocoderStatus.OK) { 
     console.log(results); 
     var address = (results[0].formatted_address); 
    }} 
    ) 
    var marker = createMarker(point,"Marker 1", point + "<br> Closest Matching Address:" + address) 

的地圖仍然加載,但該信息框上寫着「38.41065600530499,-112.8515374999995;最匹配的地址:」對象HTMLDivElement「]

所以它是什麼,我需要改變嗎?我敢肯定,上面列出的代碼有什麼不對的地方,但到底是什麼?

感謝任何及所有的幫助。

+0

嘗試console.log(ing)地址對象,看看它包含什麼? – Cillier

回答

4

地址解析器是異步的。你必須在IE中進行測試,並使用ID創建一個div = 「地址」。

var geocoder = new google.maps.Geocoder(); 

    var point = new google.maps.LatLng(38.41054600530499, -112.85153749999995); 
    geocoder.geocode({ 'latLng': point }, function (results, status) { 
    if (status !== google.maps.GeocoderStatus.OK) { 
     alert(status); 
    } 
    // This is checking to see if the Geoeode Status is OK before proceeding 
    if (status == google.maps.GeocoderStatus.OK) { 
     console.log(results); 
     var address = (results[0].formatted_address); 
     // create the Marker where the address variable is valid 
     var marker = createMarker(point,"Marker 1", point + "<br> Closest Matching Address:" + address) 
    } 
    }); 
+0

工作,但與其餘的代碼混亂(發佈剩餘的代碼供參考)。 – steven

+0

你能更具體一點嗎? 「與其他代碼混淆」是什麼意思?它造成了什麼問題?也許一個複製問題的小提琴也可能有幫助。 – geocodezip

+0

對不起,不夠具體。我的意思是說,我在地圖上的第二點沒有顯示出來。感謝您的示例,我能夠修復代碼並將所有標記放在正確的區域中。所以現在我的地圖工作正常。非常感謝你的幫助:) – steven