劉軍,劉全海,楊志惠,王華
(常州市測繪院,江蘇常州 213002)
武進市政部件普查數據采集軟件開發
劉軍?,劉全海,楊志惠,王華
(常州市測繪院,江蘇常州 213002)
主要介紹武進市政部件普查數據采集軟件各功能模塊的特色,并詳細介紹了各功能模塊開發思路,并給出了程序的主要代碼。
AutoCAD二次開發;市政部件;功能模塊;XDATA擴展屬性;Access數據庫;程序源碼
“電子政務”在現代化城市管理中,對全面提升城市市政公用設施安全保障和服務管理能力,具有重要意義。武進區“市政設施信息系統”建設項目于2009年8月份啟動。常州市測繪院負責數據采集與整理建庫等工作,廣州城信所負責管理系統的開發與數據標準制定等工作。根據廣州城信所提供的數據標準與要求,我院自主研發了“武進市政部件普查數據采集軟件系統”。
根據武進市政部件數據的標準與要求、作業人員的工作特點以及整個項目實施流程,設計了整個軟件系統的8個功能模塊。軟件的主要功能包括外業數據采集坐標計算、部件成圖、部件的繪制、部件屬性查詢與修改、面狀與線狀部件屬性值的批量修改、部件屬性批量處理、部件屬性輸出與部件數據監理等。
整個系統涵蓋了AutoCAD VBA二次開發技術、文件存取技術、數據庫技術與COM技術。各功能模塊如圖1所示。

圖1 武進市政部件普查數據采集軟件功能模塊
(1)外業數據采集坐標計算功能
處理外業人員利用儀器采集回來的市政部件數據格式是以“點號、水平角、豎直角、斜距、棱鏡高”存儲的,所以,需根據設站點與后視點的坐標計算出各碎步的坐標。計算成果輸出為文本文件與Excel文件兩種格式,在AutoCAD上展點成圖可以使用任意一種數據格式。碎步點坐標計算模塊界面如圖2所示。

圖2 外業數據采集坐標計算
(2)部件成圖
部件成圖功能,即把部件的坐標數據展繪到Auto-CAD中,用符號化的方法表示出部件的具體位置與部件的性質。需要說明的是在數據采集過程中我們已經對各類部件進行編碼,點號中包含了部件的編碼,故成圖軟件根據唯一的編碼在Access表中的對應塊名展繪出相應的符號,如107HF即代表的是郵電井蓋、方形。根據甲方提供相關部件屬性數據在部件的展繪時一并添加到其對應位置的XDATA附加屬性中,以備數據入庫使用。這樣大大降低了作業人員的勞動量,提高了生產效率。如圖3所示為展繪的帶有編號的點位。

圖3 部件成圖
(3)部件的繪制
部件的繪制功能提供外業人員調查到的部件人工展繪到AutoCAD中,在AutoCAD屏幕菜單中顯示各類部件,作業人員根據類別打開屏幕菜單,找到所需的部件點并使用鼠標左鍵單擊,程序會彈出其屬性對話框,作業人員輸入其屬性值完畢即可在AutoCAD工作區繪制部件符號,如圖4所示。

圖4 部件的繪制與其屬性數據輸入

圖5 部件屬性查詢與修改
(4)部件屬性查詢與修改
部件屬性查詢與修改功能模塊為作業人員提供逐一查看、增加、修改、刪除等編輯部件屬性值功能。點選一個部件時,程序將彈出此部件的屬性對話框,作業人員可以在此對話框中編輯部件的屬性值,如圖5所示。
(5)面狀與線狀部件屬性值的批量修改
對于綠地在市政部件中采用面狀符號表示,其屬性值含有面積值字段,地面管線是以線狀符號表示,其屬性值中含有長度值字段,考慮到兩類數據的特殊性,單獨編寫“面狀與線狀部件屬性值的批量修改”功能模塊處理此類數據,起到事半功倍的效果。此類屬性數據一般在數據檢查完畢確保面狀地物閉合再進行批量處理面積與長度屬性值。框選所有的市政部件,該功能將自動把面狀與線狀部件的面積值與長度值自動添加到其擴展屬性中。
(6)部件屬性批量處理
部件屬性批量處理為作業人員提供同類部件相同屬性的批量處理工具,因為市政部件的屬性很多,一般的同名部件的屬性值基本相同,所以此模塊在市政部件屬性數據處理中發揮了極大作用,解決了手工逐一處理部件屬性的缺點。首先使用pline線繪制需要批量處理屬性部件的范圍,選擇此條線,程序彈出圖6所示的對話框。作業人員選擇需要批量處理屬性值的部件,根據界面提示輸入相應的屬性值點擊確定即可。程序自動處理線范圍內指定的部件屬性值。

