每当我在传单地图上移动视图时,都会删除其中心不再在视图中的折线。我有一个具有大笔画大小(~500px)的折线,即使它的一部分应该是不可见的。拖动地图时也可以观察到同样的问题,在拖动结束之前不会重绘折线。示例如下所示。
我尝试为传单remove
事件添加一个侦听器但是没有触发。我也试过覆盖折线的onRemove
方法但是没有用。现在要解决这个问题,我让地图比屏幕更大,但这会导致一些减速。
我认为从地图中删除不可见的折线是一种性能特征。有谁知道这可以被禁用吗?
答案 0 :(得分:1)
我需要设置L.Path.CLIP_PADDING
。
通过查看github repo上的已关闭问题找到。 https://github.com/Leaflet/Leaflet/issues/2814
同样在文档中:http://leafletjs.com/reference.html#path-clip_padding
“在地图视图周围扩展剪辑区域的大小(相对于其大小,例如0.5是每个方向上屏幕的一半)。较小的值意味着在拖动地图时您将看到剪切的路径末端,较大的值会降低绘图性能。“
答案 1 :(得分:1)
是的,正如你所说的折线,geoJSON只有在收到“dragend”事件后才会重绘,所以即使在拖动过程中我们也必须重绘,我们可以通过编写以下代码轻松实现
map.on('drag', () => {
map.fitBounds(map.getBounds());
});
甚至 L.Path.CLIP_PADDING
都不适合我。但强行设定界限对我有用。
另请参阅demo here。