GoogleMaps v3 API点击时只创建一个标记

rs8*_*2uk 29 google-maps google-maps-api-3

我在点击上成功创建了一个标记但是,使用下面的代码,每次点击都会得到一个新标记,我只想要添加一个标记,如果有人点击多次,我希望将现有标记移动到新标记位置任何人都可以帮助这里是代码

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

google.maps.event.addListener(map, 'click', function(event) {
        placeMarker(event.latLng);
Run Code Online (Sandbox Code Playgroud)

hsz*_*hsz 60

var marker;

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

google.maps.event.addListener(map, 'click', function(event) {
  placeMarker(event.latLng);
});
Run Code Online (Sandbox Code Playgroud)

您必须始终使用相同的标记 - 不要创建新的标记.这里有一个全局变量marker,在placeMarker函数中,您首次为此变量指定标记.下次它检查标记是否已存在然后只是改变它的位置.

  • 然后,如果你两次,它将不会更新标记的位置. (3认同)
  • 不需要。只需使用 addListenerOnce (2认同)