在谷歌地图上的活动上删除标记

时间:2014-01-22 21:08:06

标签: javascript api google-maps google-maps-api-3

我正试图让我隐藏的标记直到点击地图。

如果我删除了监听器,那么标记应该在哪里,并且一切正常,当我添加标记时,标记将永久消失。

我查看了谷歌api和几个网站(包括这个),我的室友甚至看了一眼,我似乎无法让它工作。

我的理解是,在这种情况下,“点击”是谷歌特定的事情,因为浏览器处理这样的事件略有不同,所以也许听众是问题。

非常感谢任何帮助。

var myCenter=new google.maps.LatLng(55.680313, 12.548468);

function initialize()
{
var mapProp = {

     center:myCenter,
     zoom:15,
     mapTypeId:google.maps.MapTypeId.ROADMAP
     };

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

google.maps.event.addListener(map, 'rightclick', function(event) {

     var marker=new google.maps.Marker({

          position:myCenter,
          animation:google.maps.Animation.DROP

          });
});

marker.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);

2 个答案:

答案 0 :(得分:1)

我收到了一个javascript错误:

Uncaught ReferenceError: marker is not defined 

在这一行:

marker.setMap(map);

变化:

google.maps.event.addListener(map, 'rightclick', function(event) {
     var marker=new google.maps.Marker({

          position:myCenter,
          animation:google.maps.Animation.DROP

          });
});

marker.setMap(map);

要:

google.maps.event.addListener(map, 'rightclick', function(event) {
     var marker=new google.maps.Marker({
          position:myCenter,
          animation:google.maps.Animation.DROP
          });
     marker.setMap(map);
});

或者:

google.maps.event.addListener(map, 'rightclick', function(event) {
     var marker=new google.maps.Marker({
          map: map,  
          position:myCenter,
          animation:google.maps.Animation.DROP
          });
});

working example

答案 1 :(得分:0)

为什么不将事件绑定到地图容器?

document.getElementById("googleMap").onmousedown = function(e) {
    if ((e.which && e.which == 3) || (e.button && e.button == 2)) {
        var marker=new google.maps.Marker({
            position:myCenter,
            animation:google.maps.Animation.DROP
        });
        document.getElementById("googleMap").onmousedown = undefined;
    }
}

我们将onclick设置为undefined,以便在首次点击后停用创建标记。

UPD:抱歉。注意,您想要绑定右键单击。更新了代码。