javascript - Alert() 改变了 OL3 Zoom 的功能

标签 javascript zooming openlayers alert openlayers-3

我创建了一个包含多个图层的 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/

相关文章:

javascript - 从嵌套 JavaScript 对象插入/删除数据

javascript - for 循环生成的特定输入的复杂选择

javascript - 使用 javascript 禁用 chrome 缩放缩放

javascript - Google Chrome 开发者工具 - 分析结果文件格式

javascript - 如果缩放最大/最小,如何忽略 d3.js 缩放行为?

jquery - 缩小整个 WordPress 网站

printing - 如何使用GeoServer-GeoWebCache层的MapFish打印模块?

javascript - 当我使用 javascript 加载图 block 时,openlayers map 中如何仅显示一个图 block

php - 在 openlayers 3 中单击标记时显示弹出窗口

javascript - 如何在 Javascript 中使用尾随 ISO 代码格式化货币?