GIS矢量数据更新时的瓦片范围计算

摘要

本文通过数据更新范围,计算所覆盖的OGC地图服务瓦片的行列号,解决OGC WMS、WMTS服务的缓存瓦片如何计算和更新的问题。

OGC地图瓦片行列号计算过程 

  (1)   获取数据更新范围的外包矩形作为瓦片计算范围BBox;

(2)获取数据坐标系的坐标原点origin;

(3)根据地图瓦片切片级别,计算地图分辨率;

       如果数据为平面坐标系,计算公式为:Scale = 1:(96 * Resolution/ 0.0254)。其中,Resolution为地图分辨率,Scale为瓦片的切片级别;

      如果数据为地理坐标系,计算公式为:Scale = 1:(96 *2 *Math*PI*6378137*Resolution/360/0.0254)

(4)计算瓦片的起止行列号

         取BBox的左上和右下角坐标point1、point2,计算瓦片的起止行列号

         最小列号:col1=(int)Math.floor((point1.x-origin.x)/256/Resolution)

         最大行号:row1=(int) Math.floor((Math.abs(point1.y-origin.y))/256/Resolution)

         最大列号:col2=(int)Math.floor((point2.x-origin.x)/256/Resolution)

         最小行号:row2=(int) Math.floor((Math.abs(point2.y-origin.y))/256/Resolution)

其中,256为瓦片大小,即256像素*256像素

你可能感兴趣的:(java)