地圖符號(hào)化實(shí)現(xiàn)方法_第1頁
地圖符號(hào)化實(shí)現(xiàn)方法_第2頁
地圖符號(hào)化實(shí)現(xiàn)方法_第3頁
地圖符號(hào)化實(shí)現(xiàn)方法_第4頁
地圖符號(hào)化實(shí)現(xiàn)方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、地圖符號(hào)化實(shí)現(xiàn)方法地理信息符號(hào)化是地理信息生產(chǎn)和應(yīng)用時(shí)必須要實(shí)現(xiàn)的技術(shù),對(duì)地理信息處理和應(yīng)用有較大的幫助作用。地理信息的符號(hào)化通常是指它的二維屏幕表達(dá)。利用豐富的地圖符號(hào)和視覺變量,在計(jì)算機(jī)屏幕上對(duì)各種地理信息進(jìn)行直觀和清晰的顯示一直是數(shù)字制圖和GIS的核心技術(shù)之一。本文就這方面的主要方法和實(shí)現(xiàn)技術(shù)進(jìn)行深入討論。 2 地理信息符號(hào)化方法 地理信息符號(hào)化的主要方法采用地圖圖形和符號(hào)對(duì)地理信息進(jìn)行表示。眾所周知,地圖圖形是地圖的語言,它既表示了地理實(shí)體的形狀、位置、結(jié)構(gòu)和大小信息,也表示了實(shí)體的類型、等級(jí)以及其他數(shù)量和質(zhì)量特征。地圖圖形符號(hào)的設(shè)計(jì)和建立主要有三種方法,即編程法、信息塊法和交互設(shè)計(jì)法

2、。 2.1 編程法 編程法是將地圖符號(hào)分解為圖元(特定的幾何要素,如直線、三角形、矩形、圓、弧等,稱為圖元),然后通過程序的方法相繼調(diào)用繪制這些圖元的函數(shù),由圖元的組合來實(shí)現(xiàn)地圖符號(hào)的繪制。如圖1所示。在調(diào)用繪制圖元的函數(shù)時(shí),根據(jù)符號(hào)的特點(diǎn)和定位關(guān)系輸入適當(dāng)?shù)膮?shù)。 對(duì)于大多數(shù)點(diǎn)狀符號(hào),它們的定位點(diǎn)是固定的,符號(hào)中各組成部分相對(duì)于定位點(diǎn)的關(guān)系也是固定的,因此對(duì)于這些符號(hào),以后在使用時(shí)只要給出定位點(diǎn)坐標(biāo)和符號(hào)的繪制比例即可。有些點(diǎn)狀符號(hào)的定位點(diǎn)可能不止一個(gè),如半依比例尺橋梁符號(hào),它的定位點(diǎn)有二個(gè),一個(gè)是橋梁的中心點(diǎn),另一個(gè)是橋梁的方向點(diǎn),橋梁符號(hào)的其他點(diǎn)位坐標(biāo)是靠這二個(gè)點(diǎn)計(jì)算出來的。 對(duì)于線狀符

3、號(hào),只要給定線狀符號(hào)中心線上的點(diǎn)位坐標(biāo)就能生成線狀符號(hào)。在采用編程方法時(shí),符號(hào)一般都是固定的,所給的定位點(diǎn)也是少量的,利用這些少量的信息根據(jù)符號(hào)內(nèi)在的相互關(guān)系就可以形成相應(yīng)的符號(hào)。 采用編程法來實(shí)現(xiàn)地圖符號(hào)的繪制其最大的缺點(diǎn)是不便于修改,每一個(gè)符號(hào)的修改和調(diào)整都要改動(dòng)相應(yīng)的程序,較為費(fèi)事。它的優(yōu)點(diǎn)在于能將大量的地理信息自動(dòng)地進(jìn)行符號(hào)化,不需要太多的人工干預(yù)。只要按照地理信息的屬性編碼,檢索出相應(yīng)的符號(hào)名稱,然后調(diào)用繪制這些符號(hào)的程序,即可得到各種不同地圖符號(hào)的輸出。符號(hào)信息及各種處理和底層接口調(diào)用都由計(jì)算機(jī)獨(dú)立完成。目前,這種符號(hào)的實(shí)現(xiàn)方法較為成熟,在實(shí)際應(yīng)用中仍有廣泛的應(yīng)用。 2.2 信息塊

