張廣春,仲偉政
(濟(jì)南市勘察測繪研究院,山東 濟(jì)南 250013)
Study on the Application of Tile Map Technology Based on ArcGIS Engine
ZHANG Guangchun,ZHONG Weizheng
?
基于ArcGIS Engine組件實(shí)現(xiàn)瓦片地圖的應(yīng)用
張廣春,仲偉政
(濟(jì)南市勘察測繪研究院,山東 濟(jì)南 250013)
Study on the Application of Tile Map Technology Based on ArcGIS Engine
ZHANG Guangchun,ZHONG Weizheng
摘要:在桌面端,針對瓦片地圖數(shù)據(jù)存儲特點(diǎn),采用ArcGIS Engine的自定義圖層,實(shí)現(xiàn)了瓦片地圖的動(dòng)態(tài)加載與投影;利用異步訪問技術(shù)、線程池技術(shù),實(shí)現(xiàn)了服務(wù)器瓦片數(shù)據(jù)的訪問和本地緩存;并在濟(jì)南高新區(qū)綜合地下管線信息管理系統(tǒng)建設(shè)中進(jìn)行了具體的應(yīng)用。
關(guān)鍵詞:瓦片地圖;ArcGIS Engine;WebGIS
一、引言
瓦片地圖是將配置好的一定坐標(biāo)范圍的矢量地圖,按照固定的若干比例尺(瓦片級別)和指定圖片尺寸,切成若干行及列的正方形圖片,并以指定的格式保存成圖像文件,按照統(tǒng)一的命名規(guī)則和組織方式進(jìn)行存儲,形成金字塔模型的地圖圖片靜態(tài)緩存。瓦片地圖結(jié)構(gòu)如圖1所示。目前國內(nèi)對矢量地圖的切圖研究比較多[1-3]。
瓦片地圖切圖規(guī)則參考具體如下[4]:
1) 地圖瓦片分塊的起始點(diǎn)從西經(jīng)180°、北緯90°開始,向東、向南行列遞增。
2) 地圖瓦片分塊大小為256像素×256像素。
3) 地圖瓦片數(shù)據(jù)采用PNG格式。
圖1 瓦片地圖結(jié)構(gòu)
在單機(jī)運(yùn)行或局域網(wǎng)內(nèi)部運(yùn)行GIS系統(tǒng),采用地圖瓦片技術(shù)比較少。但是,隨著GIS技術(shù)的推廣,以及天地圖在全國各省市級節(jié)點(diǎn)的建立及應(yīng)用,基于GIS來實(shí)現(xiàn)具體業(yè)務(wù)的系統(tǒng)越來越多,如何降低業(yè)務(wù)系統(tǒng)中地理信息數(shù)據(jù)采集制作的成本,同時(shí)解決數(shù)據(jù)的安全保密及版權(quán)等問題,已經(jīng)成為目前亟須解決的問題[5-6]。
在具體的業(yè)務(wù)系統(tǒng)應(yīng)用中,與WebGIS相比,桌面端GIS具有更豐富的功能和強(qiáng)大的分析處理能力。WebGIS盡管可以調(diào)用服務(wù)器端上的服務(wù)來實(shí)現(xiàn)一定的分析功能,但是更加復(fù)雜的、專業(yè)性的分析處理,尤其是針對一些大數(shù)據(jù)量的訪問或本身具有保密性質(zhì)的業(yè)務(wù)需求應(yīng)用,還需要在本地機(jī)器處理運(yùn)行。
瓦片地圖數(shù)據(jù)在對公眾使用或應(yīng)用到具體的業(yè)務(wù)過程中時(shí),可以先期進(jìn)行一些必要的脫密處理,把矢量地圖中一些涉及國家秘密的數(shù)據(jù)進(jìn)行處理和過濾。另外,瓦片地圖可以采用數(shù)字水印技術(shù)[7-9],實(shí)現(xiàn)瓦片地圖數(shù)據(jù)版權(quán)信息的保護(hù),在地理信息資源共享的同時(shí),對地理信息數(shù)據(jù)的版權(quán)進(jìn)行有效的保護(hù)。
把WebGIS的瓦片地圖技術(shù)應(yīng)用到桌面端的GIS系統(tǒng)中,一方面解決了地圖數(shù)據(jù)安全保密問題,另一方面解決了業(yè)務(wù)系統(tǒng)只能運(yùn)行于局域網(wǎng)或單機(jī)上導(dǎo)致業(yè)務(wù)系統(tǒng)的底圖數(shù)據(jù)無法獲取的問題。因此,基于ArcGIS Engine組件在桌面端采用瓦片地圖技術(shù),可以有效解決地圖數(shù)據(jù)成本和地圖數(shù)據(jù)版權(quán)保護(hù)的問題,有利于地理信息系統(tǒng)應(yīng)用的推廣,且對地理信息資源的共享使用起到積極推動(dòng)作用。
二、基于瓦片地圖數(shù)據(jù)訪問設(shè)計(jì)
目前,開源社區(qū)CodePlex里的ArcBruTile項(xiàng)目,解決了在ArcMap里面實(shí)現(xiàn)OpenStreetMap、Bing、SpatialCloud等在線地圖的瀏覽,但是該開源項(xiàng)目是基于ArcMap設(shè)計(jì)的,采用的是ArcMap工具菜單的形式。本文在ArcBruTile開源項(xiàng)目的基礎(chǔ)上,采用ArcGIS Engine組件實(shí)現(xiàn)了瓦片數(shù)據(jù)在線及離線模式下的訪問加載,同時(shí)支持天地圖網(wǎng)站數(shù)據(jù)訪問加載。
ArcGIS Engine中數(shù)據(jù)的加載是以圖層的方式組織的[10],包括矢量數(shù)據(jù)圖層、柵格數(shù)據(jù)圖層等,放到地圖容器MapControl控件中。瓦片地圖數(shù)據(jù)是以PNG或JPG格式保存的柵格圖像,在地圖的繪制過程中可以按照柵格數(shù)據(jù)處理。瓦片大小以像素為單位,沒有具體的空間參照系。但在桌面GIS系統(tǒng)中,必須具有空間參照系才能和其他的矢量數(shù)據(jù)進(jìn)行疊加顯示。因此瓦片地圖在加載的同時(shí)需計(jì)算瓦片柵格圖像的空間位置。本文以C#語言設(shè)計(jì)實(shí)現(xiàn)了TileMapLayer 類,該類繼承于ILayer、ILayer Effect等接口。TileMapLayer 類結(jié)構(gòu)如圖2所示。
圖2 TileMapLayer 類結(jié)構(gòu)
定義TileMapHelper類,實(shí)現(xiàn)依據(jù)瓦片地圖數(shù)據(jù)配置文件,結(jié)合當(dāng)前地圖訪問的MapControl空間視圖大小,計(jì)算當(dāng)前顯示的地圖瓦片數(shù)據(jù),并從服務(wù)器端采用異步多線程方式,緩存所需要的瓦片數(shù)據(jù)。在緩存瓦片數(shù)據(jù)之前,依據(jù)當(dāng)前瓦片數(shù)據(jù)更新周期設(shè)置,更新當(dāng)前的瓦片數(shù)據(jù),并保存到本地硬盤中。TileMapHelper類定義如圖3所示。
圖3 TileMapHelper 類結(jié)構(gòu)
TileMapLayer 類重寫了ILayer接口的Draw方法,繪制了由TileMapHelper實(shí)例返回的當(dāng)前MapControl窗口大小和地圖圖層的級數(shù)的瓦片數(shù)據(jù),實(shí)現(xiàn)了瓦片數(shù)據(jù)的加載和瀏覽。
采用ArcGIS Engine組件訪問流程如圖4所示。
圖4 ArcGIS Engine組件訪問流程
三、濟(jì)南高新區(qū)綜合地下管線信息管理系統(tǒng)建設(shè)
濟(jì)南高新區(qū)綜合地下管線信息管理系統(tǒng)建設(shè)要求系統(tǒng)運(yùn)行在用戶單位的內(nèi)部網(wǎng)絡(luò)環(huán)境中,系統(tǒng)設(shè)計(jì)采用ArcGIS Engine組件、C#開發(fā)語言。系統(tǒng)實(shí)現(xiàn)了濟(jì)南市瓦片地圖數(shù)據(jù)的離線加載和瀏覽,以及瓦片數(shù)據(jù)的定期更新;并在此基礎(chǔ)之上疊加了高新區(qū)綜合地下管線數(shù)據(jù)和高新區(qū)興趣點(diǎn)(POI)數(shù)據(jù),實(shí)現(xiàn)了對整個(gè)高新區(qū)綜合地下管線的管理工作,提高了高新區(qū)地下管線管理的信息化水平。
四、結(jié)束語
本文采用ArcGIS Engine組件,實(shí)現(xiàn)了桌面GIS對濟(jì)南天地圖瓦片數(shù)據(jù)的加載和瀏覽,并應(yīng)用到具體的綜合管線業(yè)務(wù)環(huán)境中,同時(shí)在系統(tǒng)中加載了興趣點(diǎn)信息,實(shí)現(xiàn)了道路、單位和地名的查詢定位。桌面GIS實(shí)現(xiàn)瓦片地圖數(shù)據(jù)的運(yùn)用,降低了業(yè)務(wù)系統(tǒng)地理空間數(shù)據(jù)的建設(shè)成本;同時(shí)可以利用桌面GIS的強(qiáng)大數(shù)據(jù)處理和分析能力,實(shí)現(xiàn)用戶的業(yè)務(wù)需求,具有較好的應(yīng)用前景。
參考文獻(xiàn):
[1]許虎,聶云峰,舒堅(jiān).基于中間件的瓦片地圖服務(wù)設(shè)計(jì)與實(shí)現(xiàn)[J].地球信息科學(xué)學(xué)報(bào),2010,12(4):562-567.
[2]王小軍,劉璐.基于ArcGIS Engine進(jìn)行瓦片式切圖的技術(shù)研究[J].測繪與空間地理信息,2010,33(4):49-51.
[3]趙大龍,孫恒宇.地圖切片技術(shù)分析與簡單實(shí)現(xiàn)[J].測繪與空間地理信息,2010,33(1):116-118.
[4]國家測繪地理信息局.CH/Z 9011-2011 地理信息公共服務(wù)平臺電子地圖數(shù)據(jù)規(guī)范[S].北京:測繪出版社,2012.
[5]韋勝.ArcEngine環(huán)境下實(shí)現(xiàn)瓦片地圖的訪問與拼接[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2012,37(6):737-740.
[6]黃夢龍.瓦片地圖技術(shù)在桌面端GIS中的應(yīng)用[J].地理空間信息,2011,9(4):149-151.
[7]任娜,朱長青.一種抗拼接的瓦片遙感數(shù)據(jù)水印算法[J].測繪通報(bào),2012(S1):491-493.
[8]曹劉娟,門朝光,孫建國.基于空間特征的二維矢量地圖可逆水印算法原理[J]. 測繪學(xué)報(bào), 2010,39(4):422-427.
[9]閔連權(quán).一種魯棒的矢量地圖數(shù)據(jù)的數(shù)字水印[J]. 測繪學(xué)報(bào), 2008, 37(2):262-267.
[10]劉仁義,劉南.ArcGIS 開發(fā)寶典-從入門到精通[M].北京:科學(xué)出版社,2006:35-37.
引文格式: 張廣春,仲偉政. 基于ArcGIS Engine組件實(shí)現(xiàn)瓦片地圖的應(yīng)用[J].測繪通報(bào),2015(3):115-116.DOI:10.13474/j.cnki.11-2246.2015.0092
作者簡介:張廣春(1977—),男,碩士,工程師,研究方向?yàn)榈乩硇畔⑾到y(tǒng)應(yīng)用開發(fā)。E-mail:zgc08@163.com
基金項(xiàng)目:住房和城鄉(xiāng)建設(shè)部科學(xué)技術(shù)項(xiàng)目(2012-K8-17)
收稿日期:2014-02-17
中圖分類號:P208
文獻(xiàn)標(biāo)識碼:B
文章編號:0494-0911(2015)03-0115-02