□崔創(chuàng)來
(山西省地圖集編纂委員會辦公室,山西太原030002)
基于Core lDRAW X4、VB6.0國界符號繪制的技術研究
□崔創(chuàng)來
(山西省地圖集編纂委員會辦公室,山西太原030002)
介紹了國界的重要性,通過分析現(xiàn)階段CorelDRAW X4中繪制國界符號常用的方法以及其存在的不足,從而提出利用VB6.0開發(fā)國界符號繪制程序的必要性。圖文并茂,通過VB代碼剖析了主要技術的實現(xiàn)。
國界符號;CorelDRAW X4;VB6.0
境界是六大地理要素之一,是地圖必須具備的內(nèi)容。
普通地圖上,境界分為政區(qū)境界和其他境界。政區(qū)境界包括國界(已定、未定),省、自治區(qū)、中央直轄市界,自治州、盟、省轄市界,縣、自治縣、旗界等。其他境界包括地區(qū)界、停火線界和禁區(qū)界等。境界用不同結構、不同粗細與不同顏色的點線符號表示。
國界是一個國家行使主權的界線,是國家領土范圍的地理界線。具有相對的穩(wěn)定性、限定性和不可侵犯性。國界要嚴格依據(jù)我國政府正式簽訂的邊界條約、邊界議定書及附圖準確繪出。待議地區(qū)的界線,按我國政府有關規(guī)定處理。編繪完成后須經(jīng)有關部門審查批準。已定國界符號通常用表示,未定國界符號通常用表示。
目前,CorelDRAW X4中繪制國界符號常用的方法有以下幾種(以已定國界為例,未定國界方法類似):
(1)在沒有選中任何對象的情況下,打開“輪廓筆”對話框,確定線寬;單擊輪廓筆“編輯樣式”按鈕,彈出“編輯線條樣式”窗口,將其設置為8黑2白1黑2白;用貝塞爾工具沿國界線中心繪制曲線。此時,繪出的曲線為樣式;利用畫線工具畫豎線并設置其寬度、長度,最后通過復制、粘貼、旋轉完成垂直短線的擺放。
(2)在樣式設置、繪制曲線方面與第一種方法相同,主要區(qū)別是垂直短線的繪制,它是通過在曲線兩端放置設置好寬度及長度的垂線,然后點擊效果菜單下的調和工具,通過路徑Path按鈕建立以國界線為目標的新路徑,設置合適的固定間距,勾選旋轉全部對象來完成。
(3)先用FontCreator制作國界線單元符號字體庫文件;再將其拷貝至Windows/ Fonts/目錄下;打開CorelDRAW X4用貝塞爾工具沿國界線中心繪制曲線,點擊文本菜單下“使文本適合路徑”命令使用國界字體符號。
以上是目前較為常見的國界符號畫法,第一種方法存在人工參與比較多、工作量大、精度低等缺點;第二種方法較前一種效率提高了很多,但在計算固定間距時容易造成垂直短線與水平橫線之間錯位;最后一種方法在設置線寬及長度方面不方便,只能通過調整字體大小來接近要求。另外,在國界線急彎處符號效果會不太理想。
鑒于上述幾種方法存在不足以及國界符號繪制的嚴肅性,通過CorelDRAW X4自帶的開發(fā)接口CorelDRAW 14.0 Library,利用VB6.0開發(fā)國界符號繪制程序就迫在眉睫。
3.1 環(huán)境設置
在VB6.0中單擊工程菜單下“引用”命令,彈出“引用”窗口,在引用列表中勾選“Corel-CorelDRAW 14.0 Libray”。
添加引用
在通用聲明中添加
Dim core As CorelDRAW.Application
3.2 “一橫一點”符號繪制
3.2.1 計算“一橫一點”各構成部分長度
“—·—·”單位符號“一橫一點”由兩實兩虛部分組成,兩實即橫線(簡稱黑線)和點,兩虛即點兩端空白的部分(簡稱白線)。一般它們之間的比例關系為8黑2白1黑2白。當然用戶可以根據(jù)需要通過程序界面重新設置,也可以直接設置黑線或白線的長度,這兩種方式是相互聯(lián)動的,其關系為長度=黑白節(jié)×國界線寬度。實部“點”其長度或直徑與國界線寬度相同?,F(xiàn)將黑線長定義為txthc,白線長定義為txtbc,國界線寬度定義為txtkd,那么單位符號長length0=Val(Me.txthc.Text)/25.4+2*Val(Me.txtbc.Text)/25.4+Val(Me.txtkd.Text)/ 25.4
紅線區(qū)域為長度及比例關系輸入部分
因此,以上述程序界面數(shù)字為例,黑線長度為8×0.25=2毫米,白線長度為=2× 0.25=0.5毫米,點長度為0.25毫米,單位符號長度為2+0.5×2+0.25=3.25毫米。
3.2.2 在各構成部分交接處添加節(jié)點,并打斷
將沿國界線中心繪制的曲線定義為:Dim guojie As CorelDRAW.Shape,其長度為length1=guojie.Curve.Length,整個曲線包含單位符號數(shù)量為num=length1除以length0取整,在曲線上添加節(jié)點可以通過guojie. Curve.SubPaths(1).AddNodeAt方法完成。定義 Dim nodranAsNew CorelDRAW. NodeRange,將添加的節(jié)點放入到nodran中,利用nodran.BreakApart、guojie.BreakA-part方法將這些節(jié)點處打斷,結合3.2.1。具體參考代碼如下:
3.2.3 刪除虛部,選擇實部“點”形狀
比較打斷后各曲線與“一橫一點”各構成部分的長度,定義ShapeRange對象,
將黑線、點、白線分別添加到ran1,ran2、ran3中,利用ran3.Delete方法刪除白線(即虛部)。
實部“點”的形狀可以在方形和圓形間選擇,具體由編輯確定。對于方形,通過上述步驟即可完成。對于圓形,需要進行圖形替換。首先,創(chuàng)建直徑等于國界線寬度的圓,ActiveLayer.CreateEllipse2(0,0,(Val(Me.txtkd.Text)/25.4)/2,,,,False),定義CorelScript對象并引用 Set scr=core. CorelScript,通過其方法 GetObjectsCDRStaticID()得到所畫圓的編號,屬性SetReferencePoint 9將中心點設置為定位點,利用 GetPosition x,y、DuplicateObject、Set-Position x,y方法完成坐標獲取、圖形復制、替換。參考代碼如下:
3.3 垂直短線繪制
打開“輪廓筆”對話框,在窗口右上方是“箭頭”選項,點擊下拉表彈出各式各樣的箭頭,其中包含垂直短線箭頭,將它添加到曲線兩端,結果發(fā)現(xiàn)無論曲線如何彎曲,它始終垂直于曲線兩端,符合制作國界符號要求?;谶@種思路,創(chuàng)建Shape對象Dim jiantou As CorelDRAW.Shape,通過jiantou.CreateArrowHead方法創(chuàng)建箭頭。然后將創(chuàng)建的箭頭添加到國界符號黑線的兩端。參考代碼如下:
本文介紹了目前CorelDRAW X4中繪制國界符號幾種常用的方法,并分析它們存在的不足,提出了通過CorelDRAW X4自帶的開發(fā)接口CorelDRAW 14.0 Library開發(fā)程序的必要性,文章不僅圖文并茂進行了詳盡地闡述,而且通過實例代碼逐步剖析,介紹了環(huán)境配置、“一橫一點”符號繪制,圖形替換以及垂直短線繪制,最終完成了已定國界符號“”的繪制,該程序已經(jīng)在做圖實踐中得到了很好的應用。
【1】喬俊軍,房雪玲,張海文.基于CorelDRAW的制圖要素符號化研究[J].測繪與空間地理信息,2013(8):30-33.
【2】張力果,趙淑梅.地圖學[M].高等教育出版社,1983.
【3】國家測繪局人事司、國家測繪局職業(yè)技能鑒定指導中心.地圖制圖(技師版)[M].測繪出版社,2009.
【4】祝國瑞,郭禮珍,尹貢白,徐永利.地圖設計與編繪[M].武漢大學出版社,2000.
【5】張榮群,袁勘省,王英杰.現(xiàn)代地圖學基礎[M].中國農(nóng)業(yè)大學出版社,2002.
P231.5
B
2095-7319(2014)05-0044-05
崔創(chuàng)來(1976—),男,漢族,山西稷山人,工程師,太原理工大學測繪工程專業(yè),主要從事電子地圖與GIS開發(fā)工作。