地理现象和地理要素的表达通常是多尺度的,尺度表示了地物的综合程度和位置精度,衡量尺度的概念一般用分辨率或比例尺。

分辨率    在GIS中所提到的分辨率,也称地面分辨率(Ground Resolution)或空间分辨率(Spatial Resolution),表示一个像素(pixel)代表的地面实际距离。 以谷歌地图为例:在缩放级别为 1 时,图片大小为4个 256*256 的图片,那么赤道上的空间分辨率为:地球赤道周长(实地距离)除以256*2(像素大小)。其他纬度上的分辨率则为:纬度圈长度/512。 因此可以看出,分辨率取决于两个参数:纬度和缩放级别。缩放级别决定了像素的多少,纬度决定了地面距离的长短。 因此谷歌地图某视图下的分辨率计算公式为(单位:米/像素):

        F(X,Y):地图分辨率;

        X:纬度值;

        Y:缩放级别;

        R:常量 6378137,表示地球半径,单位:米。

        比例尺    比例尺通常以比率(如 1:10000 )来表示,表示图上距离与实地距离之比。例如 1:10000 表示图上 1cm 代表实际距离 10000cm,即100米。 由于比例尺起源较早,通常用(纸质)图上的距离衡量实际距离;而分辨率则通常用设备屏幕上的距离来衡量实际距离。而同一个地图视图,尺度是唯一的,比例尺和分辨率只不过是两种表示方法,因此它们是一一对应的。 比例尺与分辨率之间的换算公式如下:

        Scale:地图比例尺;

        Resolution:地图分辨率;

        PPI:每英寸的像素点数。

其中 PPI,即 Pixel per Inch,即每英寸的像素点数(在不混淆情况下,也有用 DPI 来表示该参数);0.0254 为英寸和米的转换常数。

由于比例尺和分辨率一一对应,因此比例尺也取决于纬度和缩放级别两个参数,并且还与 PPI 相关。仍旧以谷歌地图为例:当地图处于全幅状态时,上下移动地图,使得地图中心线处纬度发生变化,因此比例尺随之变化;同理,当地图处于不同的缩放级别时,地图比例尺同样也会发生变化。如图1 和图2分别为纬度和缩放级别的变化引起了比例尺的变化。注意:某一视图下的比例尺一般指地图中心点的比例尺。

           

图 1                                                                            图 2

图3和图4相比,在同一缩放级别下上下移动地图时,地图比例尺并未发生变化。这是由于缩放级别较大时,即地图处在较大比例尺状态,地图上下平移,所造成的纬度变化非常小,因此比例尺就基本相等。

          

图 3                                                                          图 4

那么,在 SueperMap iClient 产品中 Map 和 Layer 对象同时拥有比例尺和分辨率属性,该如何进行选择呢?

如果您选择 SuperMap 系列服务器产品作为地图数据的提供者,在此建议您使用 Map 与 Layer 中的比例尺相关属性(比如 Scale、Scales 等),因为 SuperMap 服务器产品直接提供了相关地图的比例尺功能。 如果您选择的服务器产品并没有直接提供比例尺,或者是在 WMS 这类标准服务中未涉及比例尺参数的情况下,建议选择分辨率属性(比如 Resolution、Resolutions 等)。 这是因为比例尺可以与用户屏幕相关,而分辨率则是完全无关的。图5 和图1 展示的地图是同一缩放级别,却显示了不同的比例尺(注意图的右下角)。原因就在于两幅图来源的用户电脑屏幕分辨率不同,屏幕分辨率的不同导致了 PPI 的变化,从计算比例尺的公式可以看出,比例尺必然发生变化。但分辨率不会变化,因为在该缩放级别下,赤道周长仍旧没变,图片也仍旧是 512*512 像素,因此可知分辨率与屏幕分辨率没有关系。

图 5 不同屏幕分辨率下的截图

另外,在 WMS 图层参数中有 bbox、height 和 width 这三个参数可唯一确定所请求的地理视图范围与缩放级别。bbox 指可视的地理范围,由4个边界值可确定中心点,而 bbox 的宽度(实地距离)除以 width(图片距离)即是 Resolution(分辨率)。但是没有 PPI,是不能确定 Scale (比例尺)的。换句话说,由 Resolution、Center、Width、Height 可唯一确定可视范围,但 Sclae无法确定。而在利用 SuperMap 服务器提供的服务时,由 Sclae、Center 参数(宽和高一般都有默认值)可确定唯一的可视范围。这其中的原因是,SuperMap 服务器默认使用了 96 PPI(以下称为 DPI)。有经验的用户会发现,在改变了屏幕的分辨率时,用同样的 Sclae、Center 请求的图片显示是相同的。当然也可通过修改 SuperMap 服务器配置文件修改 DPI 大小,或指定 DPI 值是否与用户屏幕分辨率相关。配置文件路径:[SuperMap iServer 7C 安装路径]\support\objectsjava\bin\SuperMap.xml;其中 <CustomDPIEnable>TRUE</CustomDPIEnable>指定 DPI 是否与用户屏幕分辨率相关;当 CustomDPIEnable 为 true 时,<CustomDPIX>96</CustomDPIX>、<CustomDPIY>96</CustomDPIY>用于指定X/Y方向 DPI 的固定大小,默认为 96。

