在创建新标记之前删除最后一个标记

时间:2015-01-16 09:58:03

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

我想用简单的功能创建一个Map。每次点击时,都会移除现有的标记,并在点击位置出现一个新的标记。

创建新的工作正常,但删除它们并不起作用。这是代码,我试过了:

var map;
var latitude, longitude;
var marker;

function placeMarker(location) {

    marker.setMap(null);

    marker = new google.maps.Marker({
          map: map,
          position: location,
    });
    latitude = location.lat();
    longitude = locaton.lng();

    document.getElementById('koordinaten').innerHTML = '<p>' + latitude + '</p>';

}

好的,注释marker.setMap(null);我可以添加尽可能多的标记,但我想在地图上只有一个标记。

您能帮我,如何移除标记并放置一个新标记?

谢谢

1 个答案:

答案 0 :(得分:0)

第一次运行此功能时,第一行会导致错误,因为标记仍为undefined(没有setMap - 方法)。

你可能会遇到这种情况并绕过第一行:

if(typeof marker!=='undefined'){
   marker.setMap(null);
}

但更好的方法是始终使用相同的标记并应用新位置:

function placeMarker(location) {

    //when marker is undefined, create a marker
    if(typeof marker==='undefined'){
      marker = new google.maps.Marker({
                  map: map
              });
    }
    //set the position
    marker.setPosition(location);


    latitude = location.lat();
    longitude = locaton.lng();

    document.getElementById('koordinaten').innerHTML 
       = '<p>' + latitude + '</p>';

}