我创建了一个包含多个图层的 map ,并且想要缩放到其中一个图层 (map_coverage_S) 的范围,所以就像这样:
extent = map_coverage_S.getSource().getExtent();
view.fitExtent(extent, map.getSize());
不幸的是缩放不起作用,但是如果我在这两行之间放置警报:
extent = map_coverage_S.getSource().getExtent();
alert(extent);
view.fitExtent(extent, map.getSize());
有效! 但是,警报是(无穷大,无穷大,无穷大,无穷大)。当我发出第二个警报时,它会返回正确的坐标,正如我所期望的那样。所以看起来好像警报似乎“刷新”了我的 map 。如何在没有警报的情况下获得解决方案?我已经尝试过不同类型的计时器和 sleep 功能,或外包功能,但只有警报才能产生正确的结果。 谁能帮我? 谢谢, 阿恩
最佳答案
啊,我已经自己解决了这个问题!
我找到了触发事件的解决方案:
map_coverage_S.addEventListener("change", function(event) {
map.getView().fitExtent(map_coverage_S.getSource().getExtent(), (map.getSize()));
});
最诚挚的问候, 阿恩
关于javascript - Alert() 改变了 OL3 Zoom 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27226528/