繁体   English   中英

使用Google Maps API v3添加多个标记

[英]Add multiple markers with Google Maps API v3

我有以下功能来添加一个标记,但我想通过点击地图添加多个标记。 我用谷歌搜索但我无法得到任何关于如何解决这个问题的直接答案。

function placeMarker(location) {
    if(marker) {
        marker.setPosition(location);
    } else {
        marker = new google.maps.Marker({
            position: location,
            map: gm_map,
            draggable: true
        });
    }
}

我知道我需要使用Array()但我不确切知道如何。 我怎样才能解决我的问题?

DEMO :删除因为问题已经解决了。

你需要在placeMarker函数之外使用marker变量吗? 您的功能不是删除标记,而是检查标记变量是否存在并使用setPosition函数移动标记。 如果要存在多个标记,则需要删除该行。

function placeMarker(location) {
   //marker variable will only exist inside this function
   var marker = new google.maps.Marker({
       position: location,
       map: gm_map,
       draggable: true
   });        
}

这是一个例子: http//jsfiddle.net/bryan_weaver/aEyfW/

好的,您需要在地图上为“click”事件提供事件监听器。 这需要将当前单击的位置传递给您的placeMarker函数。 试试这个(在初始化地图的同一个地方添加此事件监听器)

google.maps.event.addListener(gm_map, 'click', function(event) {
      placeMarker(event.latLng);
});

并修改您的placeMarker函数,因此您不必每次单击都更新一个全局变量标记,而是每次都创建一个新标记:

function placeMarker(location) {
    var marker = new google.maps.Marker({
            position: location,
            map: gm_map,
            draggable: true
        });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM