邊頂山



摘要:文章介紹了根據(jù)專題電子海圖制作的要求和現(xiàn)狀,利用AutoCAD的二次開發(fā)插件的數(shù)據(jù)轉(zhuǎn)換功能,準確快速地轉(zhuǎn)換數(shù)據(jù),從而提高專題電子海圖的制作效率。
關(guān)鍵詞:AutoCAD;二次開發(fā);專題電子海圖;數(shù)據(jù)轉(zhuǎn)換
1背景與現(xiàn)狀
專題電子海圖通常是在標準電子海圖中突出表示某一要素或某些要素;或者是將標準電子海圖的內(nèi)容表示之外,同時繪出一些專門內(nèi)容。由于這些專題要素和內(nèi)容種類繁多,數(shù)據(jù)來源不同,數(shù)據(jù)格式各異,就需要編繪人員對這些數(shù)據(jù)資料進行處理,尤其是對它們的投影、坐標系、數(shù)據(jù)格式等進行轉(zhuǎn)換。
目前,上海海圖中心采用海道測量生產(chǎn)數(shù)據(jù)庫HPD(Hydrographic Product Database)進行電子海圖的制作,其中也包括專題電子海圖的制作。這些專題電子海圖主要是在標準電子海圖的基礎(chǔ)上突出表示碼頭、港池、航道以及重要水道的水深、等深線等要素。在實際生產(chǎn)制作時,經(jīng)常遇到外業(yè)測量數(shù)據(jù)或者用戶提供的第三方數(shù)據(jù)只有單一的AutoCADdwg文件數(shù)據(jù)。雖然HPD提供了顯示dwg文件數(shù)據(jù)的功能,但是由于dwg文件數(shù)據(jù)結(jié)構(gòu)的開放性以及客戶化的多樣性,僅僅使用HPD是無法完全滿足制作專題電子海圖的需要。
2遇到的主要問題
(1)坐標系轉(zhuǎn)換問題。dwg文件數(shù)據(jù)使用的坐標系與專題電子海圖使用的坐標系不一致,dwg文件數(shù)據(jù)使用的坐標系主要有北京1954坐標系、深圳獨立坐標系、鹽田港施工坐標系等,而HPD制作的專題電子海圖一般使用的是WGS84坐標系,兩者之間必須進行坐標系轉(zhuǎn)換。否則,dwg文件數(shù)據(jù)中的專題要素就不能正確地在HPD中顯示,也就不能正確地在專題電子海圖里生成對應物標,相關(guān)的專題電子海圖也就不能制作。
(2)水深數(shù)據(jù)讀取問題。專題電子海圖所需表示的專題要素,特別是水深數(shù)據(jù),其在dwg文件數(shù)據(jù)中表示方式各異,有dwg塊的,也有文字的。這些方式表示的水深數(shù)據(jù)在HPD中不能正確地讀取,也就不能在專題電子海圖里生成對應的水深物標,相關(guān)的專題電子海圖也是不能制作的。
3解決的方法
3.1海道測量工具包
海道測量工具包是通過對AutoCAD進行二次開發(fā)生成的一個DLL文件,可通過AutoCAD中的NETLOAD命令加載,主要用于海道測量數(shù)據(jù)的處理。這里主要介紹坐標轉(zhuǎn)換(zH)、水深保存(ssbc)等幾個命令功能來解決上述dWg文件數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換問題。
3.2解決的過程
3.2.1坐標系轉(zhuǎn)換
根據(jù)dwg文件數(shù)據(jù)中的文字說明,區(qū)分出dwg文件數(shù)據(jù)使用的是北京1954坐標系還是深圳獨立坐標系等其他坐標系。
(1)dwg文件數(shù)據(jù)是北京1954坐標系的,使用坐標轉(zhuǎn)換(zH)命令,輸入準確的中央經(jīng)線,選擇預設(shè)的《中國沿海1954年北京坐標系與WGS-84世界大地坐標系轉(zhuǎn)換參數(shù)》,即使用布爾莎七參數(shù)進行轉(zhuǎn)換,即可完成dwg文件數(shù)據(jù)從北京1954坐標系到WGS84坐標系的轉(zhuǎn)換。
(2)dwg文件數(shù)據(jù)是深圳獨立坐標系等其他坐標系的,由于沒有相應的布爾莎七參數(shù),需要根據(jù)dwg文件數(shù)據(jù)中固定點坐標和對應標準電子海圖中的WGS84大地坐標,使用坐標轉(zhuǎn)換軟件進行仿射變換參數(shù)求解。再使用仿射變換(FS)命令,輸入求解出的仿射變換參數(shù)進行轉(zhuǎn)換,即可完成dwg文件數(shù)據(jù)從深圳獨立坐標系等其他坐標系到WGS84坐標系的轉(zhuǎn)換。
3.2.2水深數(shù)據(jù)讀取
在dwg文件數(shù)據(jù)中選中水深數(shù)據(jù),右鍵查看對象特性,區(qū)分出水深數(shù)據(jù)是dwg塊的還是文字的,并且還可以查看獲取到水深數(shù)據(jù)對象的塊名、塊屬性、高度等信息。
(1)水深數(shù)據(jù)是dwg塊的,使用水深保存(ssbc)命令,選擇塊水深,輸入獲取的塊名、整數(shù)及小數(shù)名稱,勾選按屬性名,再拉框選擇所有dwg塊水深,確認后就可以將dwg塊水深導出為xyz文件使用。如果dwg塊水深沒有整數(shù)及小數(shù)名稱,則不勾選按屬性名,而是輸入獲取的整數(shù)及小數(shù)高度來將dwg塊水深導出為xyz文件使用。
(2)水深數(shù)據(jù)是文字的,需單獨顯示文字水深所在的層,再使用水深保存(ssbc)命令,選擇斜水深,根據(jù)文字炸開與否,沒炸開的點選定位點,炸開的點選對齊點,并輸入獲取的整數(shù)及小數(shù)高度,再拉框選擇所有文字水深,確認后就可以將文字水深導出為xyz文件使用。
(3)無論水深數(shù)據(jù)是dwg塊的還是文字的,如果其整數(shù)及小數(shù)高度沒有進行區(qū)分,還可以使用ssp命令來將水深數(shù)據(jù)導出為xyz文件使用。
4小結(jié)
利用AutoCAD的二次開發(fā)插件對單一的AutoCADdwg文件數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,操作簡便快速,不易出錯,使得專題電子海圖的制作效率有了大幅地提高。現(xiàn)將專題電子海圖的基本制作流程歸納如下:
通過AutoCAD的二次開發(fā)插件與HPD的結(jié)合使用,基本滿足了當前專題電子海圖的制作生產(chǎn)需要,但是通過仿射變換轉(zhuǎn)換的dwg文件數(shù)據(jù)對于精度要求較高的用戶可能并不一定適用,還需要作進一步的研究解決。