Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在谷歌地图上只允许一个标记_Javascript_Google Maps - Fatal编程技术网

Javascript 在谷歌地图上只允许一个标记

Javascript 在谷歌地图上只允许一个标记,javascript,google-maps,Javascript,Google Maps,我希望用户在页面上的谷歌地图上放置一个标记。如果用户再次单击,第一个标记将消失,并被新标记替换。我将如何做到这一点,从谷歌提供的代码开始: function myMap() { var mapCanvas = document.getElementById("map"); var mapOptions = { center: new google.maps.LatLng(51.7, 5), zoom: 6 }; va

我希望用户在页面上的谷歌地图上放置一个标记。如果用户再次单击,第一个标记将消失,并被新标记替换。我将如何做到这一点,从谷歌提供的代码开始:

function myMap() {
        var mapCanvas = document.getElementById("map");
        var mapOptions = {
        center: new google.maps.LatLng(51.7, 5), zoom: 6
        };
        var map = new google.maps.Map(mapCanvas, mapOptions);

        google.maps.event.addListener(map, 'click', function(event) {
            marker = new google.maps.Marker({
            position: event.latLng,
            map: map
            });
        });
我的第一次尝试是添加
marker.remove()
在addListener函数开始时,这对我不起作用


提前感谢您的帮助

我自己找到了答案。将AddListener替换为以下内容非常有效:


以下代码帮助您在用户单击时放置标记。如果用户再次单击,则删除先前的标记并标记新位置。我的回答旨在纠正你第一次尝试时的错误。试试这个

  var flag=0,marker;
  map.addListener('click', function(e) {
  if(flag)
    marker.setMap(null);
  else
    flag=1;
  marker = new google.maps.Marker({
    position: e.latLng,
    map: map});
  });
  var flag=0,marker;
  map.addListener('click', function(e) {
  if(flag)
    marker.setMap(null);
  else
    flag=1;
  marker = new google.maps.Marker({
    position: e.latLng,
    map: map});
  });