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。