基于改进Web墨卡托投影的瓦片地图服务设计与实现
2016-03-01李鹤元
李鹤元,陈 刚
(1.信息工程大学 地理空间信息学院,河南 郑州 450052;2.地理信息工程国家重点实验室,陕西 西安 710054)
基于改进Web墨卡托投影的瓦片地图服务设计与实现
李鹤元1,2,陈刚1
(1.信息工程大学 地理空间信息学院,河南 郑州 450052;2.地理信息工程国家重点实验室,陕西 西安 710054)
随着GIS技术、计算机技术和网络技术的飞速发展,特别是Google Map和Google Earth推出后,地图正在以前所未有的深度和广度改变着人们的生活方式甚至思维方式,新时期的地图应用已具备网络化、服务化、多维化、高效化等新的特征。
学者们在网络地图方面进行大量深入的研究,通常的做法是采用瓦片地图金字塔的机制、空间换时间的策略,通过预先生成的海量图片提高地图访问效率[1-7]。
但是,采用一套数据同时解决二维、三维地图应用的问题一直没有得到实用化解决。以Google为例,Google Map是典型的二维地图应用,它采用基于web墨卡托投影的地图瓦片;Google Earth是典型的三维地球应用,它采用地理坐标的地图瓦片。当用户同时需要二维地图和三维地球两类应用时,需要准备两套不同规格的地图瓦片,增加存储成本。
本文从投影模型的改进入手,对网络地图应用中影像和DEM瓦片组织方法进行研究,提出一种改进Web墨卡托投影的方法,解决高纬度地区栅格地图的表达以及二、三维地图服务共用一套规格地图瓦片的问题,并通过试验实现B/S模式下的二、三维瓦片地图服务的快速响应和高速可视化。
1Web墨卡托地图投影的改进
1.1瓦片地图投影选取
三维空间向二维地图转换的主要方法是地图投影变换,实质是建立球体空间与平面场之间点间的一一对应关系。地图投影方式有很多种,常用投影有高斯投影、兰勃特投影、Albers投影、墨卡托投影等[4],地理坐标也可以广义的视为一种投影变换。所有的投影都会在某些方面存在变形,如长度变形、面积变形或者角度变形等。
目前,地理坐标和Web墨卡托投影坐标是最常用的两种瓦片地图投影方式。Google Earth是典型的三维地球应用,它采用地理坐标的地图瓦片,其优点在于整个地球表面映射到平面上后始终是一个有界矩形。但是,它也有自己的缺点,即具有较大的视觉变形。Google Map是典型的二维地图应用,它采用基于Web墨卡托投影(EPSG 3857)[8]的地图瓦片。Web墨卡托投影是墨卡托投影[8]的一种近似,具有近似等角特性,可以有效保持地理空间物体的空间方位关系以及大型空间对象(如大比例尺地图上的建筑物)的形状,更符合人的视觉感知,从视觉变形特别是角度变形上优于Google Earth采用的地理坐标。但其越靠近高纬度地区,其面积变形越大,因此该模型无法表达纬度高于±85.051 1°的地区。
1.2改进Web墨卡托投影
本文设计一种能够同时满足二维地图应用和三维地球应用的地图投影,力图克服Web墨卡托投影在高纬度地区表达的缺陷,即改进Web墨卡托投影。设椭球模型的长半轴半径为R,经纬度坐标(λ,φ)与其对应的Web墨卡托投影坐标(xm,ym)存在如下关系:
(1)
其中,经纬度的单位为弧度。
设(xn,yn)满足关系:xn=xm/πR,yn=ym/πR,对任意经度λ∈[-180°,180°],存在xn∈[-1,1]。当yn= ±1时,φ≈±85.05°。根据式(2)可以实现经纬度向[-1,1]×[-1,1]矩阵空间的映射。
(2)
其中,λ∈[-180°,180°],φ∈[-85.05°,85.05°]。通过(xn,yn)反算经纬度坐标(λ,φ),算式为
(3)
Web墨卡托投影能实现纬度φ∈[-85.05°,85.05°]范围内的投影,但实际地理空间纬度坐标范围为[-90°,90°],当纬度φ无限接近±90°时,yn将趋近无穷大,即采用此种方式的Web墨卡托投影并不能完全实现三维地球空间向有界二维平面的转换。为解决Web墨卡托投影的这一缺陷,本文提出一种新的混合投影方案,构建地理空间经纬度全部数值空间与二维瓦片平面空间之间、点对之间的映射关系。
为了方便瓦片的划分,仍然将投影坐标范围定义在[-1,1]×[-1,1]之内,在y接近±1时,也就是说|y|大于一个阈值y0,足够接近极点时,采用经纬度线性映射,以覆盖高纬度至极点地理范围;而|y|小于y0时,采用Web墨卡托投影,以达到近似等角投影的目的。因此,y0需要足够大,才能保证大多数非高纬度地区的等角投影。在考虑到这个要求的基础上,为计算方便,首先要确定y0的值。如果采用本文2.1中的瓦片划分规则,当瓦片的级别为4时,最后一行瓦片的最小y值,以及第一行瓦片的最大y值为±0.875,因此取y0=0.875。这样,0~3级的瓦片均跨过此边界,处理时相对复杂,但这类瓦片数量很少,对应用影响较小。4级以上的瓦片,或者按经纬度线性映射处理,或者按Web墨卡托投影计算,均不可能跨越该边界,大大简化计算。
取y0=0.875,可通过式(2)得φ0≈82.676°,可定义投影正算算式为
y0=0.875,
(4)
当|φ|小于φ0时,式(4)与Web墨卡托投影算式计算结果完全一致,当|φ|大于或等于φ0时,y值将会从±y0线性过渡到±1,混合投影实现地理范围[-180°,180°]×[-90°,90°]到矩阵空间[-1,1]×[-1,1]的映射。当|φ|>φ0时,混合投影不能维持等角投影的特性,但是此纬度范围不属于重点关注区域,对实际应用影响较小。改进的Web墨卡托投影反变换算式为
(5)
2瓦片地图金字塔设计
地图投影确定后,还需要设计瓦片地图的瓦片大小、划分规则,才能构建完整的瓦片地图金字塔。
2.1瓦片金字塔划分规则
通常采用瓦片金字塔的方式改进和优化海量地理空间数据的无缝高速浏览,瓦片金字塔需要定义瓦片大小、划分规则等。本文定义瓦片分块规则如下:给定N为瓦片级别,瓦片行列数均为2N,瓦片块数T与N存在关系:T=4N。将整个投影空间
原点设为(0,0),坐标范围设为[-1,1]×[-1,1],任意瓦片(N,X,Y)对应的投影坐标范围为
(6)
其中,N∈{0,1,2,3,…}。对任意级别N与N+1存在关系:级别N下的任意瓦片(N,X,Y),与级别N+1下的4块瓦片(N+1, 2X, 2Y),(N+1, 2X+1, 2Y),(N+1, 2X, 2Y+1)和(N+1, 2X+1, 2Y+1)所构成的地理范围相同,(N,X,Y)称为父瓦片,其他称为子瓦片,构成层级关系,根据瓦片级别建立以(0, 0, 0)为根结点的瓦片金字塔。
2.2影像瓦片金字塔
影像瓦片是地图可视化过程中的调度对象,瓦片尺寸太大会使调度粒度过粗,造成网络和I/O带宽资源浪费;瓦片尺寸过小会大幅增加网络请求数,导致响应效率降低。本文定义所有影像瓦片的像素尺寸为256×256。
根据式(6)计算瓦片的投影坐标边界,以像素中心为基准点,推导瓦片(N,X,Y)中第S列,第T行像素(S,T)对应投影坐标为
(7)
其中,S=0,1,…,255;T=0,1,…,255。瓦片像素投影坐标推算如图1所示。
图1 影像瓦片示意图
瓦片的分辨率随着瓦片的级别增加而增加。当瓦片级别为N时,经度方向的分辨率为
(8)
单位为:度/像素。
假定影像以经纬度形式表示空间位置信息,影像瓦片计算和获取过程如下:
1) 结合分辨率要求,根据式(8)反算待浏览瓦片的最高级别N;
2) 根据式(4)将影像的经纬度坐标范围转化为投影坐标范围;
3) 根据式(6)计算影像级别n覆盖的瓦片,其中n<=N;
4) 根据式(7)和式(5)计算影像覆盖的任意瓦片的每一像素对应的经纬度坐标,在经纬度影像里获得插值结果。图2所示为影像瓦片金字塔构建过程。
图2 影像瓦片金字塔创建示意图
上述瓦片的剖分方法,形式上和采用墨卡托投影的WMTS瓦片剖分类似,但是,因为使用混合投影,相对于传统墨卡托投影瓦片,覆盖高纬度乃至到极点的地理范围;相对于传统采用经纬度的WMTS瓦片,每个瓦片都是近似等角映射,局部角度变形很小,横纵分辨率基本相同。因此,该方案兼有两种传统瓦片的优点。
2.3DEM瓦片金字塔
DEM数据主要应用于三维地形可视化,瓦片化是DEM数据应用于三维地形可视化之前的必要过程。本文使用Chunked Lod方法[9-11]实现三维地形可视化,同时根据Chunked Lod方法进行DEM瓦片金字塔的优化设计。
Chunked Lod方法构建全球地形数据的四叉树瓦片结构,每个四叉树节点由地形块构成,每个地形块由高程数据生成。第0级瓦片地形块覆盖整个地球表面,瓦片数为1;第1级瓦片地形块将全球分为2行2列,瓦片数为4;第2级瓦片地形块将全球分为4行4列,瓦片数为16,以此类推,第N级瓦片地形块将全球分为2N行2N列,瓦片数为4N。由于网格过密会导致绘制效率低下,通过实验确定每个地形块的合适顶点数为17×17个。为了在地形块构建时计算更符合地形状况的平滑的地面法向量,除了提供地形块本身包含的高程点集,还需要地形块边界外一定范围内且能包围地形块的高程点集[12]。
鉴于17×17的瓦片数据量较小,将瓦片和地形块级别形成对应关系,会导致数据调度过于零碎,影响调度效率。因此,构建边界和内部包含257×257个高程点的DEM瓦片是较为合理的做法。当地形块级别L=0时,由于视点距离远,地形精细度低,高程几乎无法通过地形图表示,认为高程为0;当地形块级别L≥4时,L级地形块在投影坐标系下高程点与L-4级DEM瓦片的高程点间距相同且重合,因此可以复用第L-4级的地形块中一部分高程数据,一块L-4级DEM瓦片能为16块L级地形块提供高程数据。当L-4大于DEM瓦片的最高级别时,根据最高级别瓦片的一部分高程数据,采用双三次插值[11]计算相关高程点的值,此时,需要提供DEM瓦片高程点值需要具有范围外额外两圈高程点。
根据以上分析,本文设计满足条件的DEM瓦片结构,每个瓦片包含131×131个高程点,同时,为了保证每个瓦片地形块能完整地实现三维平滑地形可视化,每个瓦片相关的高程点还应包括瓦片外围两周能包围瓦片矩形的高程点集,瓦片高程点集如图3所示。
按照此法则,DEM瓦片每个高程点(S,T)对应的投影坐标为
Clamp(x)=Min[Max(x,-1),1].
(8)
其中,S=-2,-1,…,258;T=-2,-1,…,258;mod 2保证范围外额外高程点在经度±180°时环绕;Clamp函数保证范围外高程点纬度不超出±90°。
DEM瓦片的生成过程与影像瓦片类似,但是在DEM瓦片金字塔的构建过程中需要为每一瓦片增加其外围一定数量的高程点集。本文中DEM父瓦片的生成以子瓦片及其相邻的16个瓦片为基准,以构建完整的父瓦片高程点集。同时,瓦片的高程点集以压缩形式储存,任意高程值H被量化为24位非负整数Q,量化算式如下
Q=Round[256(H+32 768)].
(9)
高程值H位于-32 768 m到32 767 m之间时,经过转化后的量化误差不超过1/512 m,并且量化值位数始终小于等于24位,此外,当某点实际不表示任何有意义的高程值时,规定Q=16 777 215。经过量化的24位高程值被拆分为3个8位通道,采用PNG格式压缩存储,由于相邻高程值往往变化较小,采用PNG格式能够通过相邻像素预测实现有效压缩。
和影像瓦片类似,该DEM瓦片也具有影像瓦片类似的优点。除此之外,针对三维平滑地形显示,因为WMTS等常见瓦片由于瓦片之间并无重叠,并且高程点不能完全和三维地形网格点对应,需要进行拼接和插值才能满足需求,处理比较复杂。而瓦片的具有部分重叠机制以及优化的高程点规则设计,使得瓦片可以很直接地应用于三维地
图3 DEM瓦片示意图
形生成,降低三维平滑地型显示处理的复杂度,提高瓦片数据调度的效率。
3瓦片地图服务验证与试验
为了验证改进Web墨卡托投影及瓦片金字塔设计的可行性,本文设计并实现瓦片地图服务系统,为二维地图和三维可视化场景提供高效的瓦片地图服务。
3.1瓦片地图服务系统设计
瓦片地图服务系统类似于WMS-T的实现机制,并在两个方面做了优化。其一是每个级别和每个图幅(根据一定规则划分的经纬度范围)使用独立的数据库表格,以提高瓦片数据的检索效率;其二,采用LRU[14]策略实现服务器内存缓存空间的释放和瓦片数据的更新,以进一步提高服务器响应速度。
3.2效果验证和系统实现
针对改进的Web墨卡托投影和新的影像瓦片金字塔构建方法,对传统按照经纬度瓦片实现的三维地形可视化程序进行改造,每个地形块直接对应一个新瓦片。虽然直接采用传统Web墨卡托投影的瓦片也可以进行类似改造,但是由于投影无法表达高纬度地区,使高纬度地区显示不完整,影响可视化效果。而用文中提出的投影可以避免这个问题。
图4中,左侧图片是采用传统Web墨卡托投影的影像地图瓦片作为纹理进行三维可视化时的效果图,由于无法表达高纬度地区,在北极地区出现了空洞(见图上白色区域);右侧图片是采用改进Web墨卡托投影的影像地图瓦片三维可视化的效果图,可以看到北极地区的空洞已经被有效填补。
图4 影像地图瓦片可视化效果图(Web墨卡托投影改进前后)
图5 二维地图(左)和三维地球(右)网络地图服务示意图
无论是二维地图应用还是三维地球应用,根据本文设计的方案,影像地图瓦片都是一套地图瓦片数据。因此,对于二维也采用类似三维地球的可视化实现,只是将球面地形改成平面地形,然后采用GPU加速方式进行绘制。由于文中的瓦片方案在较低纬度时投影和传统Web墨卡托投影一致,因此这部分范围显示效果基本和传统瓦片一致,但是对于高纬度地区到极地,也能完整表达和绘制。图5显示了二维地图和三维地球应用地图服务访问的原型系统示意图。在实验环境中,服务器和客户端均为Core i5 750,内存2 GB,普通7 200转机械硬盘,客户端显卡Geforce GTS450,均为按当前标准较低的配置;服务器和客户端通过1 Gbps以太网络直连;覆盖全球的数据分辨率50 m,实际测试显示局部分辨率达到0.2 m。实验表明,网络环境下,二维地图和三维地图应用在同一套影像地图瓦片支持下,地图显示效果较好,结合DEM瓦片数据,地形显示平滑,二三维每秒可绘制50~60帧,地图数据响应和绘制速度较快。1 920×1 080分辨率的地图视窗内0.5 s可以实现二维地图和三维地球场景中影像和DEM数据的同步调度和可视化。
由瓦片投影定义和剖分方式可知,达到同等分辨率所需要的储存数据量和传统Web墨卡托投影瓦片相同,但是一套瓦片的方案就可以实现二三维可视化,相对于两套数据瓦片,极大程度节约储存成本。
4结论
本文提出一种改进的Web墨卡托地图投影方法,在此基础上根据瓦片金字塔划分规则改进影像和DEM数据的瓦片化方法,设计并实现瓦片地图服务系统。实验结果证明,该方法具有较高的实用性,为二维地图和三维地球可视化场景提供共用一套影像地图瓦片数据的方案,极大程度节约了存储成本,同时解决了高纬度地区地图表达的问题,瓦片地图数据调度效率和可视化效果较好。
参考文献:
[1]韦胜.ArcEngine环境下实现瓦片地图的访问与拼接[J].武汉大学学报(信息科学版),2012,37(6):737-740.
[2]许虎,聂云峰,舒坚.基于中间件的瓦片地图服务设计与实现[J].地球信息科学学报,2010,12(4):562-567.
[3]马静谨,李强.基于瓦片数据的DEM构建与显示[J].测绘工程,2007,16(2):27-29.
[4]黄瑞阳,郭建忠,成毅,等.基于网络的三维影像数据处理与分发[J].测绘工程,2009,18(6):44-48.
[5]刘兴明,汤力,王大雪.基于Silverlight技术的插件式GIS Server架构研究[J].测绘工程,2015,24(6):70-73.
[6]王敏,张昆.基于THREE.JS和Google Map API的网页交互可视化技术:以等角航线为例[J].测绘与空间地理信息,2015,38(7):158-161.
[7]杜清运,虞昌彬,任福.利用嵌套金字塔模型进行瓦片地图数据组织[J].武汉大学学报(信息科学版),2011,36(5):564-567.
[8]European Petroleum Survey Group (EPSG),EPSG Geodetic Parameter Dataset[EB/OL],http://epsg-registry.org.
[9]SNYDER,JOHN P.Map Projections - A Working Manual[M].Washington,D.C:United States Government Printing Office,1987.
[10] HILL D.An efficient,hardware-accelerated,level-of-detail rendering technique for large terrains[D].Toronto,Canada:University of Toronto,2002.
[11] ULRICH T.Rendering massive terrains using chunked level of detail control[M].Course Notes of ACM SIGGRAPH,Volume 35,2002.
[12] THURRNER G,WUTHRICH C A.Computing Vertex Normals from facet Normals[J],Journal of Graphics Tools,1999,4(2):1-6.
[13] WIKIPEDIA,Bicubic interpolation[EB/OL],http://en.wikipedia.org/wiki/Bicubic_interpolation.
[14] WONG K Y.Web cache replacement policies:a pragmatic approach[J],Network,IEEE,2006,20(1):28-34.
[责任编辑:张德福]
摘要:为解决网络地理信息应用二、三维一体化显示需要,通常做法是处理并存储两套不同投影的地图瓦片数据,一套采用Web墨卡托投影,面向二维地图应用;一套采用经纬度坐标,面向三维地图应用。这在一定程度上降低数据处理效率、浪费存储资源。文中提出一种改进Web墨卡托地图投影方法,并设计一种面向影像地图和DEM数据的瓦片化方法。方法生成的影像地图瓦片数据既能同时面向二维地图和三维可视化场景使用,又有效解决Web墨卡托投影不支持高纬度地区栅格地图表达的缺陷。将新型的地图投影和数据模型通过瓦片地图服务系统进行验证,证明这种新改进的投影和影像,以及DEM瓦片化方法具备较高的实用性。
关键词:改进Web墨卡托投影;瓦片;影像;DEM;网络地图服务
Design and implementation of tiled map services based on improved Web Mercator map projectionLI Heyuan1,2,CHEN Gang1
(1.School of Geospatial Information,Information Engineering University,Zhengzhou 450052,China;2.State Key Laboratory of Geo-Information Engineering,Xi’ an 710054,China)
Abstract:In order to meet the integrated visualization requirements of two and three-dimension within network geographic information application,the usual practice is to process and store two sets of map tile data with different projection. One is Web Mercator projection for two-dimensional map application,and the other is Lat-Lon projection for 3D map application.This approach reduces the efficiency of data processing and storage resources waste dramatically. This paper proposes an improved Web Mercator map projection.And a tiling method of image map and DEM data is designed according to this new projection.The generated image map pyramid by this method can be used in 2D map and 3D visualization scene. It solves the problem that Web Mercator projection does not support map expression in high latitude area effectively. This model is validated through a tile map service system. The results prove the new improved projection, image, DEM tiling method is adaptable for the practice.
Key words:improved Web Mercator map projection;tile;image;DEM;web map service
作者简介:李鹤元(1976-),男,高级工程师,博士研究生.
基金项目:国家自然科学基金资助项目(41201469;41071297)
收稿日期:2014-08-22;修回日期:2015-08-21
中图分类号:TP317
文献标识码:A
文章编号:1006-7949(2016)02-0011-06