陳 珺
(江蘇省基礎(chǔ)地理信息中心,江蘇南京210013)
隨著WebGIS技術(shù)的日趨成熟,網(wǎng)絡(luò)地圖的應(yīng)用也越發(fā)廣泛。這些應(yīng)用技術(shù)雖各有不同,但所開發(fā)出的網(wǎng)絡(luò)地圖的功能卻近乎相似。在地圖展示方面,現(xiàn)有的網(wǎng)絡(luò)地圖基本都采用了ArcGISServer、MapServer、GeoServer等生成地圖緩存和實(shí)現(xiàn)地圖發(fā)布,對(duì)于出版地圖內(nèi)容的展示則效率不高。
在簡(jiǎn)要分析OpenScales技術(shù)的基礎(chǔ)上,本文提出以O(shè)penScales框架實(shí)現(xiàn)出版地圖的展示,為出版地圖在WebGIS環(huán)境中的展示提供了新的思路。本文首先探討了OpenScales開發(fā)框架所涉及的關(guān)鍵技術(shù),進(jìn)而探討了在OpenScales開發(fā)框架下出版地圖數(shù)據(jù)的組織及技術(shù)實(shí)現(xiàn),并以江蘇地圖網(wǎng)為例進(jìn)行分析。
OpenScales是一個(gè)基于LGPL協(xié)議的開源前臺(tái)地圖框架,支持多種標(biāo)準(zhǔn)的地圖服務(wù),如 WMS、WFS、WMTS等。由于 OpenScales是基于 Action Script 3和Flex開發(fā)的,通常在 Flex框架中嵌入OpenScales框架,以實(shí)現(xiàn)地圖展示功能。
OpenScales具有以下特點(diǎn):
(1)支持多種圖層
OpenScales可以集成多種基于OGC標(biāo)準(zhǔn)的地圖服務(wù)。由于OpenScales對(duì)國際標(biāo)準(zhǔn)的高度支持,從而使OpenScales可以與各種地圖服務(wù)軟件協(xié)同使用,如 ArcGISServer、MapServer、GeoServer等。
(2)強(qiáng)大的矢量數(shù)據(jù)描繪功能
利用FlashPlayer已有的功能,使得OpenScales具有強(qiáng)大的矢量數(shù)據(jù)描繪功能。OpenScales可以實(shí)現(xiàn)對(duì)矢量數(shù)據(jù)的編輯、描繪等功能。OpenScales支持的矢量數(shù)據(jù)包括點(diǎn)、線、面、多點(diǎn)、多線、多面等。
(3)內(nèi)置的地圖控件
OpenScales提供了豐富的地圖控件,實(shí)現(xiàn)縮放、漫游、測(cè)量、標(biāo)注等功能。OpenScales將這些功能進(jìn)行了封裝。
(4)支持跨平臺(tái)
由于 OpenScales是基于 FlashPlayer的,因此OpenScales可以支持多種平臺(tái),包括 Windows、Linux等。
(1)Flex
Flex是一個(gè)免費(fèi)的開源框架,用于構(gòu)建交互性較高、具有較強(qiáng)表現(xiàn)力的Web應(yīng)用程序。Flex提供了現(xiàn)代的、基于標(biāo)準(zhǔn)的語言和編程模型,支持公共設(shè)計(jì)模式;使用基于XML的MXML語言描述用戶界面布局和行為,使用面向?qū)ο蟮腁ctionScript 3語言創(chuàng)建客戶端邏輯。Flex還包含了一個(gè)豐富的組件庫,用于創(chuàng)建RIA(Rich Internet Application)應(yīng)用程序。本文需在Flex中嵌入OpenScales開發(fā)框架。
(2)Python
Python是面向?qū)ο蟮慕忉屝猿绦蛘Z言,具有豐富和強(qiáng)大的類庫。在本文中,出版地圖的原始格式是經(jīng)掃描形成的JPG圖片,圖片的尺寸較大??紤]到顯示效率,采用基于Python開發(fā)的切圖程序?qū)Τ霭娴貓D進(jìn)行分級(jí)裁切處理,按照地圖的尺寸將出版地圖分別裁切成4級(jí)或5級(jí),生成PNG格式的切片。代碼如下:
(3)XML
XML主要用于存儲(chǔ)數(shù)據(jù),更注重?cái)?shù)據(jù)本身。易用性使其可在任何應(yīng)用程序中方便地讀寫數(shù)據(jù)。
本文采用XML文件組織所有出版地圖,以目錄樹的形式展現(xiàn)在頁面中。目錄樹按圖冊(cè)、圖集、單張地圖和專題地圖的形式組織。圖冊(cè)、圖集中需包含二級(jí)節(jié)點(diǎn),展開后為其中包含的所有單張圖幅。XML文件組織如圖1所示。
圖1 XML文件的組織
通過對(duì)圖幅的組織,并在OpenScales框架中調(diào)用該XML文件,就可以實(shí)現(xiàn)對(duì)相應(yīng)圖幅的調(diào)用。
(1)數(shù)據(jù)組織
由于涉及大量的出版地圖、經(jīng)切片生成的瓦片數(shù)據(jù)以及點(diǎn)位信息數(shù)據(jù),因此數(shù)據(jù)組織是非常重要的。從以下3個(gè)方面分別探討數(shù)據(jù)組織。
1)出版地圖。通過對(duì)出版圖冊(cè)排序建立XML格式的索引樹,從而實(shí)現(xiàn)索引樹和地圖瓦片數(shù)據(jù)之間的一一對(duì)應(yīng)關(guān)系。
2)瓦片數(shù)據(jù)。所有瓦片數(shù)據(jù)統(tǒng)一存放在一個(gè)固定的目錄下。在該目錄下,所有切片以其所在圖冊(cè)中的頁碼按順序存儲(chǔ)。為了實(shí)現(xiàn)出版地圖與目錄樹之間的對(duì)應(yīng)關(guān)系,需要為出版地圖單獨(dú)建立虛擬目錄,通過URL訪問出版地圖。
3)點(diǎn)位信息。點(diǎn)位信息主要是針對(duì)疊加在出版地圖上的專題興趣點(diǎn)。這些興趣點(diǎn)的相關(guān)數(shù)據(jù)主要包括點(diǎn)位坐標(biāo)、點(diǎn)位圖片、圖片尺寸、相關(guān)文字介紹等,以TEXT文本的形式存儲(chǔ)。
由于原始點(diǎn)位坐標(biāo)是在ArcGISDesktop環(huán)境中JPG格式的地圖上采集的,為了使點(diǎn)位數(shù)據(jù)能夠在WebGIS環(huán)境中準(zhǔn)確疊加到出版地圖上,還需要進(jìn)行坐標(biāo)變換,計(jì)算點(diǎn)位數(shù)據(jù)在屏幕坐標(biāo)系中的坐標(biāo)。采用以下公式轉(zhuǎn)換
(2)Python、OpenScales、XML 相結(jié)合
本文采用Python與XML相結(jié)合的技術(shù),并在客戶端基于開源的OpenScales引擎實(shí)現(xiàn)出版地圖的切片和展示。
通過對(duì)地圖集和地圖冊(cè)的分圖幅掃描,將每幅圖都保存為JPG格式,并根據(jù)該圖幅名稱和頁碼之間的對(duì)應(yīng)關(guān)系建立每一幅圖的索引表(Excel格式)。用Python切片程序?qū)⒊霭娴貓D裁切成瓦片形式,目錄組織按照XML的格式,以樹狀結(jié)構(gòu)進(jìn)行組織。通過將索引表轉(zhuǎn)換成XML格式,進(jìn)而在Open-Scales程序中通過訪問該索引表,實(shí)現(xiàn)對(duì)出版地圖的訪問。流程如圖2所示。
圖2 Python、OpenScales和XML相結(jié)合
OpenScales開發(fā)框架具有以下特點(diǎn):
1)OpenScales框架內(nèi)置了豐富的地圖控件,可以實(shí)現(xiàn)地圖展示、編輯、標(biāo)注功能。
2)OpenScales框架易于實(shí)現(xiàn)與其他相關(guān)技術(shù)的集成,如XML、.NET框架等,從而豐富地圖網(wǎng)站的功能。
3)出版地圖的展示性能主要取決于切片的數(shù)據(jù)量及單幅地圖的大小。在本文中,出版地圖采用的切片尺寸為256像素×256像素,可以滿足一般網(wǎng)絡(luò)環(huán)境中對(duì)地圖瀏覽速度的基本要求。
以江蘇地圖網(wǎng)中的出版地圖子系統(tǒng)為例,該系統(tǒng)是基于OpenScales框架開發(fā)的地圖展示系統(tǒng),提供了縮放、平移、標(biāo)注等功能。本文中,對(duì)江蘇省鄉(xiāng)村旅游圖經(jīng)Python切片生成瓦片,進(jìn)而在江蘇省鄉(xiāng)村旅游圖上以圖標(biāo)的形式疊加了全省的鄉(xiāng)村旅游景點(diǎn)。點(diǎn)擊任一景點(diǎn),都將以彈出框的形式顯示該景點(diǎn)的基本信息。圖3為鄉(xiāng)村旅游圖的界面。
圖3 出版地圖子系統(tǒng)
在一般的WebGIS環(huán)境中,出版地圖的顯示效率不高,應(yīng)用也較單一。針對(duì)該問題,本文提出在OpenScales框架下實(shí)現(xiàn)出版地圖展示。在分析Open-Scales開發(fā)框架特點(diǎn)的基礎(chǔ)上,探討了OpenScales開發(fā)框架所涉及的關(guān)鍵技術(shù),并進(jìn)一步探討了在Open-Scales框架下出版地圖數(shù)據(jù)的組織,以及所采用的技術(shù)實(shí)現(xiàn)方法。本文為出版地圖在WebGIS環(huán)境中的展示提出了新的思路,但也存在一定的不足。
[1]吳信才.面向網(wǎng)絡(luò)的新一代地理信息系統(tǒng)[M].北京:科學(xué)出版社,2009.
[2]高曉蓉,徐丹,雷瑛.基于Flex和REST服務(wù)的Web-GIS系統(tǒng)開發(fā):以隴西縣地理空間信息應(yīng)用系統(tǒng)為例[J].遙感技術(shù)與應(yīng)用,2011,26(1):123-127.
[3]張宏,溫永寧,劉愛利,等.地理信息系統(tǒng)算法基礎(chǔ)[M].北京:科學(xué)出版社,2006.