google-maps - Google Maps Api - 使用鼠标点击删除标记

标签 google-maps google-maps-api-3 marker

我在点击鼠标删除标记时遇到了问题。好吧,事情并不像看起来那么简单。

function addPoint(event) {
path.insertAt(path.length, event.latLng);

var marker = new google.maps.Marker({
  position: event.latLng,
  map: map
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
  marker.setMap(null);
  markers.splice(i, 1);
  }
);

如果我使用该代码,在创建标记时立即添加监听器,删除它会很容易,因为我引用了 marker.setMap(null);。但就我而言,我希望创建它们,然后我想使用

向它们添加事件监听器
function usun(){
for (var i=0; i<markersArray.length; i++){
    google.maps.event.addListener(marker, 'click', function() {
        alert('lol');
    });
}

我将每个标记推送到 markersArray,这让我现在可以为每个标记添加事件,但我该如何删除它?当我用 marker.setMap(null); 代替警报时,它说标记未定义,我不知道如何引用我刚刚单击的标记:S 也不能将标记用作全局变量,因为我收到 Uncaught TypeError: Cannot read property '__e3_' of undefined 错误。

编辑: 如果我尝试使用

function usun(){
for (var i=0; i<markersArray.length; i++){
    google.maps.event.addListener(markersArray[i], 'click', function() {
        markersArray[i].setMap(null);
    });
}

} 我收到错误 Uncaught TypeError: Cannot call method 'setMap' of undefined。这就是为什么我确定我需要使用“标记”。

最佳答案

在您的 for 循环中,您没有引用数组中的标记。

试试这个:

function usun(){
for (var i=0; i < markersArray.length; i++){

    google.maps.event.addListener(markersArray[i], 'click', function() {
        this.setMap(null);
    });

}

工作示例:http://jsfiddle.net/52nJc/1/

关于google-maps - Google Maps Api - 使用鼠标点击删除标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504017/

相关文章:

javascript - "Uncaught TypeError: this.setValues is not a function"使用 Google map API v3

google-maps-api-3 - 我的代码可以获取 Google map API 版本号吗?

python - 如何调整散点图的标记大小,使其与给定的半径相匹配? (使用 matplotlib 转换)

javascript - Google Places JavaScript 自动完成 : can I remove the country from the place name?

php - 为什么这个 php 不能与谷歌地图一起使用?

javascript - 谷歌地图 : set StyledMapType with Terrain

javascript - 有什么简单的方法可以清理 Google Maps v3 API 上的所有标记、折线和其他叠加层吗?

android - 在 ImageView 不工作的情况下映射自定义标记

javascript - 使用 mvc 模型在 Google Maps API v3 上显示标记

javascript - 一次一个标记动画 Google Maps Api 3