Маркер обновления буклета исчезает до тех пор, пока он показывает - PullRequest
1 голос
/ 02 февраля 2020

Я использую листовку и работаю над сценарием, который обновляет позиции маркера каждые X секунд. Каждый раз, когда я обновляю маркер, он исчезает до тех пор, пока он отображается на карте. Это то же значение, что и интервал для средства обновления. В приведенном ниже примере интервал составляет 1000 мс, что означает, что он отображается в течение 1000 мс и исчезает в течение 1000 мс.

Если мы изменим значение, время исчезновения изменится вместе с ним. Это напрямую связано. То, что я хочу сделать sh, это обновить маркер без его исчезновения или исчезновения только для

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
  <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>
</head>

<body>
  <div id="mapid" style="width: 600px; height: 400px;"></div>
  <script>
    var mymap = L.map('mapid').setView([51.505, -0.09], 13);

    L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
      maxZoom: 18,
      attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
        '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
        'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
      id: 'mapbox/streets-v11'
    }).addTo(mymap);

    var marker = L.marker([51.5, -0.09]).addTo(mymap);

    setInterval(function() {
      var markerPos = marker.getLatLng();
      marker.setLatLng([markerPos.lng + 0.001, markerPos.lat]);
    }, 1000);
  </script>
</body>

</html>

1 Ответ

0 голосов
/ 02 февраля 2020

Ваш код для обновления маркера меняет значение lat / lng при каждом вызове. Таким образом, каждый раз, когда позиция обновляется до чего-то, что находится за пределами вашей карты. Попробуйте это (или измените, чтобы увеличить lng вместо lat, если это то, что нужно)

var markerPos = marker.getLatLng();
marker.setLatLng([markerPos.lat + 0.001, markerPos.lng]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...