• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CorelDraw線狀地圖符號庫的設(shè)計

      2017-06-21 15:04:16郭慶勝魏智威柳其志
      測繪工程 2017年7期
      關(guān)鍵詞:圖元線狀編輯器

      劉 洋,郭慶勝,魏智威,柳其志,魏 嘉

      (武漢大學 資源與環(huán)境科學學院,湖北 武漢 430079)

      CorelDraw線狀地圖符號庫的設(shè)計

      劉 洋,郭慶勝,魏智威,柳其志,魏 嘉

      (武漢大學 資源與環(huán)境科學學院,湖北 武漢 430079)

      在CorelDraw中繪制有些線狀地圖符號需要使用程序控制,無法直接調(diào)用CorelDraw的線狀符號繪制功能。文中基于圖元組合的思想,依據(jù)CorelDraw軟件的特點,對常用地圖中的線狀符號進行分類、組織和存儲,建立相應的線狀地圖符號庫,設(shè)計專門的線狀地圖符號編輯器,實現(xiàn)對線狀地圖符號的統(tǒng)一編輯與管理,并且為不同類型的線狀地圖符號繪制設(shè)計相應的算法,最后利用CorelDraw提供的VBA二次開發(fā)環(huán)境實現(xiàn)文中所提出的方法,實驗效果很好,可滿足地圖生產(chǎn)的需要。

      符號庫;圖元;線狀地圖符號;編輯器

      地圖上表示各種復雜的自然和人文現(xiàn)象都是通過地圖語言來實現(xiàn),通常分為地圖符號、注記和色彩;相比于其它幾種地圖語言,地圖符號表達地圖內(nèi)容形象直觀、一目了然,因而對于符號的研究和設(shè)計是地圖學的基本問題之一。由于計算機技術(shù)的發(fā)展,很多制圖工作都需要借助計算機進行完成,因而研究和設(shè)計的符號要在計算機中進行繪制。目前,計算機中地圖符號繪制的主要途徑可以分為兩大類[1]:一是在現(xiàn)有的軟件基礎(chǔ)上利用其所提供的二次開發(fā)環(huán)境進行符號的設(shè)計,如ArcGis,AutoCAD,Coreldraw等軟件均提供了可以供用戶調(diào)用的編程接口,這種方法的優(yōu)點是開發(fā)過程簡單,并且可以利用系統(tǒng)本身的圖形編輯功能,缺點是符號繪制受到系統(tǒng)自身功能的限制,且符號庫的獨立性較差;二是利用程序語言開發(fā)獨立的符號設(shè)計平臺,如目前流行的COM技術(shù)等[2],其優(yōu)點是符號設(shè)計平臺獨立、符號共享性較好,缺點是許多符號繪制功能需要從底層進行設(shè)計,開發(fā)過程較為復雜[3]。在地圖符號繪制的過程中,線狀地圖符號的繪制需要考慮多種情況,程序設(shè)計算法復雜,操作運算量大,耗費時間較長,因此,線狀地圖符號的繪制是地圖符號繪制過程中的重點問題[4]。對于線狀地圖符號的繪制,已有許多學者進行過相關(guān)的研究,目前繪制線狀地圖符號的主要算法有:縱向疊加法,即將線符號分成幾層,然后每層單獨繪制;橫向循環(huán)配置法,將重復出現(xiàn)的基本圖元沿定位線進行循環(huán)配置;程序塊法,即為每種不同的符號編寫單獨的繪制函數(shù)[3],這幾種算法均有其不足之處,如縱向疊加法難以繪制一些不易分解為不同層的符號(如河流等),橫向循環(huán)配置法在拐角處存在符號變形且效率較低,程序塊法使程序過于復雜臃腫且不利于符號的擴充;因此,在一般的線狀地圖符號的繪制過程中,往往將這幾種方法結(jié)合起來使用。

      本文基于圖元組合的思想,利用CorelDraw所提供的VBA二次開發(fā)環(huán)境,對地圖中常用的線狀符號進行分類、組織、存儲,建立相應的線狀地圖符號庫,并且采用圖元組合及程序塊的方式為不同類型的線符號設(shè)計相應的繪制算法,設(shè)計專門的線狀符號編輯器,對各類線符號進行統(tǒng)一編輯與管理,供制圖人員進行編輯和調(diào)用。

      1 Coreldraw繪制地圖符號的局限性

      雖然Coreldraw是一款出色的圖形設(shè)計軟件,但它并不是一款專業(yè)的地圖制圖軟件,在繪制地圖符號時存在一定的局限性:例如對于線符號來說,Coreldraw雖然提供了一定數(shù)量的內(nèi)置線型,但對一些較為復雜的線符號,不能從系統(tǒng)中直接調(diào)用,例如對防洪堤的繪制,需要逐個節(jié)點的添加短線并通過手動旋轉(zhuǎn)的方式使其與基線垂直,如圖1所示的防洪堤符號,這樣就使得這類符號的繪制過程十分繁瑣,增加制圖人員的工作量。另外,在繪制在建高速公路時,常常需要將兩條或更多的寬度不等的虛線疊加在一起,這時由于Coreldraw系統(tǒng)自身的規(guī)定,疊加的虛線中虛線部分的長度必須是虛線自身寬度的整數(shù)倍,如果對于不同寬度的虛線設(shè)置相同的線樣式,就會使不同的虛線之間產(chǎn)生壓蓋,導致繪制錯誤。如圖2所示的在建高速公路符號繪制時出錯。

      圖1 防洪堤符號

      圖2 高速公路符號

      針對前面所提到的問題,一些學者提出相應的解決方法[7-9],但是往往只是針對某幾個特殊的符號,沒有對符號進行較為系統(tǒng)的分類,并且沒有形成一個能夠統(tǒng)一對線符號進行編輯與調(diào)用的平臺。

      2 Coreldraw線狀地圖符號庫的構(gòu)建

      2.1 圖元分類

      關(guān)于地圖符號的繪制,有很多學者采用基于圖元的方式進行[1-6,10-12]。圖元法將地圖符號看做一定數(shù)量的組成單元(圖元)的集合,通過定義不同的圖元類型,改變圖元自身的參數(shù)及圖元間的組合方式得到不同類型的地圖符號。

      依據(jù)圖元的幾何特征可以將圖元分為點圖元、線圖元和面圖元三類[6]。點狀圖元的分類比較簡單,一般依據(jù)其幾何特征可以分為:點、折線、圓、圓弧、多邊形等幾種類型的基本圖元類型。線狀符號的基本圖元已有學者做了大量的研究,如程朋根等[6]針對地形圖圖式線狀符號,設(shè)計出組成線狀符號的基本圖元有:實線、虛線、點虛線、雙虛線、雙實線、連續(xù)點符號、定位點符號、導線連線、導線點符號、齒線狀符號、漸變寬實線、漸變寬虛線、帶狀暈線等共13種圖元。

      由于一般的圖元分類比較復雜,本文依據(jù)Coreldraw的自身特點將圖元分為3種:長線圖元、短線圖元、點狀圖元。

      2.2 Coreldraw線狀地圖符號的分類

      在Coreldraw環(huán)境下圖元分類的基礎(chǔ)上,需要對Coreldraw中的線狀地圖符號進行分類,這里的線狀符號主要是指那些不能直接從Coreldraw系統(tǒng)中調(diào)用出來的符號,依據(jù)其圖元構(gòu)成的不同可以分為以下四類:

      1)第一種線符號:由一種或幾種長線圖元疊加組成,如高速公路等。

      2)第二種線符號:由一條或幾條長線圖元上按一定規(guī)則排列的短線圖元得到,如防洪堤等。

      3)第三種線符號:由在長線圖元上按一定規(guī)則排列的點狀圖元構(gòu)成,如溝渠符號。

      4)其他線符號:主要指那些不能夠通過圖元組合的方式得到的符號,包括河流、橋梁、長城等特殊符號。

      各類典型符號及其構(gòu)成方式如表1所示。

      2.3 Coreldraw線狀地圖符號庫的構(gòu)建

      對于抽象出的各類線狀地圖符號需要進行組織和存儲。本文采用面向?qū)ο蟮乃枷雽€狀地圖符號進行組織[6],將一個線符號看做是一個對象,這個對象是由一個記錄這個線符號基本信息的抽象對象(LineSymbol對象)和多個相同或不同類型的圖元對象組成而得到的復雜對象,每一個對象都有其相應的屬性和方法,其中,抽象的LineSymbol對象的屬性包括線符號的ID、線符號類型、組成圖元等基本信息,而每一個圖元對象的屬性則包括ID和在符號化的過程中所需用到的所有屬性。

      線狀地圖符號采用ACCESS表的形式進行存儲,分為一張母表和多張從表,其中,母表用來存儲LineSymbol對象的屬性,母表的結(jié)構(gòu)如表2所示。

      表2 母表的結(jié)構(gòu)

      每一種類型的圖元分別對應一張從表,每張從表的每個字段分別用來存儲圖元的編號和屬性,對于像橋梁、長城這類符號,不能通過前幾種圖元組合得到,這時采用程序塊進行繪制,存儲其在繪制過程中的所有必要參數(shù)。各類不同類型的圖元及其屬性如表3所示。各類程序符號及其控制參數(shù)如表4所示。

      表3 不同類型的圖元及其屬性

      通過以上對Coreldraw中常用地圖符號的組織和存儲,即完成對Coreldraw下地圖符號庫的構(gòu)建,符號庫中的典型符號如圖3所示。

      表4 各類程序符號及其控制參數(shù)

      圖3 符號庫中的典型符號

      3 Coreldraw線狀地圖符號繪制

      在Coreldraw線狀地圖符號庫的基礎(chǔ)上,進行線狀地圖符號繪制算法的設(shè)計,算法主要分為兩大類:第一大類主要針對那些能夠由基本圖元構(gòu)成的線狀地圖符號,如由長線圖元與短線圖元構(gòu)成的堤壩類符號、由長線圖元與點狀圖元構(gòu)成的溝渠類符號等;第二大類算法則主要針對那些不能通過基本圖元間的組合得到的特殊線狀地圖符號,如河流、橋梁、長城等線狀地圖符號。

      對于第一類算法,其基本思想是對于要繪制的線符號,首先從數(shù)據(jù)庫主表中讀取線符號ID、線符號類型及其相應的組成圖元等信息,然后根據(jù)獲取的線符號類型及線符號的組成圖元,讀取每張相應的從表中的圖元信息,最后根據(jù)不同的線符號類型選擇相應的符號化方法即可。以堤壩類符號的繪制為例,算法的流程如圖4所示。

      圖4 堤壩繪制流程

      對于那些不能通過基本圖元間的組合得到的特殊線狀地圖符號,一般采用程序塊的方法進行繪制 ,本文對河流、橋梁、長城及在建高速公路等符號均設(shè)計了專門的符號化程序,其中,河流的繪制主要包括兩個部分:對整個河流圖層的繪制和對單條河流的繪制,在對整個河流圖層的繪制前要首先對河流數(shù)據(jù)進行預處理,包括確定河系的主流、判斷河流的方向、劃分河流的等級及對河流進行編碼,這一部分在ArcGIS中完成,然后將整理好后的河流數(shù)據(jù)導入到Coreldraw中進行符號化;對單條河流的繪制在Coreldraw中一般采用將曲線在結(jié)點處打斷,然后對打斷后的每一個小段逐個設(shè)定寬度的方式,本文在此基礎(chǔ)上開發(fā)了相應的自動化程序,實現(xiàn)了河流的自動漸變,并且在漸變的過程中考慮到了漸變是否光滑的問題,設(shè)計了相應的算法,使?jié)u變效果更加美觀;橋梁的繪制則是首先按橋梁長度生成一條原始曲線,然后將曲線向兩側(cè)偏移1/2個橋梁寬度并將原始曲線刪除,最后在得到的兩條直線兩端生成四條短線;長城的繪制則是先將曲線等分并畫垂線,然后連接第一條垂線與第二條垂線的首端點、第三條垂線與第四條垂線的尾端點,依次類推,最后刪除原始曲線得到長城符號;在建高速公路的繪制需獲取設(shè)定的道路寬倍數(shù)和邊線寬倍數(shù),然后計算兩者的最小公倍數(shù),根據(jù)設(shè)定的樣式和這個最小公倍數(shù)分別計算得到邊線、道路、中心線的實線和虛線的長度,最后將邊線、道路、中心線疊加就得到在建高速公路?,F(xiàn)以河流符號的繪制為例,給出算法的流程如圖5、圖6所示。

      圖5 單條河流繪制流程

      圖6 河流圖層繪制流程

      4 Coreldraw線狀地圖符號編輯器的設(shè)計與實現(xiàn)

      為方便制圖人員的操作,本文設(shè)計了專門的線狀地圖符號編輯器,實現(xiàn)對各種線型的編輯與管理,編輯器的界面如圖7所示,在界面的左上角可以選擇要符號化的圖層,左側(cè)的ListView顯示系統(tǒng)提供的所有線符號,中間的ListView則顯示選中的線符號的組成部分,最右側(cè)的一列則提供對線符號的編輯與功能,可以對選中的線符號的組成部分進行編輯,針對不同類型的線型提供相應的編輯方法,能夠?qū)⒕庉嫷慕Y(jié)果保存到數(shù)據(jù)庫中,并且能夠選擇某個線圖層,對所選圖層進行符號化。線編輯器的詳細功能如下:

      1)選擇要編輯的線符號: 在主界面最左側(cè)預覽的線符號中選擇一種要進行編輯的線型,然后會在中間的ListView控件中顯示其組成部分,點擊其中的一個組成部分,再點擊Advanced Edit進行進一步的編輯,調(diào)出相應的編輯器。

      2)對第一種線符號進行編輯:將調(diào)用Coreldraw中自帶的輪廓筆編輯器,對線的寬度、顏色、樣式等進行編輯,并將結(jié)果返回到臨時圖層進行預覽。

      3)對第二種線符號進行編輯:調(diào)用自定義的編輯器,對短線的各種屬性進行編輯,其中方向?qū)傩允穷A先設(shè)定好的不可更改,單元間間隔表示兩個短線間的間距,偏移是指短線距離下方定位線起點的距離,顏色編輯需要調(diào)用系統(tǒng)的輪廓筆對短線設(shè)定顏色,編輯好后點擊確定,即可在臨時圖層中預覽編輯情況。

      4)對第三種線符號進行編輯:調(diào)用自定義的編輯器,可以編輯點狀圖元的寬度高度和單元間隔,用戶也可以導入更多的已經(jīng)設(shè)計好的符號。

      5)對河流進行編輯:調(diào)用自定義的編輯器,可以編輯河流的最大寬度、最小寬度、漸變寬度,改變河流的方向與顏色。

      6)對橋梁線符號進行編輯:調(diào)用自定義的編輯器,可以編輯橋梁的寬度、橋梁中小短線的角度和長度,也可以編輯使橋梁具有一個矩形顏色塊。

      7)對長城線符號進行編輯:調(diào)用自定義的編輯器,可以編輯長城符號中短線的長度和間隔,使長城看起來更寬或更窄。

      8)對在建高速公路線符號進行編輯:調(diào)用自定義的編輯器,編輯基線寬度、道路寬倍數(shù)和邊線寬倍數(shù),得到不同的在建高速公路符號樣式。

      9)保存線符號:符號編輯好后進行保存,將符號參數(shù)保存到本地數(shù)據(jù)庫中。

      10)符號化:選定圖層并編輯好符號后點擊符號化按鈕,可以在界面中即時查看符號化的過程。

      從1∶70萬的安徽省政區(qū)圖中截取部分數(shù)據(jù)進行符號化實驗,符號化的效果如圖8所示。

      圖7 線編輯器主界面

      圖8 實驗圖

      5 結(jié)束語

      將圖元法應用于Coreldraw環(huán)境下的線狀地圖符號繪制,在對圖元符號進行分類與組織的基礎(chǔ)上,建立Coreldraw線狀地圖符號庫,所開發(fā)的軟件能有效解決人工繪制符號時效率低下的問題,提高制圖人員的工作效率。如果制圖人員對某一圖層的符號化效果不滿意,還可通過編輯器選擇相應的符號進行編輯,用編輯好后的符號對特定圖層進行符號化。

      [1] 張園玉,李霖,龍毅,等. 地圖符號系統(tǒng)的設(shè)計與實現(xiàn)[J]. 測繪信息與工程, 2004, 29(6): 25-27.

      [2] 王偉,張波,殷贛華,等. 基于COM技術(shù)的地圖符號庫結(jié)構(gòu)設(shè)計與實現(xiàn)[J]. 武漢大學學報(信息科學版), 2002,27(3): 296-300.

      [3] 姜琦,周曉光,曾聯(lián)斌,等. 可編輯復雜線狀符號庫的設(shè)計與實現(xiàn)[J]. 地理信息世界, 2012(2): 75-80.

      [4] 吳小芳,杜清運,徐智勇,等. 復雜線狀符號的設(shè)計及優(yōu)化算法研究[J]. 武漢大學學報(信息科學版), 2006,31(7): 632-635.

      [5] 車森,孫群,劉海硯. 參數(shù)控制的地圖符號編輯器設(shè)計[J]. 武漢大學學報(信息科學版),2013,38(11): 1326-1329.

      [6] 程朋根,龔健雅,眭海剛. GIS中地圖符號設(shè)計系統(tǒng)的設(shè)計與實現(xiàn)[J]. 中國圖像圖形學報, 2000, 5(12): 1006-1011.

      [7] 姚興海,馬秋云. 基于CorelDRAW的地圖符號庫建庫[J]. 測繪通報, 2003(2): 36-38.

      [8] 喬俊軍,房雪玲,張海文. 基于CorelDRAW的制圖要素符號化研究[J]. 測繪與空間地理信息, 2013(8): 30-33.

      [9] 尹言軍,孔令華,黃海濤. 基于CorelDRAW VBA的地圖制圖符號化程序設(shè)計[J]. 勘察科學技術(shù), 2013(1): 51-52.

      [10] 蔡忠亮,李霖. 普通地圖符號的全開放式設(shè)計[J]. 武漢測繪科技大學學報, 1999(3): 259-261.

      [11] 談曉軍,邊馥苓,何忠煥. 地圖符號可視化系統(tǒng)的面向?qū)ο笤O(shè)計與實現(xiàn)[J]. 測繪通報,2003(1): 11-13.

      [12] 梅洋,李霖. 顧及符號關(guān)系處理的地圖符號庫設(shè)計與實現(xiàn)[J]. 測繪通報, 2007(8): 66-70.

      [責任編輯:張德福]

      Design of linear cartographic symbol based on CorelDraw

      LIU Yang, GUO Qingsheng, WEI Zhiwei, LIU Qizhi, WEI Jia

      (School of Resource and Environment Science,Wuhan University,Wuhan 430079,China)

      Drawing some linear cartographic symbols needs to be controled by program, because the plotting function of linear symbols can not be adopted directly from CorelDraw. According to the characteristics of CorelDraw, the study is based on the conception of graphical element composition. The commonly-used linear cartographic symbols are categorized, organized and stored, the relevant symbol base of linear cartographic symbols is established, the special editor is designed, the uniform editing and management is realized, and the algorithms are designed. Finally the method proposed is realized by taking advantage of secondary developmental environment of VBA in CorelDraw, and the result of the experiments proves to meet the needs of map production.

      symbol base; primitive; linear cartographic symbol; editor

      著錄:劉洋,郭慶勝,魏智威,等.CorelDraw線狀地圖符號庫的設(shè)計[J].測繪工程,2017,26(7):66-70,75.

      10.19349/j.cnki.issn1006-7949.2017.07.014

      2016-10-25

      國家自然科學基金資助項目(41471384); 安徽省國土資源科技項目(2015-k-17)

      劉 洋(1991-),男,碩士研究生.

      P208

      A

      1006-7949(2017)07-0066-05

      猜你喜歡
      圖元線狀編輯器
      無取向硅鋼邊部線狀缺陷分析及改進措施
      山東冶金(2022年2期)2022-08-08 01:50:44
      一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運用
      學術(shù)出版物插圖的編排要求(一):圖注
      聯(lián)鎖表自動生成軟件的設(shè)計與實現(xiàn)
      熱軋卷板邊部線狀缺陷分析與措施
      山東冶金(2019年1期)2019-03-30 01:34:54
      你距離微信創(chuàng)作達人還有多遠?
      車輛段收發(fā)車運行圖編輯器的設(shè)計與實現(xiàn)
      線狀生命
      山東青年(2016年2期)2016-02-28 14:25:33
      基于Qt繪圖系統(tǒng)的圖形應用優(yōu)化研究與實現(xiàn)
      軟件(2016年12期)2016-02-13 05:58:14
      基于VLIW目標機的ELF二進制編輯器設(shè)計與實現(xiàn)
      梁平县| 札达县| 秦皇岛市| 顺昌县| 奎屯市| 三江| 嵩明县| 兰西县| 清涧县| 天祝| 肃北| 龙川县| 梅州市| 龙里县| 汉中市| 普格县| 德庆县| 浦县| 光山县| 义乌市| 镇巴县| 客服| 平果县| 来凤县| 西平县| 永州市| 望奎县| 获嘉县| 镇坪县| 修武县| 陈巴尔虎旗| 万安县| 闸北区| 寿阳县| 会同县| 台中县| 富锦市| 桃江县| 丰城市| 汽车| 溧阳市|