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