在传单地图中,我期待:
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()
函数。
老实说,我觉得我的方法是关闭的,所以我正在寻找经验丰富的开发人员的建议。
这是一种合理的方法还是有更好的解决方案?