圖6 部件屬性批量處理
(7)部件屬性輸出
部件屬性輸出即把AutoCAD中部件的擴展屬性值輸出到Excel表中,表格中有對應的字段名稱,供作業人員檢查各部件的屬性數據的錯漏問題,根據錯漏部件的唯一標識句柄在AutoCAD中查找到對應的部件,使用部件查詢與修改模塊工具修改其屬性值。部件屬性輸出數據樣式如圖7所示。

圖7 部件屬性輸出數據樣式
(8)部件數據監理
部件數據監理檢查市政部件的邏輯錯誤,如代碼與塊符號、屬性的匹配情況以及面狀地物的封閉與否、部件所在的圖層是否正確等。數據入庫前必須經過此模塊檢查,確保數據無邏輯錯誤,否則將給后繼工作帶來不便。
(1)軟件開發整體構思
軟件開發涉及AutoCAD繪圖軟件與數據庫管理應用程序Microsoft Office Access 2003。首先把每一市政部件的基本信息存儲到Access數據庫文件中,在繪制部件與部件檢查等操作時程序查詢此數據庫文件中的部件屬性數據,通過程序把部件的屬性與數據庫聯系起來,在AutoCAD中實現市政部件繪圖、數據檢查等功能。如根據部件的唯一國標碼確定市政部件所在的圖層、市政部件的符號名稱、市政部件的XDATA附加屬性個數以及部件是否閉合等等,因此對數據庫的查詢顯得尤為重要。市政部件屬性數據庫文件樣式如圖8所示。

圖8 市政部件屬性庫文件樣式
(2)程序主要代碼
本軟件采用DAO連接數據庫模式,在使用DAO對象之前,需要在AutoCAD的VBA集成開發環境中,選擇【工具/引用】菜單項,從彈出的對話框中選中【Microsoft DAO 3.6 Object Library】選項,引用DAO的對象模型。

武進市政部件普查數據采集軟件在設計與開發過程中所采用的技術,針對此類復雜數據的處理過程,取得了很好的效果;提供了自動展點繪制部件與批量處理屬性數據的工具;在屬性輸入與查詢對話框中采用了控件數組,節約了控件資源;繪圖軟件與數據庫相結合,實現了軟件方便管理,結構緊湊等優點;程序運行穩定,功能強大,靈活的功能定制,有效地提高了生產效率,得到了作業人員的好評。
[1] 李鳳華.AutoCAD 2002/2000 VBA開發指南[M].北京:清華大學出版社,2001
[2] 張帆,鄭立楷等.AutoCAD VBA開發精彩實例教程[M].北京:清華大學出版社,2004
Software Development of Wujin Municipal Components Collection
Liu Jun,Liu QuanHai,Yang ZhiHui,Wang Hua
(Changzhou Serveying and Mapping Institute,Changzhou 213002,China)
This paper details Wujin municipal components collection software features of each functional module;And details the development of ideas of each functional module.The main code of this programme is given.
AutoCAD development;Municipal components;Functional module、XDATA Additional Properties;Access database;program code
1672-8262(2010)06-43-04
P208
B
2010—01—07
劉軍(1978—),男,工程師,主要從事測繪軟件研發與測繪質量管理工作。