張廣春,仲偉政
(濟南市勘察測繪研究院,山東 濟南 250013)
Study on the Application of Tile Map Technology Based on ArcGIS Engine
ZHANG Guangchun,ZHONG Weizheng
?
基于ArcGIS Engine組件實現瓦片地圖的應用
張廣春,仲偉政
(濟南市勘察測繪研究院,山東 濟南 250013)
Study on the Application of Tile Map Technology Based on ArcGIS Engine
ZHANG Guangchun,ZHONG Weizheng
摘要:在桌面端,針對瓦片地圖數據存儲特點,采用ArcGIS Engine的自定義圖層,實現了瓦片地圖的動態加載與投影;利用異步訪問技術、線程池技術,實現了服務器瓦片數據的訪問和本地緩存;并在濟南高新區綜合地下管線信息管理系統建設中進行了具體的應用。
關鍵詞:瓦片地圖;ArcGIS Engine;WebGIS
一、引言
瓦片地圖是將配置好的一定坐標范圍的矢量地圖,按照固定的若干比例尺(瓦片級別)和指定圖片尺寸,切成若干行及列的正方形圖片,并以指定的格式保存成圖像文件,按照統一的命名規則和組織方式進行存儲,形成金字塔模型的地圖圖片靜態緩存。瓦片地圖結構如圖1所示。目前國內對矢量地圖的切圖研究比較多[1-3]。
瓦片地圖切圖規則參考具體如下[4]:
1) 地圖瓦片分塊的起始點從西經180°、北緯90°開始,向東、向南行列遞增。
2) 地圖瓦片分塊大小為256像素×256像素。
3) 地圖瓦片數據采用PNG格式。

圖1 瓦片地圖結構
在單機運行或局域網內部運行GIS系統,采用地圖瓦片技術比較少。但是,隨著GIS技術的推廣,以及天地圖在全國各省市級節點的建立及應用,基于GIS來實現具體業務的系統越來越多,如何降低業務系統中地理信息數據采集制作的成本,同時解決數據的安全保密及版權等問題,已經成為目前亟須解決的問題[5-6]。
在具體的業務系統應用中,與WebGIS相比,桌面端GIS具有更豐富的功能和強大的分析處理能力。WebGIS盡管可以調用服務器端上的服務來實現一定的分析功能,但是更加復雜的、專業性的分析處理,尤其是針對一些大數據量的訪問或本身具有保密性質的業務需求應用,還需要在本地機器處理運行。
瓦片地圖數據在對公眾使用或應用到具體的業務過程中時,可以先期進行一些必要的脫密處理,把矢量地圖中一些涉及國家秘密的數據進行處理和過濾。另外,瓦片地圖可以采用數字水印技術[7-9],實現瓦片地圖數據版權信息的保護,在地理信息資源共享的同時,對地理信息數據的版權進行有效的保護。
把WebGIS的瓦片地圖技術應用到桌面端的GIS系統中,一方面解決了地圖數據安全保密問題,另一方面解決了業務系統只能運行于局域網或單機上導致業務系統的底圖數據無法獲取的問題。因此,基于ArcGIS Engine組件在桌面端采用瓦片地圖技術,可以有效解決地圖數據成本和地圖數據版權保護的問題,有利于地理信息系統應用的推廣,且對地理信息資源的共享使用起到積極推動作用。
二、基于瓦片地圖數據訪問設計
目前,開源社區CodePlex里的ArcBruTile項目,解決了在ArcMap里面實現OpenStreetMap、Bing、SpatialCloud等在線地圖的瀏覽,但是該開源項目是基于ArcMap設計的,采用的是ArcMap工具菜單的形式。本文在ArcBruTile開源項目的基礎上,采用ArcGIS Engine組件實現了瓦片數據在線及離線模式下的訪問加載,同時支持天地圖網站數據訪問加載。
ArcGIS Engine中數據的加載是以圖層的方式組織的[10],包括矢量數據圖層、柵格數據圖層等,放到地圖容器MapControl控件中。瓦片地圖數據是以PNG或JPG格式保存的柵格圖像,在地圖的繪制過程中可以按照柵格數據處理。瓦片大小以像素為單位,沒有具體的空間參照系。但在桌面GIS系統中,必須具有空間參照系才能和其他的矢量數據進行疊加顯示。因此瓦片地圖在加載的同時需計算瓦片柵格圖像的空間位置。本文以C#語言設計實現了TileMapLayer 類,該類繼承于ILayer、ILayer Effect等接口。TileMapLayer 類結構如圖2所示。

