Geoserver WTMS切片级别原点计算

切片策略中PixeSize的确定

确定坐标系和单位以及切片的Tile width/height in pixels(以像素为单位的平铺宽度/高度‎)‎,在配置切片策略的时候,每个Level(切图的比例尺参数)都需要一个level 和 resolution。

名称 定义
scale 比例尺,即地图上的一厘米代表着实际上的多少厘米。原 scale 中表示的实际单位是厘米,
resolution 分辨率,实际含义代表当前地图范围内,1像素代表多少地图单位(地图单位/像素),地图单位取决于数据本身的空间参考。
dpi 代表每英寸的像素数,ArcGIS中dpi默认是96, OGC标准输出的分辨率的DPI是 90.714 (25.4/0.28=90.714)。

以下是以Arcgis中dpi为例进行相关计算
        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米
    即 resolution = scale*0.0254/dpi

由上可以得到分辨率=比例尺*像素尺寸。在OpenGIS的 WMTS标准实现中,确定比例尺分母时采用的是标准显示像素尺寸(1个像素大小)0.28mm×0.28mm。因此geoserver中分辨率=比例尺*0.00028。注意比例尺应以坐标规定的单位m,因此要把0.28mm转换成以m为单位。分辨率既是Pixel Size里面的值。

根据Gridset bounds(X0,Y0,X1,Y1)的X,Y的范围确定以范围的X为单位1还是以Y为单位1。从而确定横向和纵向的切片数。如果X1-X0>Y1-Y0,则Y是以Y方向为单位向X方向切片。如下图所示以Y方向为单位,在X方向将其分为3份,其中黑色粗体为地图形状,红色为切片的范围。

根据以X或者Y为单位去切片,可以知道每个策略级别X,Y方向上的切片数。如上图以Y方向为单位,则Y方向切片数小于X方向切片数。

确定以上这些相关参数,我们就可以通过计算得到每个级别对应的原点。

找到每个级别的Pixel Size(单个像素实际距离),Tile Width/Height in pixels(每张瓦片像素数),Y方向的切片数。注意:坐标元的X一般不会变化即每个级别的很坐标都是最小X的值。

计算每个级别切片数的实际长度:PixelSize*Tile Width/Height in pixels*方向切片数=级别切片实际长度。

而坐标原点Y值=级别切片实际长度 + 切片范围最小Y值。

总结

一下几个参数的确定较为重要

  • 确定以X/Y为切片的单位,以Y为单位进行切片,则原点的X值是最小的X的值。X同理。
  • 得到X/Y方向上的切片数。从而计算出每个级别切片方向上的距离。

版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/geoserver%e7%9a%84%e6%af%8f%e4%b8%aa%e7%ba%a7%e5%88%ab%e5%8e%9f%e7%82%b9%e7%a1%ae%e5%ae%9a/1323/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>