我希望能够在您单击某个功能时将其拟合到某个功能,但是当它放大时,我希望它考虑到一个控制层,该控制层一旦放大就会出现,并且放大但只有大约 150px 到左。目前我可以使用以下代码完成此操作,但不幸的是它不是平滑缩放,因为我当前的方法将使用 fitBounds 进行缩放,然后一旦缩放它使用 panBy 向左平移 150px。如果平移是平稳的,这可能不会那么糟糕,也许在等待 250 毫秒之后。理想情况下,我希望能够对传递给 fitBounds 方法的边界进行一些数学运算,以简单地考虑向左移动 150px。
这是我目前正在工作的一个例子。
这是我正在使用的代码的简化版本:(您可以单击此处获取包含所有源代码的完整工作版本)
当你点击
function clickFeature(e) {
var layer = e.target;
map.fitBounds(layer.getBounds());
}
zoomEnd 上的地图:
map.on({
zoomend: function() {
map.panBy([150, 0]);
}
});
所以,我已经实现了预期的功能,但它并不顺利。
有没有一种方法可以对我们为单击功能获得的边界进行一些数学运算,以便在缩放时放大到已经修改的坐标,从而消除两步动画过程?