圖2 TileMapLayer 類結構
定義TileMapHelper類,實現依據瓦片地圖數據配置文件,結合當前地圖訪問的MapControl空間視圖大小,計算當前顯示的地圖瓦片數據,并從服務器端采用異步多線程方式,緩存所需要的瓦片數據。在緩存瓦片數據之前,依據當前瓦片數據更新周期設置,更新當前的瓦片數據,并保存到本地硬盤中。TileMapHelper類定義如圖3所示。

圖3 TileMapHelper 類結構
TileMapLayer 類重寫了ILayer接口的Draw方法,繪制了由TileMapHelper實例返回的當前MapControl窗口大小和地圖圖層的級數的瓦片數據,實現了瓦片數據的加載和瀏覽。
采用ArcGIS Engine組件訪問流程如圖4所示。

圖4 ArcGIS Engine組件訪問流程
三、濟南高新區綜合地下管線信息管理系統建設
濟南高新區綜合地下管線信息管理系統建設要求系統運行在用戶單位的內部網絡環境中,系統設計采用ArcGIS Engine組件、C#開發語言。系統實現了濟南市瓦片地圖數據的離線加載和瀏覽,以及瓦片數據的定期更新;并在此基礎之上疊加了高新區綜合地下管線數據和高新區興趣點(POI)數據,實現了對整個高新區綜合地下管線的管理工作,提高了高新區地下管線管理的信息化水平。
四、結束語
本文采用ArcGIS Engine組件,實現了桌面GIS對濟南天地圖瓦片數據的加載和瀏覽,并應用到具體的綜合管線業務環境中,同時在系統中加載了興趣點信息,實現了道路、單位和地名的查詢定位。桌面GIS實現瓦片地圖數據的運用,降低了業務系統地理空間數據的建設成本;同時可以利用桌面GIS的強大數據處理和分析能力,實現用戶的業務需求,具有較好的應用前景。
參考文獻:
[1]許虎,聶云峰,舒堅.基于中間件的瓦片地圖服務設計與實現[J].地球信息科學學報,2010,12(4):562-567.
[2]王小軍,劉璐.基于ArcGIS Engine進行瓦片式切圖的技術研究[J].測繪與空間地理信息,2010,33(4):49-51.
[3]趙大龍,孫恒宇.地圖切片技術分析與簡單實現[J].測繪與空間地理信息,2010,33(1):116-118.
[4]國家測繪地理信息局.CH/Z 9011-2011 地理信息公共服務平臺電子地圖數據規范[S].北京:測繪出版社,2012.
[5]韋勝.ArcEngine環境下實現瓦片地圖的訪問與拼接[J].武漢大學學報:信息科學版,2012,37(6):737-740.
[6]黃夢龍.瓦片地圖技術在桌面端GIS中的應用[J].地理空間信息,2011,9(4):149-151.
[7]任娜,朱長青.一種抗拼接的瓦片遙感數據水印算法[J].測繪通報,2012(S1):491-493.
[8]曹劉娟,門朝光,孫建國.基于空間特征的二維矢量地圖可逆水印算法原理[J]. 測繪學報, 2010,39(4):422-427.
[9]閔連權.一種魯棒的矢量地圖數據的數字水印[J]. 測繪學報, 2008, 37(2):262-267.
[10]劉仁義,劉南.ArcGIS 開發寶典-從入門到精通[M].北京:科學出版社,2006:35-37.
引文格式: 張廣春,仲偉政. 基于ArcGIS Engine組件實現瓦片地圖的應用[J].測繪通報,2015(3):115-116.DOI:10.13474/j.cnki.11-2246.2015.0092
作者簡介:張廣春(1977—),男,碩士,工程師,研究方向為地理信息系統應用開發。E-mail:zgc08@163.com
基金項目:住房和城鄉建設部科學技術項目(2012-K8-17)
收稿日期:2014-02-17
中圖分類號:P208
文獻標識碼:B
文章編號:0494-0911(2015)03-0115-02