Как динамически обновить маркер карты Google без перезагрузки - PullRequest
0 голосов
/ 25 декабря 2018

Я получаю динамическую широту и долготу (map_lat, map_lon) из автомобиля, и значение постоянно меняется каждые 1 секунду.

Есть ли способ обновить маркер карт Google без перезагрузкився карта, как Uber?ПРИМЕЧАНИЕ. WebApp основан на Flask.

- [КОД] -

var map_lat; // changing value dynamiclly at every 1 sec
var map_lon; // changing value dynamiclly at every 1 sec
.
.
.

setInterval(function myMap() {
        var chlat = window.map_lat;
        var chlon = window.map_lon;

      var myCenter = new google.maps.LatLng(chlat,chlon);
      var mapCanvas = document.getElementById("map");
      var mapOptions = {
                        center: myCenter,
                        zoom: 18,
                        mapTypeId:google.maps.MapTypeId.ROAD
      };
      var map = new google.maps.Map(mapCanvas, mapOptions);
      var marker = new google.maps.Marker({position:myCenter});

      marker.setMap(map);
 },2000);

1 Ответ

0 голосов
/ 25 декабря 2018

Попробуйте обновлять только маркер каждые 1,5 секунды:

     var chlat = window.map_lat;
     var chlon = window.map_lon;

      var myCenter = new google.maps.LatLng(chlat,chlon);
      var mapCanvas = document.getElementById("map");
      var mapOptions = {
                        center: myCenter,
                        zoom: 18,
                        mapTypeId:google.maps.MapTypeId.ROAD
      };
      var map = new google.maps.Map(mapCanvas, mapOptions);
      var marker = new google.maps.Marker({position:myCenter});

      marker.setMap(map);

setInterval( () => {

      marker.setMap(null);


      var position = new google.maps.LatLng(map_lat,map_lon);

      var marker = new google.maps.Marker({position:myCenter});

      marker.setMap(map);


 },1500);
...