麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

「GIS解惑」Google Maps 缩放级别到底对应多少比例尺?

最近有小伙伴在做 WebGIS 叠加分析的时候问小编:Google Maps 第 13 级缩放,是不是就对应 1:20000 的比例尺?这个问题看起来简单,实际上还是混淆了传统地图与Web地图的一些基础概念,小编今天就尝试解释下这个问题。

无法直接对应

先说结论:Google Maps 用的是 Web 墨卡托投影,缩放级别和比例尺之间不能像 ArcGIS 布局视图那样一一硬套。

首先比例尺会随纬度变化,墨卡托投影在高纬度地区被拉长了,同样一个 Zoom Level,在赤道和北京看到的地面距离是不一样的。其次比例尺还取决于屏幕 DPI,Web 地图显示在显示器上,96 DPI 和 Retina 屏看到的“1 厘米代表多少米”完全不同。最后瓦片是 256x256 像素一块,Zoom 0 时整个世界刚好塞进一块 256×256 的瓦片里,每加一级,横向和纵向各多一倍像素,也就是分辨率变成原来的 4 倍。这个机制和 ArcGIS 里的比例尺分母不是同一个概念,硬换算只能得到近似值。

也就是说缩放级别描述的是瓦片金字塔的第几层,比例尺描述的是图上距离和实地距离的比值,两者有关联,但不是固定常量。

最实用的计算公式

虽然无法直接对应,但如果做粗略的对应也有方法。Google 员工给出的官方思路:

metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / Math.pow(2, zoom)

其中公式里的 156543.03392 是 Zoom 0、赤道处的基准地面分辨率,单位是米/像素,计算过程:

赤道周长 = 2 × π × 6378137 ≈ 40,075,016.686 米
Zoom 0 时,360° 经度刚好铺满 1 块 256 像素宽的瓦片
156543.03392 = 40,075,016.686 / 256

实际开发中,低缩放级别用地图中心点纬度做近似,效果还可以;要是区域跨度大,中心点和边缘的误差就会比较明显。

各级别参考比例尺

ArcGIS 和 OpenStreetMap 官方文档里都有更直观的级别对照图,小编把原文里的两张图摘下来给大家看看。都是以赤道为例:

ArcGIS 开发者文档中的 Zoom Level 与比例尺对照:

OpenStreetMap Wiki 中的 Zoom Level 说明:

总结

如果项目中有需要,可以按照官方的文档或者本文中提供的算法来实现,但实际上Web 墨卡托(EPSG:3857)比例尺最精准的位置就是在赤道,离开赤道后,比例尺全部放大。

如果你有更好的换算经验,或者在实际项目里踩过坑,欢迎留言补充。

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子
没有下文

留言板(小编看到第一时间回复)