邊頂山



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