获取标记的经度和纬度(onclick)

Mac*_*Mac 14 events google-maps-api-3

如何创建标记的监听器并获取其经度和纬度.当我为点击事件的每个标记创建一个监听器时,我可以对点击进行类似警报的操作,但是如何在点击时获得标记的坐标click -> this.getLat/getLng等等?

Bry*_*ver 29

试试这个:

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
Run Code Online (Sandbox Code Playgroud)

  • `this.position`被记录为`this`指的是此上下文中的`Marker`对象.`position`是标记上的属性.你也可以使用'event'对象,在这种情况下你必须使用'latLng'属性,但是记住返回的`latLng`将是光标在点击时的位置,而不是标记位置.根据您希望的精度水平,这些差异很重要. (2认同)

ton*_*gil 23

作为Bryan Weaver的优秀答案的后续,如果你想分别保存纬度和经度,你必须使用lat()和lng().position属性不是常规字符串.

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
Run Code Online (Sandbox Code Playgroud)

你可以直接在变量(latLng)上应用lat()和lng()

    var latitude = latLng.lat();
    var longitude = latLng.lng();
Run Code Online (Sandbox Code Playgroud)