【问题标题】:loading new markers and delete old marker. [duplicating]加载新标记并删除旧标记。 [复制]
【发布时间】:2013-02-12 15:05:46
【问题描述】:

如何删除带有时间间隔的旧标记并自动将其替换为新标记。我正在使用谷歌地图创建一个真正的跟踪器。 `

var markersArray = [];

function initialize() {

 var myLatlng = new google.maps.LatLng(39, -86);
 var map = new google.maps.Map(document.getElementById('googleMap'), {
   zoom: 1,
   center: myLatlng,
   mapTypeId: google.maps.MapTypeId.ROADMAP
 });

$(function () {
    $(document).ready(function(){
        setInterval(function(){
                $.ajax({                                      
                url: 'real.php',                  //the script to call to get data          
                //data: "",                       
                dataType: 'json',                //data format      
                success: function(data){          //on recieve of reply                          


var locations = data;

var infowindow = new google.maps.InfoWindow();
var marker, i;
deleteOverlays();
for (i = 0; i < locations.length; i++) {  

  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });
 markersArray.push(marker);


  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}


                } 
            });
        }, 1000);

    });
 });
}
initialize();

如何删除已使用 clearOverlays 的标记,但地图中未显示任何标记。谢谢。

【问题讨论】:

标签: php ajax google-maps


【解决方案1】:

要移除一个标记,你需要将它的map设置为null:

for (var ii = 0; ii < markers.length; ii++) {
  markers[ii].setMap(null);
}

或者,根据您的情况,您可以只更新标记的位置:

marker.setPosition(newLatLng);

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2019-03-07
    • 2019-02-26
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多