我创建了一个包含多个图层的地图,并想要缩放到其中一个图层(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());
它有效! 但是,警报是(无限,无限,无限,无限)。当我发出第二个警报时,它会返回正确的坐标,就像我期望的那样。因此,似乎警报似乎“刷新”#34;我的地图。如何在没有警报的情况下获得解决方案?我已经尝试了不同类型的计时器和睡眠功能,或外包功能,但只有警报才能产生正确的结果。 谁能帮我? 谢谢, ·阿尔
答案 0 :(得分:0)
啊,我已经解决了这个问题!
我找到了触发事件的解决方案:
map_coverage_S.addEventListener("change", function(event) {
map.getView().fitExtent(map_coverage_S.getSource().getExtent(), (map.getSize()));
});
祝你好运, 阿恩