Google地图上的标记只添加一次

时间:2010-03-24 19:34:52

标签: javascript google-maps

每次点击地图时,地图上都会放置一个新标记。问题是我只需要一个标记,如果我点击几次,每次添加一个新标记。

如何更改代码以便只放置一个标记,再次单击地图会更改其位置?

到目前为止,这是我的代码:

function clicked(overlay, latlng) {
  var icon3 = new GIcon();
  icon3.image = "marker.png";  
  icon3.iconAnchor = new GPoint(15, 40);

  var marker2 = new GMarker(latlng, {  icon: icon3, draggable: true,   title: 'Drag me'  });
   map.addOverlay(marker2);

}

3 个答案:

答案 0 :(得分:1)

我建议在marker2函数之外保留clicked的实例,如果marker2为null,请像现在一样制作并添加一个新实例,否则调用marker2.setLatLong(latlng);来更新它的位置。

未经测试的示例代码:

var marker2;

function clicked(overlay, latlng) {
  if (marker2 == null) {
    var icon3 = new GIcon();
    icon3.image = "marker.png";  
    icon3.iconAnchor = new GPoint(15, 40);

    marker2 = new GMarker(latlng, {  icon: icon3, draggable: true,   title: 'Drag me'  });
    map.addOverlay(marker2);
  }
  else {
    marker2.setLatLong(latlng);
  }
}

答案 1 :(得分:0)

您需要执行某种检查以查看是否已放置标记。一种选择是保留已添加的标记列表,并在调用函数将标记添加到地图之前检查特定点处标记的列表。如果您需要代码示例,请与我们联系。

答案 2 :(得分:0)

好吧,不要打扰,我自己想通了。我刚刚使用了map.clearOverlays();在标记被放置之前,这解决了问题。