2011-06-16 86 views
14

如何創建標記的偵聽器並獲取其經度和緯度。當我爲點擊事件的每個標記創建一個監聽器時,我可以在點擊時做類似警告的事情,但是如何在點擊時獲得標記的座標,例如click -> this.getLat/getLng等?獲取標記的經緯度(onclick)

回答

27

試試這個:

marker = new google.maps.Marker({ 
      position: latlng, 
      map: map      
}); //end marker 

//Add listener 
google.maps.event.addListener(marker, "click", function (event) { 
        alert(this.position); 
}); //end addListener 
+1

this.position是未公開的,你應該使用'事件對象''用'lat()'和'lng()'函數獲取'event.latLng'。好多了。 – 2013-09-30 06:35:50

+2

'this.position'記錄爲'this'指的是在這種情況下的'Marker'對象。 'position'是標記上的一個屬性。您也可以使用'event'對象,在這種情況下,您必須使用'latLng'屬性,但記住'latLng'返回的是光標在點擊時的位置,而不是標記位置。根據你想要的精度水平,這些差異很重要。 – 2013-10-01 13:03:52

+0

它的maps.addListener(...)與谷歌地圖api v3 – Heraclitus 2017-02-11 23:53:16

21

作爲後續布萊恩韋弗的出色答卷,如果要單獨保存的經度和緯度,你必須使用LAT()和LNG()。位置屬性不是常規字符串。

Bryan的代碼將變爲:

marker = new google.maps.Marker({ 
      position: latlng, 
      map: map      
}); //end marker 

//Add listener 
google.maps.event.addListener(marker, "click", function (event) { 
    var latitude = this.position.lat(); 
    var longitude = this.position.lng(); 
    alert(this.position); 
}); //end addListener 

可以應用LAT()和液化天然氣(直接)上的變量(的latLng)

var latitude = latLng.lat(); 
    var longitude = latLng.lng();