如何从谷歌地图中删除单个标记

6

我正在处理Google地图相关问题,尝试在地图上添加标记并且随后移除它们,以下是我使用的代码:

    <html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
<title>MapsApi</title>

<style>
      #map_canvas {
        width: 100%;
        height: 500px;
        background-color: #CCC;
      }

      #menu_bar{
        width: 100%;
        height: 150px;
        position:absolute;
        bottom:0px;
        background-color: #CCC;
        border-top:1px solid red;
      }
      body{
        padding:0px;
        margin:0px;

      }
</style>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var markers = [];
 function initialize() {
  var myLatlng = new google.maps.LatLng(44.5403, -78.5463);
  var mapOptions = {
    zoom: 4,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    google.maps.event.addListener(map, 'click', function(event) {
        addMarker(event.latLng);
      });


    // add marker to positon
    function addMarker(location) {
         var marker = new google.maps.Marker({
                position: location,
                map: map
            });
    google.maps.event.addListener(marker, 'click', function(event) {
        this.setMap(null);
        });

         markers.push(marker);
    }

    // Sets the map on all markers in the array.
        function setAllMap(map) {
          for (var i = 0; i < markers.length; i++) {
            markers[i].setMap(map);


          }
        }




}

google.maps.event.addDomListener(window, 'load', initialize);

</script>


</head>

<body>
<div id="map_canvas"></div>
<div id="menu_bar">
</div>



</body>
</html>

但是现在有一个问题,我应该如何设置markers.push(marker)的值,因为我已经删除了一个标记,所以它的值必须小于其预期存储的值.. 有人可以帮忙吗?


http://stackoverflow.com/questions/18483726/how-to-remove-single-marker-google-maps-api-v3/31406733#31406733 - Amit Arya
1个回答

19

更简单的答案是不要从markers数组中删除标记。你所需要做的就是找出你想从地图上删除的标记,然后使用setMap(null)

markers[indexOfMarker].setMap(null);

如果您希望在某个时刻添加标记,请使用以下方法:

markers[indexOfMarker].setMap(map);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接