?

基于Teigha.NET 和MapWinGIS 的多源異構測繪數據管理系統設計與實現

2023-08-07 03:12何清
安徽地質 2023年2期
關鍵詞:二次開發異構實體

何清

(安徽省地質環境監測總站,安徽合肥 230001)

0 引言

遙感技術與計算機技術的日益成熟,大大推動了測繪技術的不斷進步,測繪已融入各行各業[1-2]。測繪對象范疇的不斷擴大、觀測工具的多樣化和處理手段的智能化導致觀測數據呈現多源化的特征。這些數據的來源、結構、類型完全不同,形成了海量的多源異構數據[3]。面對數據源類型復雜、比例尺和投影多樣、數據量巨大、結構各異的測繪數據,測繪單位不僅需要對數據進行安全高效的存儲,還需要考慮對已有的數據如何進行有效管理與利用,避免數據資源的浪費[4]。傳統的數據存儲與管理技術已無法滿足測繪發展需求[5],構建對多源異構數據的一體化管理平臺迫在眉睫。

傳統的系統開發方式是通過COM 技術實現系統與AutoCAD 等應用程序之間的通信[6-8],因此系統的運行依賴AutoCAD 等商業軟件的支持。隨著計算機技術的發展,開源軟件在操作系統、數據庫等多個方面的應用逐漸發展成熟[9-10],通過對開源組件庫的調用,可幫助系統擺脫對商業軟件的依賴,有效提高系統的運行效率。而Teigha.NET[11]是一套面向對象的支持多平臺、多版本、多格式的CAD 文件的開源類庫,可脫離AutoCAD 環境實現讀寫操作、繪制渲染和轉換輸出等?;诖?,本研究以C/S為基本結構,采用了C#語言[12]、PostgreSQL 數據庫、MapWinGIS 二次開發和Teigha.NET二次開發等多種開發手段,調用開源類庫以脫離AutoCAD 等商業軟件環境,設計和實現了多源異構測繪數據管理系統。系統實現了數據的高效存儲、共享和處理,大大提升了數據的利用效率,為多源異構數據的有效管理提供參考。

1 系統總體設計

1.1 系統建設目標

針對測繪數據的海量性、多源性、異構性的特點,系統致力于構建一種多源異構數據統一整合方法。通過研究開發,可以便捷地對空間數據進行坐標變換和格式轉換,實現測繪空間數據與屬性數據的高效管理,大大提高數據的利用效率,為各項工作提供科學合理準確的數據綜合分析。

1.2 系統總體結構

根據系統功能建設目標需求,將整個系統的層次結構分為應用層、平臺層和數據層三個層次,其結構框圖如圖1 所示。三層系統結構具有較強的靈活性、可拓展性,符合綜合發展的趨勢,滿足系統的功能需求[13-14]。

圖1 系統結構框圖Figure 1.System structure

1.3 系統開發環境

系統以Visual Studio.NET[15-16]作為軟件的集成開發環境,以面向對象的C#為開發語言,采用模型-視圖-邏輯控制器的三層軟件架構,構成整個系統應用功能模塊的集成支撐。

考慮到存儲和處理海量的DWG格式數據文件的需求,并考慮到DWG 文件格式的不公開性,Teigha for.dwg 支持DWG 的多個版本,能直接讀取DWG文件獲取數據,基于此可進一步實現坐標的變換和文件格式轉換,在此基礎上所開發的程序可完全脫離AutoCAD 平臺運行,提高數據的處理效率,具有較高的安全性。Teigha.NET 是基于Teigha for.dwg 創建的操作DWG 文件的.NET 庫,可在微軟的.NET 開發平臺下使用,具有較高的開發效率和強大的功能。

MapWinGIS是一套二次開發組件庫,其核心庫是一個名為MapWinGIS 的ActiveX 控件,可以利用這個ActiveX 組件在系統中添加GIS 的相關功能,例如:地圖顯示、繪圖、存儲GIS 數據以及一些簡單的地圖操作,有助于實現數據的可視化,決策者可根據地圖數據做到統籌全局、及時決策。MapWinGIS是一個相當高效的開源地圖引擎,數據瀏覽漫游速度很快,開發環境友好,封裝接口對象完善,是GIS 程序開發的較好選擇。

1.4 關鍵技術

1.4.1 基于Teigha.NET的CAD測繪數據坐標轉換技術

DWG 文件坐標變換的目的是實現文件內每個塊實體的坐標變換,每個塊實體包含一個或多個實體,所以DWG文件坐標變換的實質是每個實體坐標變換的實現[17]。

系統中DWG文件的坐標轉換模塊是基于Teigha.Net 開發實現的。相較于傳統的逐塊轉換的方法[18],系統采用了逐點轉換的方法,大大提高了坐標轉換效率和精度。系統可依次遍歷圖形中的所有實體,讀取各個實體的所有節點的位置屬性,并對各點的坐標逐一進行坐標轉換。模塊主要進行不同坐標基準下高斯投影坐標系之間的轉換或相同坐標基準下的高斯換帶計算。轉換模型采用的是布爾莎七參數模型或四參數模型。進行坐標變換后,模塊會將變換后的坐標值重新賦值給該點的位置屬性,從而達到轉換完成圖形中的所有實體,這種轉換方法的精度只取決于轉換參數的求取誤差,不存在額外的精度損失。

1.4.2 基于Teigha.NET實現CAD數據與shp數據的轉換