4、法 信息塊法是用人工的方法將要繪制的符號(hào)離散成數(shù)字信息,用統(tǒng)一的結(jié)構(gòu)和方法進(jìn)行描述,這些描述信息存放在數(shù)據(jù)文件中,一個(gè)符號(hào)構(gòu)成一個(gè)信息塊。繪圖時(shí)只要通過程序處理數(shù)據(jù)文件中的信息塊,即可完成符號(hào)的繪制。如圖2所示。要修改的話也只是修改數(shù)據(jù)文件,而繪制地圖符號(hào)的軟件保持不變。 2.3 交互設(shè)計(jì)法 交互設(shè)計(jì)法是在一定的圖形設(shè)計(jì)軟件中,有一系列的圖形元素繪制工具供用戶選擇和使用,用戶采用精確輸入的方法把構(gòu)成符號(hào)的各個(gè)圖元按照相互之間確定的關(guān)系有機(jī)地把它們組合在一起,并選擇一個(gè)定位點(diǎn)。繪制好的符號(hào)起個(gè)名字存放在相應(yīng)的符號(hào)庫中,這些符號(hào)可以是點(diǎn)狀符號(hào),也可以是線狀符號(hào)和面狀符號(hào)。 當(dāng)是點(diǎn)狀符號(hào)時(shí),調(diào)用時(shí)只

5、要給出定位點(diǎn),所要的點(diǎn)狀符號(hào)就會(huì)自動(dòng)配置上去。如果是線狀符號(hào),光標(biāo)只要給出定位中心線的位置,就形成相應(yīng)的線狀符號(hào)。如果是面狀符號(hào),只要給定邊界,面狀符號(hào)就會(huì)填繪上去。 這種符號(hào)繪制方法十分方便而且便于修改。不需要編寫程序,全靠數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)之間的關(guān)系起作用。采用人機(jī)交互的方法來設(shè)計(jì)和繪制地圖符號(hào)大大地方便了用戶,提高了工作效率,減輕了工作量,代表著符號(hào)設(shè)計(jì)和繪制的發(fā)展方向。 上述三種產(chǎn)生地圖符號(hào)的方法在有些情況下要結(jié)合起來使用,各自有著不同的使用場(chǎng)合,很難說只用一種方法就能解決所有的問題。 3 地理信息符號(hào)化控制技術(shù) 地理信息符號(hào)化控制技術(shù)是指地理信息符號(hào)化過程如何控制和實(shí)現(xiàn)的,隨著數(shù)字地圖制

6、圖技術(shù)的不斷發(fā)展,地理信息符號(hào)化控制技術(shù)也在不斷的發(fā)展和完善。目前可以通過三種方式來實(shí)現(xiàn)地理信息符號(hào)化過程的控制,即程序控制方式,基于控制文件的方式和基于關(guān)系數(shù)據(jù)庫的控制方式。 3.1 程序控制方式 程序控制方式建立在圖形符號(hào)編程法基礎(chǔ)之上,是一種內(nèi)部控制方式,它完全依賴于計(jì)算機(jī)程序,在數(shù)字制圖技術(shù)出現(xiàn)的初期被廣泛使用。但是以這種方式實(shí)現(xiàn)的符號(hào)化控制可維護(hù)性差。一旦程序編寫完畢,所有的符號(hào)化控制都固定了,當(dāng)生產(chǎn)其他類型的地圖時(shí),必須對(duì)控制符號(hào)化的源程序做出相應(yīng)的調(diào)整或者重新編寫,這顯然降低了系統(tǒng)的通用性,不利于整個(gè)系統(tǒng)推廣和應(yīng)用。針對(duì)這樣的問題,地圖工作者希望利用外部控制的方式來實(shí)現(xiàn)符號(hào)化的控

