关于GIS中Scale和Resolution的那些事儿

摘要:
WMTS或ArcGISRest服务需要在ArcMap或各种前端地图框架中加载,但所有地图显示的原理基本上是通过坐标和每个图块的分辨率来计算行数和列数。但是,WMTS服务标准没有分辨率参数。它只给出刻度“ScaleDenominator”的值,用户需要根据该刻度计算分辨率。例如,上图中级别0的比例为scale=591657527.591555,Resolution=156543.03392800014591657527.591555*0.0254/96=156542.7208419323591657527.5 91555*0254000508/96=156543.339273739我们的转换结果和切片结果有0.07米的微小误差。

       在ArcMap或各类前端地图框架(Leaflet.js、OpenLayers.js、ArcGIS Javascript等)中都需要加载WMTS或ArcGIS Rest服务,但所有的地图显示的原理基本上都是通过坐标和每张瓦片的分辨率来计算行列号的,但WMTS服务标准中其实是没有分辨率Resolution这个参数的,他只给出了比例尺“ScaleDenominator”这个值,需要用户根据这个比例尺自己计算出分辨率。(参考下图,为同一个瓦片服务的Rest服务和WMTS服务)

REST:http://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer

WMTS:https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/WMTS/1.0.0/WMTSCapabilities.xml

同一份瓦片在ArcGIS Rest和WMTS中不一样的比例尺表示

       但在ArcGIS Rest服务中你会发现服务的Lod信息里是同时给出了比例尺“Scale”和分辨率“Resolution”值了的。有心读者读到这里和看到下面的图片时,应该会有两个疑惑。

  1. Resolution和Scale的计算公式是什么?
  2. 为什么同一份已经切好了的瓦片,在ArcGIS Rest服务和WMTS服务的比例尺不一样?

 

一、Scale和 Resolution的计算公示

案例一:如果地图的坐标单位是米,dpi为96

 参考:https://blog.csdn.net/redsky200905/article/details/84369213

1英寸=2.54厘米;

1英寸=96像素;

最终换算的单位是米;

如果当前地图比例尺为1:125000000,则代表图上1米实地125000000米;

米和像素间的换算公式:

1英寸=0.0254米=96像素

1像素=0.0254/96 米

则根据1:125000000比例尺,图上1像素代表实地距离是 125000000*0.0254/96 = 33072.9166666667米。

以上图第0级为例,比例尺为 Scale=591657527.591555,Resolution=156543.03392800014

591657527.591555*0.0254/96 =156,542.7208419323

591657527.591555*0.0254000508/96 =156,543.0339273739

我们这个换算结果和切片的结果略微有0.07米的误差。这个误差产生的原因是英寸换算厘米的参数决定的,server使用的换算参数1英寸约等于0.0254000508米。

       关于1英寸单位换算有以下文献说明

参考:http://scienceworld.wolfram.com/physics/Inch.html

        An nonmetric unit of length, originally defined as the lengths of three "average size" barleycorns laid end-to-end, but now more rationally defined as 2.54 cm. An older definition no longer used was 1 meter= 39.37 inches, giving 2.54000508 cm/inch.

12 inches are called 1 foot.

案例二:如果地理坐标系是wgs84,地图的单位是度,dpi为96

 经纬度坐标系的比例尺和分辨率

       Server中度和米之间的换算参数: 1 度约等于 111194.872221777 米

接下来就需要进行度和像素间的换算:

当比例尺为1:64000000米时,相当于1像素 = 64000000*0.0254000508/96 = 16933.3672米,再将米转换为度 16933.3672/ 111194.872221777 = 0.1522855043731385 度

       因此当地图单位为度时,近似计算在1:64000000 对应的Resolution为0.1522855043731385度。

 二、WMTS服务中的Scale和ArcGIS Rest服务中不一样的原因

       最核心的原因是因为DPI计算方式不一样!!!

WMTS assumes a DPI 90.7 instead of 96 as is clearly documented in the WMTSCapabilities document which states,

        "The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel)."

