【问题标题】:In OpenLayers why is calculateExtent zoomed out在 OpenLayers 为什么计算范围缩小
【发布时间】:2020-03-04 15:46:45
【问题描述】:

我正在尝试在“moveend”上捕捉我的地图范围,似乎正在捕捉的范围被缩小了很多......

idle(event) {
function onMoveEnd(evt) {
const mapChange = map.getView().calculateExtent(map.getSize());
}
MapValues.map.on('moveend', onMoveEnd);
}

我相信这几乎就是我所看到的示例,但它并没有在 moveend 上保存真正的缩放范围。

感谢任何帮助(尤其是正确的解决方案:))!

【问题讨论】:

  • 您期待真实的地面距离吗?您可能需要调整点分辨率openlayers.org/en/latest/apidoc/…(例如,格陵兰在您的地图上可能看起来像非洲一样大,但实际上并非如此)。
  • 我不确定……但我不这么认为。我使用上面的代码在平移或缩放结束时有一个范围......但是如果我重新加载那个范围,它不是我之前看到的......它被缩小了吗?
  • 这将在版本 3、4 和 5(不是 6)中发生,除非您在选项中指定 constrainResolution: false,否则它将转到整数缩放级别 openlayers.org/en/v5.3.0/apidoc/module-ol_View-View.html#fit

标签: openlayers openlayers-3 openlayers-5 angular-openlayers


【解决方案1】:

好的,对我有用的是在“calculateExtent”之后添加这一行

 map.view.setResolution(map.view.getResolution() * 0.5);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-19
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2019-07-07
    相关资源
    最近更新 更多