7、制,以降低對(duì)程序的依賴性,因此基于控制文件的方式便產(chǎn)生了。 3.2 基于控制文件方式 基于控制文件方式是通過計(jì)算機(jī)程序?qū)刂莆募械膬?nèi)容進(jìn)行解釋來完成對(duì)地圖符號(hào)化的控制,它是一種外部控制的方式。符號(hào)化控制文件的設(shè)計(jì)是依據(jù)地圖要素編碼的特點(diǎn),按照點(diǎn)、線、面要素歸類并設(shè)置控制項(xiàng),主要包括要素編碼對(duì)應(yīng)的地圖符號(hào)控制和相應(yīng)的說明注記控制。這種方式與完全依靠程序來實(shí)現(xiàn)地圖符號(hào)化控制相比,便于維護(hù),通用性得到提高。如果需要增加或修改一種要素的符號(hào)化效果,只需要增加或修改該要素的符號(hào)化控制項(xiàng),而不用修改源程序。針對(duì)不同類型的地圖,只需設(shè)計(jì)相應(yīng)的控制文件,就可以完成對(duì)地圖符號(hào)化效果的控制。但這種方式也存在一些

8、不足,其控制項(xiàng)較多,程序解釋起來比較困難,文件結(jié)構(gòu)復(fù)雜,在編輯符號(hào)化文件是容易出錯(cuò)等。 3.3 基于關(guān)系數(shù)據(jù)庫的控制方式 運(yùn)用數(shù)據(jù)庫技術(shù)最直接的想法就是用數(shù)據(jù)庫中的表來取代控制文件,在數(shù)據(jù)入庫時(shí)通過對(duì)符號(hào)化控制表中的符號(hào)化控制信息進(jìn)行解釋來完成對(duì)地圖符號(hào)化的控制。在關(guān)系數(shù)據(jù)庫中,各種關(guān)系都是以數(shù)據(jù)庫表的形式存在,因此用數(shù)據(jù)庫表來實(shí)現(xiàn)符號(hào)化控制是非常適合的。此外,還可利用數(shù)據(jù)庫在數(shù)據(jù)管理上的優(yōu)勢(shì),以及數(shù)據(jù)庫自身的特點(diǎn)來保證符號(hào)化控制過程的正確性。從控制表自身來看,在這種方式下,符號(hào)化控制表較少,表中的控制項(xiàng)相對(duì)簡(jiǎn)單,共用的控制項(xiàng)均以字典表的形式出現(xiàn),控制表與字典之間利用關(guān)系數(shù)據(jù)庫的主鍵與外鍵間的

9、約束建立關(guān)聯(lián),控制表結(jié)構(gòu)簡(jiǎn)單明了,表與表之間的邏輯關(guān)系清楚,維護(hù)起來簡(jiǎn)單方便。 4 地理信息符號(hào)化實(shí)現(xiàn) 點(diǎn)狀符號(hào)、線狀符號(hào)和面狀符號(hào)各有其特點(diǎn),又不失共性,它們的差異是構(gòu)成各自的基本圖素不同,而相同之處是繪制參數(shù)(符號(hào)代碼、繪圖句柄、筆的顏色、刷子的顏色等)、操作方法(繪制、刪除等)基本一致。根據(jù)面向?qū)ο蟮挠^點(diǎn),為使各類符號(hào)對(duì)象具有相對(duì)獨(dú)立性,可以將點(diǎn)狀符號(hào)(CPointSymbol)、線狀符號(hào)(CLineSymbol)、面狀符號(hào)(CAreaSymbol)定義成三種符號(hào)對(duì)象類,并將各類符號(hào)的數(shù)據(jù)成員(屬性數(shù)據(jù))及其函數(shù)成員(操作方法)封裝在各自的對(duì)象類中。同時(shí)又在這三個(gè)類的基礎(chǔ)上概括出更高層次

