在OpenLayers中,为什么要缩小calculateExtent

在OpenLayers中,为什么要缩小calculateExtent,openlayers,openlayers-3,openlayers-5,angular-openlayers,Openlayers,Openlayers 3,Openlayers 5,Angular Openlayers,我试图在“moveend”上捕获我的地图的范围,似乎正在捕获的范围被放大了很多 idle(event) { function onMoveEnd(evt) { const mapChange = map.getView().calculateExtent(map.getSize()); } MapValues.map.on('moveend', onMoveEnd); } 我相信这就是我所看到的示例,但它并没有在moveend上保存真正的缩放范围 任何帮助(特别是正确的解决方案:)都将不胜感激

我试图在“moveend”上捕获我的地图的范围,似乎正在捕获的范围被放大了很多

idle(event) {
function onMoveEnd(evt) {
const mapChange = map.getView().calculateExtent(map.getSize());
}
MapValues.map.on('moveend', onMoveEnd);
}
我相信这就是我所看到的示例,但它并没有在moveend上保存真正的缩放范围


任何帮助(特别是正确的解决方案:)都将不胜感激

好吧,对我有效的是在“calculateExtent”后面加上这一行


你期望在地面上有真正的距离吗?您可能需要调整点分辨率(例如,格陵兰岛在您的地图上看起来可能和非洲一样大,但它不是)。我不确定……但我不这么认为。我在平移或缩放结束时使用上面的代码有一个范围…但是如果我重新加载该范围,它不是我以前看到的…它被缩小了?这将发生在版本3、4和5(不是6)中,除非在选项中指定
constraintResolution:false
,否则它将变为整数缩放级别
 map.view.setResolution(map.view.getResolution() * 0.5);