0.28 mm per pixel = 0.0110236 inches per pixel or 90.71446714322 pixels per inch.

       If you replace 96 in the equation above with 90.71428571429 you'll get the ScaleDenominator value so ESRI used a different conversion constant. After a little research I learned that

        1 in = 2.54 cm (I thought this was an approximation but it's by definition)

Since there are 25.4 mm in one inch then 25.4 / .28 = 90.71428571429 DPI which is the value we're after for DPI. Here is a site which confirms this calculation.

 

       继续以第一图为例:

 

559082264.0285016 * 0.00028 = 156,543.0339279804,这样计算的结果就和ArcGIS Rest中的差不多保持一致了。

 

 

参考文献:

https://blog.csdn.net/redsky200905/article/details/84369213

https://gis.stackexchange.com/questions/123195/why-are-rest-lod-scales-different-to-the-wmts-capabilities-xml

 https://gis.stackexchange.com/questions/29671/mathematics-behind-converting-scale-to-resolution/29733#29733

免责声明:文章转载自《关于GIS中Scale和Resolution的那些事儿》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shell脚本编程基础之while、for、until循环深入k8s:Pod对象中重要概念及用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ArcGIS统计栅格像元值并转换为矢量图层

很多时候,我们需要得到矢量数据区域所对应栅格数据的像元统计值(求平均、求和等),然后将获得的统计值赋给矢量图层的属性表,在ArcGIS中操作如下:(PS:第一次写技术文章,望大家多多体谅与支持,么么哒) 1、栅格统计:统计栅格数据,按照需要(求和、求平均)用所需要的矢量数据(矢量目标图层)进行统计,(注:考虑到统计分析较为常见,第一步前期并未实例截图)。...

ArcGIS Desktop 10.1+ArcEngine10.1完全破解安装教程(含下载地址+亲测可用!)

最近在二次开发中用到了VS2010+ArcGIS的二次开发模式,因为之前的某些原因,对ArcGIS的接触甚少。初次安装也遇到了很多问题,这里做一个总结。 系统环境 win732位操作系统 需要文件 (一)ARCGIS Desktop 10.1原版安装光盘 PS:已经更新360云盘下载地址,密码是2fed,欢迎反馈试用。 (二)ArcEngine 10.1...

ArcMap 4 完全卸载ArcGIS

本文提供两种完全卸载ArcGIS的方法 方法一:文字版 1、开始>控制面板>添加删除程序,卸载所有ArcGIS软件和帮助文档,以及所有ArcGIS补丁。 2、从添加删除程序面板中删除所有Python相关的应用程序。 3、进入到如下目录:C:UsersUserNameAppDataRoaming,删除ESRI文件夹。(用搜索工具,把ESRI文件夹...

《ArcGIS Runtime SDK for Android开发笔记》——(11)、ArcGIS Runtime SDK常见空间数据加载

 ArcGIS Runtime SDK for Android 支持多种类型空间数据源、每一种都提供了相应的图层来直接加载,图层Layer是空间数据的载体,其主要继承关系及类型说明如下图所示: 转载请注明出处:http://www.cnblogs.com/gis-luq/p/5062715.html 1、图层分类解析 Layer是所有图层的基类,声明了空...

Python与开源GIS

https://www.osgeo.cn/pygis/ 这里列出了与 GIS 相关的 Python 开源类库与工具。 基础类库(抽象库) • GDAL/OGR 是大部分开源GIS的基础,也包括如ArcGIS、FME这样的商业软件打开; • Proj.4 地图投影类库打开; • geojson类库,用于 GeoJson 格式的数据处理 • Rasterio...

ArcGIS Pro体验04——菜单栏

对菜单栏进行熟悉一下: 1.地图菜单 剪切板(Clipboard):剪切(Cut)、复制(Copy)、粘贴(Paste),这些不用说了,在ArcMap中是放在"编辑"菜单下面的。当然,在ArcGIS Pro的"编辑"菜单也有"剪切板"。 导航(Navigate):识别(Explore),缩放到全图(Full Extent),缩放到选择集(Zoom...