我正在使用传单,并且正在编写一个脚本,该脚本每X秒更新一次标记位置。每当我更新标记时,标记就会消失,只要它在 map上显示的时间就消失了。该值与更新程序的间隔相同。在下面的示例中,间隔为1000ms,这意味着间隔显示1000ms,然后消失1000ms。
如果我们更改该值,消失的时间将随之改变。它是直接链接的。我要完成的工作是更新标记,而不会消失或只消失一个
<!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 © <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>
您每次更新标记的代码都会使经纬度反转。因此,每隔一次,位置就会更新到 map之外的位置。尝试此操作(如果需要,可以修改以增加lng而不是lat)
var markerPos = marker.getLatLng();
marker.setLatLng([markerPos.lat + 0.001, markerPos.lng]);