Javascript 点击标记时获取地址-谷歌地图

Javascript 点击标记时获取地址-谷歌地图,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我需要一些帮助。 我从数据库中加载了一些点,并将它们作为标记显示在谷歌地图上。 我的代码: function DisplayTraficCir(points) { for (i=0;i<points.length;i++){ var myLatLng = new google.maps.LatLng(points[i].latitude,points[i].longitude) var marker = new google.maps.Marker({ po

我需要一些帮助。
我从数据库中加载了一些点,并将它们作为标记显示在谷歌地图上。
我的代码:

function DisplayTraficCir(points) {
  for (i=0;i<points.length;i++){
    var myLatLng = new google.maps.LatLng(points[i].latitude,points[i].longitude)
    var marker = new google.maps.Marker({
      position: myLatLng,
      map: map
    });
  }
}
功能显示交通流量(点){

对于(i=0;i使用
google.maps.event.addListener
方法:

function DisplayTraficCir(points) {
  for (i=0;i<points.length;i++){
    var myLatLng = new google.maps.LatLng(points[i].latitude,points[i].longitude)
    var marker = new google.maps.Marker({
      position: myLatLng,
      map: map
    });
    google.maps.event.addListener(marker, 'click', function () {
        var lng = points[i].longitue,
            lat = points[i].latitude;
        alert( lat + "-" + lng );
    });
  }
}
功能显示交通流量(点){

对于(i=0;i虽然拉扎克的方法可行,但我想提出一个替代方案:

function DisplayTraficCir( points ) {
    for( var i = 0;  i < points.length;  i++ ) {
        DisplayTraficPoint( points[i] );
    }
}

function DisplayTraficPoint( point ) {
    var myLatLng = new google.maps.LatLng( point.latitude, point.longitude );
    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map
    });
    google.maps.event.addListener( marker, 'click', function() {
        alert( point.latitude + "-" + point.longitude );
    });
}
功能显示交通流量(点){
对于(变量i=0;i
通过简单地将循环体移动到自己的函数中,代码现在可以在每次调用函数时唯一地捕获该函数中的变量。也就是说,
变量指的是特定的
点[i]
调用它时使用的值。类似地,
myLatLng
marker
对于每次调用此函数都是唯一的

这为您提供了一种非常灵活和强大的方法来跟踪可能与标记关联的任何其他数据:只需将该数据设置为
DisplayTraficPoint()

中的局部变量,单击标记时只需调用GraphadAddress()函数

function graphAddress(){
    geocoder.geocode({'latLng': marker_wizard.getPosition()}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                    if (results[0]) {
                            var address = results[0].formatted_address.split(",");
                            var country = address[address.length -1];       
                            var cityname = address[address.length -3];                      
                            var state_zipcode = address[address.length -2].split(" ");
                            var state   = state_zipcode[1];
                            var zipcode = state_zipcode[2];
                            address = address.splice(0,(address.length -3));
                      }
                }
        });
} //graphAddress
注意:
marker\u向导是marker的变量名。

但是,当单击地图中的任何标记时,警报都是相同的。它的值是最后一点的lat和lng。好的。我完成了。只需将“google.maps.event.addListener”方法放入函数中,并在“for”语句中调用它。感谢您的帮助!如果您想使用
marke.getPosition()
方法在for循环中使用
this.getPosition()
相反,它将在每次单击时选择相关标记,我更新了我的演示并检查它以了解更多详细信息。我得到了它,您节省了我的时间。谢谢。