使用javascript

时间:2018-01-19 20:02:42

标签: javascript google-maps

我有一张带有几个标记的地图,其位置来自firebase直到那一点,好吧。问题是当标记的可能性更新时,它会创建一个新标记,而不是删除旧标记。

我已经在网站上进行过研究,但没有人回答这个问题。 要么一次删除全部,要么只删除一个。

这就是我打开这个新问题的原因。马上谢谢你。

<?php

mysql_select_db($database_vpt2, $vpt2);
$query_onlines = "SELECT * FROM motoristas WHERE `online` = 1";
$onlines = mysql_query($query_onlines, $vpt2) or die(mysql_error());
$row_onlines = mysql_fetch_assoc($onlines);
$totalRows_onlines = mysql_num_rows($onlines);
?>   

<script type="text/javascript">

var markers = [];
function initMap() {

var myLatLng = {lat: -5.079166, lng: -42.812019};

        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 11,
          center: myLatLng
        });

<?php do { ?>  

var adaRef = firebase.database().ref("local/<?php echo $row_onlines['id_motorista']; ?>");

adaRef.on("value", function(snapshot) {

    var rodar = parseInt(snapshot.val() .giro);
    var lat1 = snapshot.val() .latitude; 
    var lng1 = snapshot.val() .longitude; 



    var myLatLng = {lat: lat1, lng: lng1};

      var image = '../icon/marker.png';         
      var marker = new google.maps.Marker({ 
          id: <?php echo $row_onlines['id_motorista']; ?>,
          position: myLatLng,
          map: map,
          title: 'OK',
          icon: image,
        });
        markers.push(marker);

});



<?php } while ($row_onlines = mysql_fetch_assoc($onlines)); ?>


}

</script>

1 个答案:

答案 0 :(得分:0)

您可以通过在数组中保留标记的引用来更新标记。然后更新它,如下所示。

var myNewLatlng = new google.maps.LatLng(-2.363882,131.044922);
marker.setPosition(myNewLatlng);

参考:https://developers.google.com/maps/documentation/javascript/3.exp/reference#Marker