首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Maps API Marker

Google Maps API Marker
EN

Stack Overflow用户
提问于 2013-07-30 12:42:45
回答 1查看 178关注 0票数 0

我正在尝试添加一些标记,它们的位置(纬度和经度)是从数据库中获取的,我可以将它们添加到地图中,但是

代码语言:javascript
复制
google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

方法仅将事件侦听器添加到最后一个标记(数据库中的最后一个城市)...

如何为每个标记单独添加Listner?

这是我的完整代码..

=============================================================================

代码语言:javascript
复制
 result contains List<City>

    function OnSuccess(result) {
                if (result) {
                    for (var i = 0; i < result.length; i++) {
                    alert(result[i].lat);
                       var myCenter= new google.maps.LatLng(result[i].lat,result[i].log);
                        var marker=new google.maps.Marker({
      position:myCenter});

    var infowindow = new google.maps.InfoWindow({
        content: result[i].desc
    });

    google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(map,marker);
    });
    marker.setMap(map);

                    }

               }
            }
EN

回答 1

Stack Overflow用户

发布于 2013-07-30 16:02:02

你需要一个闭合。您正在做的是为您的每个标记重新定义单击处理函数。单击所有标记时,将执行此行:

代码语言:javascript
复制
infowindow.open(map,marker);

使用当时的'infowindow','map‘和’map‘的值。因为标记是在循环中创建的,所以它将始终引用最后一个标记。

此外,infowindow每次都会被重新定义。因此,内容将始终是您最后一个结果的内容。

这是我通常的做法。

代码语言:javascript
复制
// create this outside of your loop
var infowindow = new google.maps.InfoWindow({
    content: ""
});

for (var i = 0; i < result.length; i++) {
    var myCenter= new google.maps.LatLng(result[i].lat,result[i].log);
    var marker=new google.maps.Marker({
        position: myCenter,
        map:  map
    });

    bindInfoWindow(marker, map, infowindow, result[i].desc);  
}


function bindInfoWindow(marker, map, infowindow, html) { 
    google.maps.event.addListener(marker, 'click', function() { 
        infowindow.setContent(html); 
        infowindow.open(map, marker); 
    }); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17938466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档