我在项目中使用传单。为了在地图上移动标记我正在使用这个插件。但是我遇到了一个严重的问题。在我的地图上有几辆车在不同的位置(GPS位置)。我通过网络插座获得新的位置(数据)。因此,当一辆车正在移动并且突然另一辆车开始移动地图时,立即移动到该位置。我想要标记可以移动的任何地方但是地图应该始终保持静止。无论如何都可以这样做吗?我真的遇到了麻烦,需要帮助。
这是我的代码段 -
vehicleAnimatedMarker = L.animatedMarker(lines.getLatLngs(), {
icon: L.AwesomeMarkers.icon({
icon: 'truck',
markerColor: 'green',
prefix: 'fa',
spin: false
}),
autoStart: false,
clickable: true,
title: searchTitle,
totalData: details.position
});
vehicleAnimatedMarker.on('click', function () {
showVehicleSummary(details.id);
})
vehicleAnimatedMarker.addTo(map).bindPopup("truck " + getVehicleNameByVehicleId(details.id) + " is moving.").openPopup();
var markerItem = {id: details.id, marker: vehicleAnimatedMarker};
vehiclesAnimatedMarkersArray.push(markerItem);
vehicleAnimatedMarker.setDistance(3);
vehicleAnimatedMarker.setInterval(36);
vehicleAnimatedMarker.start();
提前致谢。欢迎任何形式的帮助。
答案 0 :(得分:1)
我猜是因为你正在使用
openPopup()
每次调用autoPan
时,Leaflet都会移动地图,因为这是默认行为。幸运的是,Leaflet有一个名为false
(http://leafletjs.com/reference.html#popup-autopan)的弹出窗口选项,您可以将其设置为{{ 1}}禁用此行为。您的bindPopup
电话应该看起来像bindPopup("truck " + getVehicleNameByVehicleId(details.id) + " is moving.",{autoPan:false})
答案 1 :(得分:1)
只需将{autoPan: false}
添加到marker
。
marker.bindPopup("yourHTMLForPopup", {autoPan:false}).openPopup();