如何在标记在传单animatedMarker中移动时停止移动地图

时间:2015-03-17 11:03:23

标签: leaflet

我在项目中使用传单。为了在地图上移动标记我正在使用这个插件。但是我遇到了一个严重的问题。在我的地图上有几辆车在不同的位置(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();

提前致谢。欢迎任何形式的帮助。

2 个答案:

答案 0 :(得分:1)

我猜是因为你正在使用 openPopup() 每次调用autoPan时,Leaflet都会移动地图,因为这是默认行为。幸运的是,Leaflet有一个名为falsehttp://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();