0
在单张地图,我期望:Leaflet map setView()不准确吗?
map = L.map(...);
...
var latlng1 = L.latLng(-121.99574947357178, 37.33783464876286);
map.setView(latlng1,12, {animate: false});
var latlng2 = map.getCenter();
if (!_.isEqual(latlng1, latlng2)) {
console.log("latlng2 should be the same as latlng1!", latlng2);
}
但事实上,这段代码运行时,latlng2
被分配有:
-121.99562072753906, 37.33795407160059
看起来这是一个精密的问题,因为坐标确实接近。
我的问题: 我希望用动画用的setView:
map.setView(latlng1,12, {animate: true})
由于没有回调,其被调用的动画完成的时候,我希望能使用getCenter()
和_.isEqual
(在moveend
事件)来比较请求的和实际的坐标。 由于实际坐标不相同,我可以编写一个isCloseEnough()
函数。老实说,我觉得我的方法是关闭的,所以我正在寻找经验丰富的开发人员的建议。
这是一个合理的方法还是有更好的解决方案?