10、的類,即符號(hào)類(CSymbolBase)。 符號(hào)類(CSymbolBase)的定義如下: class CSymbolBase : public CObject /成員變量 public: CString m_strCurrentPath; /符號(hào)路徑 CString m_SymbolCode; /符號(hào)代碼 COLORREF m_SymbolColor; /符號(hào)顏色 /成員函數(shù) public: void DrawParral(CDC *dc, ); /繪制平行線 void DrawThickLine(CDC *pDC,); /繪制加粗線 4.1 點(diǎn)狀要素的符號(hào)化 點(diǎn)狀符號(hào)類的定義如下: clas

11、s CSymbolPoint : public CSymbolBase /成員變量 public: CObList *m_polylineList; /折線圖元列表 CObList *m_ellipseList; /橢圓圖元列表 CObList *m_chordList; /圓弦圖元列表 CObList *m_rectList; /矩形圖元列表 CRect m_Boundrect; /符號(hào)的外接矩形,相對(duì)于符號(hào)的定位點(diǎn) /成員函數(shù) public: void ReadPointFile(CString m_SymbolFileName,); /讀取符號(hào)庫 CRect GetBoundrect(d

12、ouble angle,double scale); /獲得符號(hào)外接矩形 void DrawPointinMap(CDC *pDC,); /繪制符號(hào) 在程序收到用戶傳給的幾何信息和屬性信息(包括定位點(diǎn)信息、顏色、角度等)后,讀取符號(hào)庫中該符號(hào)的描述信息,進(jìn)行解釋并完成圖形繪制。 點(diǎn)狀符號(hào)繪制程序的接口函數(shù): void CPointSymbol: DrawPointinMap(CString m_SymbolFileName, /符號(hào)路徑 CString m_SymbolCode, /符號(hào)名 CPoint PositionPoint, /點(diǎn)狀地物定位點(diǎn)double SymbolScale, /符

13、號(hào)比例double Angle, /旋轉(zhuǎn)角度COLORREF SymbolColor, /符號(hào)顏色 CDC* pDC) 點(diǎn)狀符號(hào)制作及選擇如圖3所示。 4.2 線狀要素的符號(hào)化 線狀符號(hào)類的定義如下: class CSymbolLine : public CSymbolBase 在程序收到數(shù)據(jù)庫中或用戶傳給的幾何信息和屬性信息(包括定位軸線信息、顏色、結(jié)束方式等)后,讀取符號(hào)庫中該符號(hào)的描述信息,進(jìn)行解釋并完成圖形繪制。 線狀符號(hào)繪制程序的接口函數(shù): void CLineSymbol: DrawLinesinMap (CString m_SymbolFileName, /符號(hào)路徑 CStrin

14、g m_SymbolCode, /符號(hào)名 double x , double y , int n, /軸線坐標(biāo)串及坐標(biāo)點(diǎn)個(gè)數(shù) COLORREF color, /符號(hào)顏色 double m_LineScale, /繪制比例 CDC* pDC) 4.3 面狀要素的符號(hào)化 面狀符號(hào)類的定義如下: class CSymbolArea : public CSymbolBase 面狀符號(hào)的繪制最關(guān)鍵的技術(shù)是填充算法。一般分為兩種填充方法:點(diǎn)填充和線填充。線填充方法通常是按掃描線填充,點(diǎn)填充方法通常是按定位點(diǎn)填充,包括品字形填充、井字形填充以及隨機(jī)填充。填充時(shí)要用到多邊形裁剪算法,可以直接調(diào)用VC+提供的有關(guān)系統(tǒng)函數(shù)。 面狀符號(hào)繪制程序的接口函數(shù): void CAreaSymbol:DrawAreainMap(CString m_SymbolFileName, /符號(hào)路徑 CString m_AreaSymbolCode, /符號(hào)名稱double x, double y, int n, /多邊形區(qū)域點(diǎn)串及個(gè)數(shù)COLORREF m_FrontColor, /前景色COLORREF m_BackColor, /背景色 BOOL m_IsSheer, /底色是否透明CString m_SideLineName,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論