开源GIS(十八)——分辨率与比例尺相关推荐

  1. 优秀的 Verilog/FPGA开源项目介绍(二十八)- DSP(Digital Signal Processing)

    优秀的 Verilog/FPGA开源项目介绍(二十八)- DSP(Digital Signal Processing) 介绍 FPGA在数字信号处理领域一直有着比通用CPU得天独厚的优势,所以一直都受 ...

  2. 开源GIS平台空间数据管理与发布技术研究

    毕业论文(设计) 题目: 开源GIS平台空间数据管理与发布技术研究 2014 年 5 月 摘要 本文系统地分析了网络地理信息系统(Web GIS)工作原理,阐述了使用免费.开源的GIS平台的开发模式. ...

  3. ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能

    ROS探索总结(十六)--HRMRP机器人的设计 1. HRMRP简介         HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台 ...

  4. 开源GIS(二)——openlayers加载Arcgis和geoserver在线离线切片

    一.引言 开始开源gis的不归路,第一课便是加载底图,底图目前主流的都是wmts,以后会研究一下wms,本文介绍了普通网络在线切片(如谷歌百度高德等).Arcgis在线切片与离线切片.openlaye ...

  5. 即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型

    1.引言 大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献. 就音频而言,无论是算法多样性, ...

  6. NeHe OpenGL第二十八课:贝塞尔曲面

    NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( ogapo@ithink. ...

  7. 这13个开源GIS软件,你了解几个?【转】

    泰伯网有看点的空间地理信息资讯都在这,你还在等什么? 这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic In ...

  8. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  9. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例

    Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21 我要评论 这篇文章主要介绍了Android项 ...

  10. Linux运维 第三阶段 (十八) varnish

    Linux运维 第三阶段 (十八) varnish 数据: 结构化数据,RDBMS: 非结构化数据,FS,存海量小文件,NAS.SAN.DFS可提供较好的性能: web cache: 程序具有局部性( ...

最新文章

  1. 浙大博士导师整理:Tensorflow和Pytorch的笔记(包含经典项目实战)
  2. Mysql 表字段(列)编辑 (增删改)
  3. win10 连接android,win10系统连接安卓手机usb没反应的解决方法
  4. java创建请求拦截器_80.简单Retrofit+RxJava+日志拦截器结合使用
  5. docker下安装Nginx的方法
  6. linux检查网络是否通畅_网络基础Ping命令详解(使用Ping这命令来测试网络连通)...
  7. 澳洲天才医生寻根(转)
  8. cacti 监控平台部署心得
  9. c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...
  10. C++ API 设计 15 第十章 测试
  11. 【开发神器】自动化测试、用 Apipost!
  12. 【ESP32】HardwareSerial库使用
  13. 用Prolog解决爱因斯坦斑马问题
  14. WLAN适配器故障(消失)的最快解决办法
  15. iOS通讯录复制的手机号码字符串多了奇怪的unicode码\u0000202d-\u0000202c
  16. 大数据舆情传播演变规律如何分析的方法技巧
  17. BZOJ4919: [Lydsy1706月赛]大根堆(set启发式合并)
  18. ENVI:如何进行遥感图像的分类?(决策树模型)
  19. Business Cycle 【UVALive - 7501】【二分答案+思维处理】
  20. USB Type-C引脚解析 CC、DFP、UFP、DRP用途解析

热门文章

  1. java大文件下载失败_java文件下载超过4G文件错误
  2. wow工程修理机器人图纸_魔兽世界修理机器人-魔兽世界工程修理机器人图纸哪有啊?魔兽世界 – 手机爱问...
  3. 利用matlab设计矩形脉冲信号,信号课程设计
  4. Python flag用法
  5. fyi 在邮件里是什么意思_FYI的完整形式是什么?
  6. android root 升级失败怎么办,安卓手机ROOT失败的常见原因及解决办法
  7. python小学生口算题生成器_小学数学题生成器下载
  8. 突发!图森未来CEO侯晓迪被罢免,公司市值一夜砍半!自动驾驶未来如何?
  9. 【蚂蚁链学习2】蚂蚁链智能合约初级语法(数组、结构体、散列函数、事件)
  10. Ng Alain分页控件的使用