徐擁國,錢佳智,陳榮
(浙江有色測(cè)繪院,浙江紹興 312000)
基于.NET的GIS地圖符號(hào)庫的設(shè)計(jì)與實(shí)現(xiàn)
徐擁國?,錢佳智,陳榮
(浙江有色測(cè)繪院,浙江紹興 312000)
地圖符號(hào)是數(shù)字制圖的基礎(chǔ),尤其在地理信息的系統(tǒng)中,表達(dá)地圖內(nèi)容離不開地圖符號(hào),本文對(duì)地圖符號(hào)的概念、特點(diǎn)作了簡要概述,在符號(hào)制作的原則和原理的基礎(chǔ)上,采用面向?qū)ο蟮姆椒?在.NET平臺(tái)下,結(jié)合ArcGIS Engine技術(shù)設(shè)計(jì)了GIS地圖符號(hào)庫系統(tǒng)。本系統(tǒng)設(shè)計(jì)分別包括了點(diǎn)狀符號(hào)庫、線狀符號(hào)庫和面狀符號(hào)庫,用戶可根據(jù)自己的需要設(shè)計(jì)符號(hào),可通過多種方式瀏覽各種符號(hào),該系統(tǒng)具有通用性和開放性。
地理信息系統(tǒng);地圖符號(hào)庫;.NET
隨著地理信息系統(tǒng)的深入發(fā)展,地圖的種類和內(nèi)容也隨之不斷地增加,同時(shí)新地圖的表示法和彩色印刷提供的有利條件,使地圖符號(hào)的數(shù)量快速上升。原先的GIS軟件中自帶的符號(hào)庫已經(jīng)不能滿足用戶的需求,因此各GIS軟件生產(chǎn)商又在軟件中嵌入了能夠根據(jù)用戶自己的要求進(jìn)行二次開發(fā)的符號(hào)編輯模塊,用戶可以根據(jù)地圖表達(dá)的實(shí)際需要來制作形式各樣、大小不一、顏色多變的符號(hào)。
ArcGIS擁有豐富的符號(hào)庫管理機(jī)制。在符號(hào)庫管理器(Style Manager)中,符號(hào)庫之間相互獨(dú)立,可任意進(jìn)行符號(hào)的添加、刪除、新建等工作,具有可視性能好,簡便易用等優(yōu)點(diǎn)。本文主要用ArcEngine+C#開發(fā)ServerStyle符號(hào)庫管理系統(tǒng),該系統(tǒng)根據(jù)點(diǎn)、線、面符號(hào)的特征,分別對(duì)點(diǎn)、線、面符號(hào)進(jìn)行了設(shè)計(jì),本系統(tǒng)的設(shè)計(jì)與建立主要運(yùn)用了圖元法。
2.1主程序設(shè)計(jì)
本符號(hào)庫管理系統(tǒng)主要利用ArcGIS提供的符號(hào)轉(zhuǎn)換工具M(jìn)ake Serverstyle Sets.exe,將新建地圖符號(hào)庫文件(?.Style)轉(zhuǎn)換為可供AE開發(fā)使用的地圖符號(hào)庫文件(?.Serverstyle);本符號(hào)庫管理系統(tǒng)主要包括了PointStyle、LineStyle、FillStyle,其實(shí)現(xiàn)流程如圖1所示。
本系統(tǒng)主要包含了主程序界面設(shè)計(jì)、點(diǎn)狀符號(hào)設(shè)計(jì)界面、線狀符號(hào)設(shè)計(jì)界面、面狀符號(hào)設(shè)計(jì)界面。
圖1 符號(hào)庫管理系統(tǒng)框架
主程序界面如圖2所示,主要是以不同的瀏覽方式來瀏覽各個(gè)符號(hào)庫的符號(hào),通過瀏覽鍵打開一個(gè)ServerStyle格式文件,初始化符號(hào)庫列表,在相應(yīng)的窗體中可顯示當(dāng)前選擇的符號(hào)類中所有的符號(hào),用戶還可根據(jù)個(gè)人的喜好改變窗體中符號(hào)的排列方式,同時(shí)點(diǎn)擊窗體中的符號(hào)可在預(yù)覽窗口中進(jìn)行預(yù)覽。
點(diǎn)擊新建樣式符號(hào)可以分別創(chuàng)建自己的點(diǎn)、線、面符號(hào)。
圖2 主程序界面
2.2點(diǎn)狀符號(hào)庫的設(shè)計(jì)
點(diǎn)狀符號(hào)常用來表示在當(dāng)前的比例尺和表示方式下,呈點(diǎn)狀分布的地理實(shí)體和現(xiàn)象,不論符號(hào)大小,實(shí)際上以點(diǎn)的概念定位,而符號(hào)的面積不具有實(shí)地的面積意義,且具有以下幾個(gè)特點(diǎn):①圖形的形體相對(duì)而言比較小;②都有準(zhǔn)確的定位點(diǎn)和方向性;③圖形固定,在圖幅中不會(huì)隨著位置的變化而變化;④圖形大小不依比例尺變化;⑤大都由幾何圖形組合而成,圖形規(guī)則。因此本點(diǎn)狀符號(hào)庫的設(shè)計(jì)主要是設(shè)計(jì)圖元樣式。
本系統(tǒng)的點(diǎn)狀符號(hào)設(shè)計(jì)界面如圖3所示,在界面上提供了樣式大小、樣式角度、樣式顏色、偏移量等參數(shù)來新建點(diǎn)符號(hào),用戶可調(diào)整這些參數(shù)來創(chuàng)建自己喜歡的點(diǎn)符號(hào)。同時(shí)可在預(yù)覽窗口中看到自己創(chuàng)建的符號(hào),調(diào)整分辨率還可將符號(hào)放大,以便更清楚地觀察新建的符號(hào)樣式,在圖層窗口中可自由添加、刪除、移動(dòng)圖層。
圖3 點(diǎn)狀符號(hào)設(shè)計(jì)界面
圖元繪制程序?qū)崿F(xiàn)如下:
2.3線狀符號(hào)庫的設(shè)計(jì)
線狀符號(hào)用來表示呈線狀或帶狀分布的地物,其具有如下特點(diǎn):①都有一條無形的或有形的定位線;②復(fù)雜的線符號(hào)可以被看做是若干種的線型(如虛線、直線、點(diǎn)劃線等)的疊加;③線符號(hào)的圖形也可以被看做是線符號(hào)的單元沿著線的前進(jìn)方向做周期性的重復(fù)。
本系統(tǒng)提供了簡單線、制圖線和哈希線這三種線符號(hào)的繪制。用戶可自由改變線符號(hào)的顏色和粗細(xì),上下移動(dòng)圖層改變圖層的疊加順序以改變符號(hào)的表現(xiàn)形式,并可自由添加和刪除。同時(shí)可在預(yù)覽窗口實(shí)時(shí)觀察新建的符號(hào)。
簡單線符號(hào)繼承了IlineSymbol接口,實(shí)現(xiàn)了ISimpleLineSymbol接口,提供了Style屬性用于設(shè)置線才樣式。
制圖線符號(hào)主要實(shí)現(xiàn)了兩個(gè)接口:ICartographicLineSymbol和ILineProperties。ICartographicLineSymbol接口主要用于設(shè)置線符號(hào)的節(jié)點(diǎn)屬性,如Cap屬性用于設(shè)置線的首尾點(diǎn)的形狀,Join屬性用于設(shè)置線要素轉(zhuǎn)折處的樣式。ILineProperties接口主要用于設(shè)置dash-dot類型的線要素符號(hào)屬性。哈希線就是離散線符號(hào)。線符號(hào)庫的運(yùn)行界面如圖4所示。
圖4 線狀符號(hào)運(yùn)行界面
簡單線等的添加實(shí)現(xiàn)如下:
2.4面狀符號(hào)庫的設(shè)計(jì)
面狀符號(hào)具有實(shí)際的二維特征,它們以面定位,其形狀與其所代表對(duì)象的實(shí)際形狀一致。該符號(hào)主要以下特點(diǎn):①一般都有一條有形或無形的封閉輪廓線;②為了區(qū)別輪廓線雖圍城的區(qū)域?qū)ο?大部分面狀符號(hào)在區(qū)域內(nèi)配置不同的點(diǎn)符號(hào)、線符號(hào)或顏色。
繪制面狀符號(hào)的主要填充方法有三種:顏色填充、圖案填充和標(biāo)準(zhǔn)模式填充。其中顏色填充和標(biāo)準(zhǔn)模式只要需改變填充區(qū)域的顏色和模式設(shè)置成對(duì)應(yīng)的顏色和模式就可進(jìn)行填充。本符號(hào)庫的設(shè)計(jì)主要是對(duì)填充區(qū)域內(nèi)的圖案及顏色的設(shè)計(jì)。
面狀符號(hào)是用來修飾多邊形等具有面積的幾何形體的符號(hào)對(duì)象。本系統(tǒng)實(shí)現(xiàn)了IFillSymbol接口,該接口只定義了兩個(gè)屬性Color和OutLine,Color用來設(shè)置填充符號(hào)的基本顏色,OutLine用來設(shè)置符號(hào)的外邊框。
本系統(tǒng)的面狀符號(hào)設(shè)計(jì)在界面上提供了簡答填充,該類實(shí)現(xiàn)了ISimpleFillSymbol接口,使用它定義的屬性和方法,用戶可更改填充顏色及邊框線的顏色和粗細(xì),同樣可自由添加、刪除、移動(dòng)圖層。面狀符號(hào)庫的運(yùn)行界面如圖5所示。
圖5 面狀符號(hào)運(yùn)行界面
填充顏色和邊框?qū)挾鹊拇a實(shí)現(xiàn)如下:
本文對(duì)地圖符號(hào)的概念、特點(diǎn)作了簡要的概述,在符號(hào)制作的原則和原理的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于.NET的C#和ArcEngine技術(shù)的GIS地圖符號(hào)庫系統(tǒng),并成功將新建的地圖符號(hào)加入相應(yīng)符號(hào)庫,實(shí)現(xiàn)了用戶根據(jù)自身需求制作屬于自己的地圖符號(hào),滿足了用戶在靜態(tài)地圖符號(hào)方面的需求,實(shí)現(xiàn)了系統(tǒng)的通用性和開放性。
[1] 孫慶輝,趙軍喜,周海燕.GIS中地圖輸出對(duì)符號(hào)庫建立的影響[J].測(cè)繪通報(bào),2000(10):24~25.
[2] 沈陳華.線狀符號(hào)庫的面向?qū)ο笤O(shè)計(jì)[J].重慶師范學(xué)院學(xué)報(bào)·自然科學(xué)版,2000,17(4):41~43.
[3] 胡鵬.點(diǎn)陣符號(hào)庫的設(shè)計(jì)及制作[J].地圖,1993(2):22~23.
[4] 祝國瑞.地圖學(xué)[M].武漢:武漢大學(xué)出版社,2003.
[5] 閆浩文.運(yùn)用OO方法設(shè)計(jì)統(tǒng)計(jì)符號(hào)庫的理論探討[J].武漢測(cè)繪科技大學(xué)學(xué)報(bào),1997,22(1):69~70.
[6] 程朋根,龔健雅.面向?qū)ο驡IS中地圖符號(hào)組織的研究[J].測(cè)繪信息與工程,1998(1):21~23.
This paper made the point symbol,line library,planar library symbol library.User can make their favorite symbol and can browse through their visual preferences symbols.The system has generality and openness.
Design and Implementation of GIS Map Symbol Library Based on.NET
Xu Yongguo,Qian Jiazhi,Chen Ron
(Zhejiang Nonfernous Metals Mapping Institute,Shaoxing 312000,China)
Map symbols are the base of digital map.Especially in GIS,map meanings are essentially expressed by map symbols.In this paper a brief overviewof the concept and characteristics of map symbol,this paper designs a solution for GIS map symbol library with the ArcGIS Engine technology based on.NET.The solution is combined with production principle and principle of map symbols,object-oriented method.
GIS;map symbol library;.NET
1672-8262(2016)01-135-03
P208.1
B
?2015—12—01
徐擁國(1974—),男,工程師,從事測(cè)繪及生產(chǎn)技術(shù)管理工作。