利用Teigha.NET 類庫,可讀取選定的DWG 文件,并將DWG 文件中所含的各類數據信息以對象的形式保存在一個數據庫中。通過遍歷DWG 數據庫,將實體歸于點、線、面,并讀取對應實體的擴展數據、坐標等屬性信息,并輸出到相應的數據表,分別輸出到shapefile 點、線、面類型文件中。這種轉換方式,不會造成屬性信息的丟失,極大地減輕了后期數據處理工作。轉換結果如圖2所示。

圖2 DWG轉shp結果圖Figure 2.Transformation result from DWG to shp

2 多源異構測繪成果數據庫結構設計

2.1 系統數據庫的建立

系統數據庫作為頂層數據庫,為保證數據的安全性,針對不同的賬戶信息設置了不同的權限,主要實現存儲和管理賬號信息、用戶權限、文件上傳等基本功能,它隱藏了數據庫內部復雜而又多樣化的數據存儲結構,作為用戶訪問數據庫中測繪空間數據的橋梁,直接面向用戶。系統數據庫的結構如圖3所示。

圖3 系統數據庫結構Figure 3.System database structure

2.2 元數據庫的建立

由于測繪數據種類繁雜,包含地形圖、影像圖、控制點資料等多種類型測繪空間數據,數據格式各異,時序各不相同,覆蓋的范圍也不一樣。為整合、存儲多元異構的測繪空間數據,系統建立元數據庫[19]用于保存文件的屬性信息,元數據的數據結構如圖4所示。在元數據庫中建立“文件公有信息”和“文件私有信息”兩類表格。文件公有信息表用于存儲不同類型數據的公共屬性,可以間接提高大規模數據檢索的性能。文件私有信息表用于存儲不同類型數據特有的屬性信息,在文件公有屬性的基礎上對不同類型數據的私有屬性進行補充,確保文件屬性的完整性。

圖4 元數據庫結構Figure 4.Meta-database structure

2.3 文件數據庫的建立

為解決二進制數據文件的存儲問題,系統建立文件數據庫,其數據庫結構如圖5 所示。文件數據庫采用分段存儲的方式對二進制文件進行存儲,將文件轉化為二進制數據流,再以固定長度進行分割存儲,這種方式既提高了文件輸入、輸出的速度,也避免了造成數據庫膨脹。

圖5 文件數據庫結構Figure 5.File database structure

3 系統功能實現

系統采用了PostgreSQL 數據庫、MapWinGIS 二次開發和Teigha.NET二次開發等混合開發模式,構建了“多源異構測繪數據管理平臺”,實現了信息化管理平臺與PostgreSQL數據庫的無縫對接。

系統具有以下功能:

(1)文件管理。文件的上傳與下載、數據的備份與還原功能,實現了礦區數據的集中統一管理與檢索查詢。

(2)圖表顯示??梢詫hp 數據和CAD 數據瀏覽與導航。在“數據顯示”窗口中劃分了多個視圖,各種類型數據可同時加載顯示。

(3)圖形編輯。提供基本的圖形編輯與繪畫功能,主要包含線打斷、線延伸、線修剪、添加文本等。由于測繪數據中DWG 圖形數據量通常很大,極易導致數據更新時制圖卡頓。因此為解決該問題,系統實現了DWG圖形的局部導出更新功能。

(4)查詢統計分析??刹樵凕c坐標、兩點距離及方位、線長、實體面積、實體擴展屬性等,輔助用戶進行圖形的統計與分析。

(5)定制報表。用于將指定圖形數據定制成.dat格式的文件。系統可將指定點、高程點、界址點、控制點、復合線和等高線生成數據文件。

(6)坐標變換。主要進行不同坐標基準下高斯投影坐標系之間的轉換或相同坐標基準下的高斯換帶計算。

(7)文件轉換。對DWG 文件與shp 文件格式進行相互轉換,同時實現控制點、高程點、野外測點等DAT數據的展繪。

(8)質量檢查。包括屬性完整性檢查、重復實體檢查、實體相交關系檢查和實體封閉性檢查功能,用于在數據入庫前對CAD圖形進行數據質量檢查。

(9)用戶管理。存儲用戶信息、訪問記錄以及信息化管理平臺的后臺信息,實現數據的安全訪問。

4 結束語

系統以Visual Studio.NET 作為軟件的集成開發環境,采用面向對象的C#開發語言,PostgreSQL 數據庫開發手段,構建了測繪數據管理系統,實現了信息化管理平臺與PostgreSQL 數據庫的無縫對接?;陂_源的MapWinGIS 和Teigha.NET 二次開發,使得系統功能實現可脫離AutoCAD 平臺,運用軟件工程技術以及內存管理等方法很好地解決了測繪空間數據信息化管理平臺兼容性與信息安全問題。針對不同空間基準、不同格式的各類測繪空間多源異構數據,構建各類測繪空間多源異構數據的數據結構轉換方法,并實現關系數據庫對測繪空間多源異構數據的高效管理,大大提高了數據的利用效率,為各項工作提供科學合理準確的數據綜合分析。

猜你喜歡
二次開發異構實體
試論同課異構之“同”與“異”
淺談基于Revit平臺的二次開發
前海自貿區:金融服務實體
淺談Mastercam后處理器的二次開發
西門子Easy Screen對倒棱機床界面二次開發
實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
兩會進行時:緊扣實體經濟“釘釘子”
振興實體經濟地方如何“釘釘子”
異構醇醚在超濃縮洗衣液中的應用探索
overlay SDN實現異構兼容的關鍵技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合