我按照IvanSanchez's snakeIn在每条折线后绘制每个标记。
代码已被修改,例如
var markers = [[63.5, 11],
[40.5, -3.5],
[51.5, -0.5],
[52.3, 4.75],
[39.5, -0.5]];
var route = L.featureGroup().addTo(map);
var n = markers.length;
for (var i = 0; i < n-1; i++) {
var marker = new L.Marker(markers[i]);
var line = new L.polyline([markers[i],markers[i+1]]);
route.addLayer(marker);
route.addLayer(line);
};
route.addLayer(new L.Marker(markers[n-1]));
map.fitBounds(route.getBounds());
我一直在尝试使用Leaflet popup,我可以为每个标记绑定。 我的问题是如何在绘制标记时自动打开每个弹出窗口,然后在绘制下一个标记时自动关闭,等等......
答案 0 :(得分:2)
在Leaflet中,每个图层(包括标记)都有add
event,当它添加到地图时会触发。
在内部,Leaflet.Polyline.SnakeAnim的代码在蛇形动画运行时从LayerGroup中删除并添加图层;这意味着蜿蜒进入的图层将触发add
事件。
此外,每次创建新图层时,运行蛇形动画的LayerGroup
(或FeatureGroup
)都会触发snake
事件。但请注意,此事件不会引用刚刚蜿蜒的图层。
类似于:
marker1.on('add', function(){
// Open popup for marker 1
});
你也说:
然后在绘制下一个标记时自动关闭
首先阅读L.Map.openPopup
的文档,然后阅读:
marker1.on('add', function(){
map.openPopup( popupForMarker1 );
});