openlayers - 使用 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。
解决方案
推荐阅读
- javascript - React Native - 基于switch case循环导出对象
- c - 使用 .C 从 R 传递一个指向 C 的空指针
- mysql - mySQL 删除带有 count(*) GROUP 和 HAVING 的行
- vb.net - 获取当前的 NIC 设置
- python - django 序列化器多对多字段验证
- microsoft-graph-api - 如何通过 Graph API 向 Teams 发送带有附件的消息?
- wix - 使用 NSIS 卸载以前的 Wix 安装程序需要更长的时间,并且应用程序标题栏显示“无响应”
- java - 使用尾递归检索文件夹和子文件夹以在 java 中读取文件
- php - 在 CRUD 生成器 gii yii2 框架中创建模型时出错
- c# - C# WPF - 创建用户控件的 Png 图像文件导致黑色图像