2011-06-16 113 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();