孫欽幫+孫麗艷+張沖+姜倩+陳兆林
摘 要:宗海圖是海域使用權(quán)證書和宗海檔案的主要附圖,是申明海域使用權(quán)屬的重要依據(jù),其繪制的標(biāo)準(zhǔn)性和規(guī)范性直接會影響到海域的科學(xué)化管理。該文基于VB和AutoCAD宗海界址圖繪制系統(tǒng)的研究與實例開發(fā),為宗海圖繪制提供了一種思路和方法,有利于提高宗海圖繪圖工作的自動化,大大提高工作效率和質(zhì)量,為海域使用管理和用海審批提供了技術(shù)保障。
關(guān)鍵詞:宗海圖 VB AutoCAD 開發(fā)
中圖分類號:TP39 文獻標(biāo)識碼:A 文章編號:1672-3791(2016)09(a)-0001-03
Abstract: Parcel sea map is the Main figures of Certificates of the right to the use of sea areas and cases files, and is an important basis for stating the sea using right. The standard and specification of parcel sea mapping directly affects the scientific management of sea areas. Based on research and development cases using VB and AutoCAD system for Parcel sea boundary mapping, this article offers an idea and method for improving automation of parcel sea mapping. This method improves work efficiency and quality greatly and can provide technical support for management and approval of the use of sea area.
Key Words: Parcel sea map; VB; AutoCAD; Development
宗海圖是海域使用權(quán)證書和宗海檔案的主要附圖,是申明海域使用權(quán)屬的重要依據(jù),是海洋管理部門確定和管理海域使用權(quán)屬的技術(shù)依據(jù),同時又為海域使用者提供法律保障[1]。
目前,宗海圖常用的繪制平臺主要有AutoCAD、ArcGIS、MapInfo和Surfer等[2-4]。AutoCAD是目前世界上廣泛用于各種圖形應(yīng)用有關(guān)領(lǐng)域的功能強大的計算機輔助設(shè)計軟件,由于其使用方便、功能強大,被廣泛應(yīng)用到測繪制圖領(lǐng)域。宗海圖作為測繪制圖的一部分,具有測繪制圖的共性,但也有其特殊性。因此AutoCAD作為通用性軟件,在宗海圖繪制某些方面功能略顯不足,比如在宗海圖界址點批量提取、標(biāo)注與坐標(biāo)轉(zhuǎn)換、數(shù)據(jù)的格式轉(zhuǎn)換與管理等,需要針對特殊的需求對AutoCAD進行二次開發(fā)。該文基于VB和AutoCAD中的ActiveX Automation技術(shù)進行宗海界址圖繪制系統(tǒng)的研究與實例開發(fā),為宗海圖繪圖工作的自動化、精確化和高效化提供技術(shù)保障。
1 宗海圖
1.1 宗海圖介紹
宗海圖是海籍測量的最終成果之一,其精確記載宗海圖位置、界址點、界址線及相鄰宗海的關(guān)系,主要包括宗海位置圖和宗海界址圖。其中,宗海位置圖用于反映被權(quán)屬界限所封閉的同類型用海單元的地理位置,宗海界址圖用于清晰地反映被權(quán)屬界限所封閉的同類型用海單元的形狀和界址點分布[5]。
1.2 宗海界址圖
宗海界址圖主要包括7個方面的內(nèi)容:(1)毗鄰的陸域和海域要素,用海方案或已有用海設(shè)施、構(gòu)筑物。(2)該宗海及各內(nèi)部單元的圖斑、界址線、界址點及其編號。(3)相鄰宗海圖斑、界址線、界址點及項目名稱。(4)圖廓及經(jīng)緯度標(biāo)注。(5)界址點編號及坐標(biāo)列表。(6)宗海內(nèi)部單元、界址線與面積列表。(7)圖名、坐標(biāo)系、比例尺、投影與參數(shù)、指北針、繪制日期,測量單位等[6]。
2 VB和AutoCAD系統(tǒng)研究與實例開發(fā)
Visual Basic(簡稱VB)是Microsoft公司推出的面向?qū)ο蟮目梢暬幊坦ぞ?,并較好地支持ActiveX技術(shù)開發(fā)。VB作為二次開發(fā)工具,具有語法簡單,功能強大,調(diào)試方便等特點。此外,AutoCAD R14版本起,軟件引入了ActiveX Automation服務(wù)功能,使AutoCAD與其他Windows程序的數(shù)據(jù)共享變得非常容易[7]。
2.1 VB在AutoCAD中繪制宗海圖
要在AutoCAD中使用ActiveX Automation技術(shù),需要在VB 中選擇AutoCAD作為其對象,方法是在VB中選菜單“工程/引用”中選中AutoCAD2007 Object Library。在VB中可以用New 關(guān)鍵字、GetObject、CreateObject函數(shù)直接訪問AutoCAD應(yīng)用程序?qū)ο蟆?/p>
2.1.1 獲取和創(chuàng)建AutoCAD對象
下面語句用GetObject或CreateObject函數(shù)直接引用應(yīng)用程序?qū)ο螅?/p>
Dim AcadApp As AcadApplication 定義AutoCAD應(yīng)用
Dim ThisDrawing As AcadDocument 定義AutoCAD文檔
Set AcadApp = GetObject(, "AutoCAD.Application") 獲取AutoCad應(yīng)用程序
If Err > 0 Then
Set AcadApp = CreateObject("AutoCAD.Application") 創(chuàng)建AutoCad對象
End If
Set ThisDrawing = AcadApp.ActiveDocument 獲取AutoCAD的當(dāng)前文檔
AcadApp.Visible = True 設(shè)置AutoCAD.Application可見
2.1.2 點對象坐標(biāo)的提取
點對象坐標(biāo)利用GetPoint函數(shù)進行提取與顯示。
ForceForegroundWindow AcadApp.hWnd 將焦點切換到AutoCAD
a = ThisDrawing.Utility.GetPoint(, "Get Point Cordinate") 將獲取坐標(biāo)存儲在數(shù)組中
ForceForegroundWindow form6.hWnd 焦點切換回當(dāng)前的窗體
Txt1.Text = Format(Val(a(1)), "#####0.000") 將獲取坐標(biāo)x顯示到文本框中
Txt2.Text = Format(Val(a(0)), "#####0.000") 將獲取坐標(biāo)y顯示到文本框中
2.1.3 點坐標(biāo)轉(zhuǎn)換
通過建立坐標(biāo)轉(zhuǎn)換函數(shù)對提取的點對象坐標(biāo)進行坐標(biāo)轉(zhuǎn)換,把x、y坐標(biāo)轉(zhuǎn)換為經(jīng)緯度坐標(biāo)(B和L),具體函數(shù)設(shè)置如下:
Sub XYtoBL(xyType, ByVal L0 As Double, ByVal y As Double, ByVal x As Double, cdB As Double, cdL As Double, gdFalsEast As Double, gdFalseNorthing As Double)
End Sub
2.1.4 坐標(biāo)數(shù)據(jù)存儲
利用ActiveX Automation技術(shù),把提取的點對象坐標(biāo)存儲為Excel格式文件。
Set xlApp = CreateObject("Excel.Application") 創(chuàng)建EXCEL對象
Set xlBook = xlApp.Workbooks.Open(fname) 打開已經(jīng)存在的EXCEL工件簿文件
xlApp.Visible = True 設(shè)置EXCEL對象可見
Set xlSheet = xlBook.Worksheets(1) 設(shè)置活動工作表
xlSheet.Activate 激活工作表
xlBook.RunAutoMacros (xlAutoOpen) 運行EXCEL中的啟動宏
xlSheet.Columns.AutoFit 自適應(yīng)寬度
xlSheet.Cells.HorizontalAlignment = xlCenter 數(shù)據(jù)居中
xlSheet.Cells.VerticalAlignment = xlCenter 數(shù)據(jù)居中
2.2 程序與實例
在實際宗海圖繪制過程中需要進行坐標(biāo)提取與坐標(biāo)轉(zhuǎn)換、圖框繪制及制圖要素添加等,繪圖過程相對繁瑣、效率較低,且準(zhǔn)確度不高和成果檢核復(fù)雜;因此,該文所研究與開發(fā)的系統(tǒng),實現(xiàn)了宗海界址圖快速自動化成圖,繪制流程見圖1。
該文研究與開發(fā)的宗海界址圖繪制系統(tǒng)實現(xiàn)了對AutoCAD對象的基本操作,程序已在VB6.0和AutoCAD 2007環(huán)境下調(diào)試通過,宗海圖繪圖程序如圖2所示。程序具體操作首先在AutoCAD 2007打開工作底圖,運行開發(fā)程序,點擊單點拾取按鈕,在AutoCAD拾取宗海界址圖界址點坐標(biāo),程序自動進行坐標(biāo)轉(zhuǎn)換并輸出文本信息(圖3),并可在圖3中對提取和轉(zhuǎn)換的坐標(biāo)數(shù)據(jù)進行格式轉(zhuǎn)換等管理工作。
通過開發(fā)的宗海界址圖繪圖程序與實例數(shù)據(jù)的轉(zhuǎn)換可以看出通過VB可以快速、高效地啟動AutoCAD程序繪制圖形,有利于提高宗海圖繪圖工作的自動化,大大提高工作效率和質(zhì)量。
3 結(jié)語
該文基于VB和AutoCAD中的ActiveX Automation技術(shù)進行宗海界址圖繪制系統(tǒng)的研究與實例開發(fā),為宗海圖繪制提供了一種思路和方法。該技術(shù)實現(xiàn)的宗海圖快速成圖系統(tǒng)可以自動繪制宗海圖各制圖要素和坐標(biāo)數(shù)據(jù)轉(zhuǎn)換與管理,統(tǒng)一、科學(xué)和規(guī)范化了宗海圖繪制涉及的坐標(biāo)系、測繪精度和面積量算方法等工作,提高了宗海圖繪圖工作的自動化、工作效率和質(zhì)量,為海域使用管理和用海審批提供了技術(shù)保障。該程序在宗海圖實際繪制工作中得到很好的應(yīng)用,具有很強的實用性。
參考文獻
[1] 賈凱,馬軍,陳兆林,等.宗海圖編繪的幾個關(guān)鍵問題探討[J].海洋開發(fā)與管理,2015(4):16-18.
[2] 李勝,吳桑云,高俊,等.基于多軟件的ArcGIS宗海圖制圖技術(shù)研究[J].海岸工程,2012,31(2):76-82.
[3] 田雙鳳,黃承義,陳培雄,等.AutoCAD技術(shù)在海域使用論證宗海圖繪制中的應(yīng)用[J].科技創(chuàng)新導(dǎo)報,2010(30):76-77.
[4] 王建忠,王玉龍,李秀麗.利用AutoCAD繪制海域使用宗海圖件方法淺析[J].測繪與空間地理信息,2014,37(5):165-169.
[5] 孫玉超,曾紀(jì)勝.基于ObjectARX的宗海界址圖快速自動化繪制技術(shù)[J].科技創(chuàng)新導(dǎo)報,2014(35):106-108.
[6] 國家海洋局.HY/T124-2009海籍調(diào)查規(guī)范[S].2009.
[7] 王建東,李國昌.用VB對AutoCAD進行二次開發(fā)技術(shù)的研究[J].河北科技大學(xué)學(xué)報,2006,27(2):169-172.