资讯专栏INFORMATION COLUMN

Openlayers中数字比例尺的实现方法

dreamGong / 3845人阅读

摘要:比例尺分类数字式,用数字的比例式或分数式表示比例尺的大小。中比例尺介绍中默认地图比例尺为直线式,如图该比例尺存在精确测量无法读取比例尺实际值的缺点。因此有必要将直线比例尺转换成数字比例尺。

1.比例尺分类
(1)数字式,用数字的比例式或分数式表示比例尺的大小。例如地图上1厘米代表实地距离500千米,可写成:1∶50 000 000或写成:五千万分之一。
(2)线段式(也叫直线式),在地图上画一条线段,并注明地图上1厘米所代表的实际距离。
(3)文字式,在地图上用文字直接写出地图上1厘米代表实地距离多少千米,如:图上1厘米相当于地面距离10千米。

2.openlayers中比例尺介绍
openlayers中默认地图比例尺为直线式,如图该比例尺存在精确测量无法读取比例尺实际值的缺点。因此有必要将直线比例尺转换成数字比例尺

3.实现方法

地图比例尺、分辨率、dpi关系
openlayers背景地图多为瓦片地图,瓦片地图分辨率(resolution)是非常重要的参数,其原理参考瓦片地图分辨率介绍;
地图比例尺受到分辨率,像素dpi以及地图投影关系等影响,他们之间的关系参考地图比例尺,分辨率,dpi之间的关系
因此根据这三者的关系得到数字比例尺(digitalScale)的换算公式:
digitalScale=dpi/0.0254*resolution
根据以上公式,结合各类图源的瓦片层级和分辨率(我做的示例为OSM地图),dpi常规取值为96,就可以计算出一个转换参数:dpi/0.0254=3779.5275590551

实现代码

比例尺1:

最终效果

转载请注明出处——哦哟哟哟哟哟哟哟哟哟

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109477.html

相关文章

  • Openlayers官网实例线下实现解决方法

    摘要:官网提供了很多实例供参考学习,但是最新官网实例是基于版本以及语言开发,而行业内大部都用的版本较多,这与市场存在一个新老版本开发的衔接问题。 Openlayers官网提供了很多实例供GISer参考学习,但是最新官网实例是基于Openlayers5.3版本以及ECMAScript6语言开发,而行业内大部都用的openlayers3-4版本较多,这与市场存在一个新老版本开发的衔接问题。GIS...

    or0fun 评论0 收藏0
  • JavaScript矢量化地图库 – 快速入门

    摘要:注意在代码中将其替换为自己刚刚申请的运行,显示地图修改保存之后点击运行就可以得到一幅矢量地图了,此过程可能会稍微有点长,要耐心多等一会儿。 VectorMap.js是一个开源地图渲染JavaScript库, 可以使用WebGL或者HTML5两种方式进行交互式矢量地图 (包括矢量瓦片地图,一般性矢量数据地图)和 栅格瓦片地图的渲染。 WebGL渲染意味着高性能,大数据, HTML5渲染意...

    MiracleWong 评论0 收藏0
  • openlayers-自定义瓦片

    摘要:自定义瓦片定义一个瓦片地址官方文档由此我们只需要重写这个方法即可数据准备用爬虫下载了一些高德地图放大层数最小的图片大小的简单服务器配置,将这些图片放到下使之能够正常访问代码编写常用参数配置用于调试的网格编号很重要使用说明可以用来检查是否是 openlayers-自定义瓦片 定义一个瓦片地址 ol.source.TileImage.tileUrlFunction 官方文档 showI...

    Barrior 评论0 收藏0

发表评论

0条评论

dreamGong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<