首页 > 解决方案 > 使用 Openlayers 5 缩放至分辨率

问题描述

Openlayers ScaleLine 组件有一种方法可以从分辨率转换为比例,但是反过来呢?

我们的客户正在为每一层选择一个比例,指示该层应该可见的比例。这就是为什么我必须从比例转换为分辨率。

我尝试了以下方法,其中 ScaleLine 显示“50m” 预期结果将是两个分辨率相同。输出:

Expected: 0.5964957884324376
Resolution: 0.013229166680160416

代码

const scale = 50; // 50 meters

const view = this.map.getView();
const center = view.getCenter();
const projection = view.getProjection();
const inchesPrMeter = 39.3700787;
const dpi = 96; // What about ol.has.DEVICE_PIXEL_RATIO ?

const expectedResolution = view.getResolution();
const resolution = scale / (projection.getMetersPerUnit() * inchesPrMeter * dpi);
console.log('Expected:', expectedResolution);
console.log('Resolution:', resolution);

我也不喜欢硬编码的 DPI。

标签: openlayersopenlayers-5

解决方案


推荐阅读