王海俠
(蚌埠市勘測設計研究院,安徽蚌埠 233000)
很多測繪單位在生產過程中都積累了大量的CAD資料,這些資料不但數目比較龐大,而且比較分散,難于查找和更新,隨著時間的積累,會越來越不方便于管理。這些現實需求迫切需要使用信息化的管理方法來管理這些資料。GIS技術[1]是近年來得到快速發展的新技術,在許多行業都得到了大量應用。超圖軟件作為一家專業從事地理信息開發的公司,在地理信息產品的開發方面具有很強的技術優勢,形成了多個GIS開發平臺,包括組件式GIS開發平臺、服務式GIS開發平臺、嵌入式GIS開發平臺、桌面GIS平臺、導航應用開發平臺以及相關的空間數據生產、加工和管理工具[2]。Super Objects.NET就是其中應用最為廣泛的一種。本文就是基于SuperMap Objects組件技術,采用3層體系架構[3],通過二次開發來實現蚌埠市征地資料管理系統。
系統采用3層架構設計,從下至上分別為:數據訪問層、業務邏輯層、表示層。
數據訪問層(DAL):有時也稱為持久層,其主要功能是負責數據庫的訪問,可以訪問數據庫系統、二進制文件、文本文檔或XML文檔,具體來說就是實現對數據表的增加、刪除、修改、查找等操作。該層為業務邏輯層或表示層提供數據服務。
業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務進行邏輯處理。業務邏輯層是3層體系架構中的核心部分,它處于數據訪問層和表示層之間,在數據交換中起到承上啟下的作用。業務邏輯層的關注點主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計。業務邏輯層設計的好壞直接關系到軟件的質量。
表示層(UI):通俗地講就是展現給用戶的界面,用于顯示數據和接收用戶輸入的數據,為用戶提供一種交互式操作的界面。可以表示成Web方式,也可以表示成Winform方式。
在本系統中,數據訪問層是通過將征地圖形數據、屬性數據轉換為SuperMap SDX+支持的空間數據,在SQL Server 2008中通過調用SQL語句來實現征地數據的增、刪、改、查等操作,為業務邏輯層的調用提供或預留接口;業務邏輯層是對征地數據的具體操作,它根據表示層的業務需求以及數據層的功能數據操作接口來實現具體的功能。具體來說就是通過調用.NET組件、SuperMap Objects組件、數據層提供的接口來實現數據源管理、地圖操作、數據轉換操作、數據查詢操作、坐標轉換操作、空間分析操作,為表示層的具體功能展現提供或預留接口;表示層是根據業務邏輯層提供的接口,將征地管理系統實現的功能呈現給用戶的界面。
在3層體系架構中,系統主要功能和業務邏輯都在業務邏輯層處理。通過3層架構設計將各層的開發分離開,提高了各層內的高類聚和層間的低耦合,大大縮短了系統的開發周期。同時各層之間的數據得到了很好的封裝,降低了層與層之間的依賴,有利于標準化和各層之間的邏輯復用,開發人員可以集中于某一層進行設計,極大地提高了工作效率。 本系統的具體系統架構如圖1所示:

圖1 系統總體框架設計
面向對象技術強調在軟件開發過程中面向客觀世界或問題域中的事物,采用人類在認識客觀世界的過程中普遍運用的思維方法,直觀、自然地描述客觀世界中的有關事物。
面向對象技術的基本特征主要有抽象性、封裝性、繼承性和多態性[4]。
系統采用組件技術進行二次開發,由于組件技術本身就具有良好的抽象性、封裝性、繼承性和多態性,是面向對象的,因此體現了面向對象設計的思想。本系統正是運用面向對象技術,利用.NET組件、Super-Map組件進行二次開發,對組件或接口再次封裝,開發出系統需要的功能。
SuperMap Objects組件[5]由若干個 ActiveX控件[6]和數量眾多的自動化對(Automation Objects)構成,因此可以方便地嵌入到流行的可視化高級開發語言環境中進行二次開發。開發人員可以充分發揮Visual Basic、Visual C++、Visual Basic.Net、Visual C#.Net和Delphi等高級開發工具在面向對象編程、可視化程序設計等方面的優勢,結合各種第三方ActiveX控件件,輕松開發出各種GIS系統。
SuperMap Objects共有12個組件,包括工作空間組件,地圖組件,用于排版輸出地圖的布局組件,用于三維模型分析處理的三維組件,用于數據拓撲處理的拓撲組件,用于圖層顯示的圖層組件以及用于圖例顯示、屬性數據顯示、加密信息控制的輔助性組件[7]。利用SuperMap Objeccts組件和.NET組件可以快捷的開發出各種GIS系統。
SuperMap Objects的組件如圖2所示。

圖2 SuperMap Objects組件
SuperMap SDX+[8],是SuperMap GIS平臺中的空間數據庫引擎,是SuperMap GIS軟件的重要組成部分,它采用先進的空間數據庫存儲技術、索引技術和查詢技術,具有“空間-屬性數據一體化”、“矢量-柵格數據一體化”和“空間信息-業務信息一體化”的集成式空間數據庫管理能力,是GIS大型工程應用的理想選擇。
SuperMap SDX+具有一些幾個特點:
(1)充分結合數據庫技術,全面支持主流商用關系數據庫平臺。SuperMap SDX+可以全面支持目前的主流商用關系數據庫平臺,除了支持全球市場前列的Oracle、Oracle Spatial、SQL Server和DB2外,還支持國產的具有自主知識產權的達夢多媒體數據庫DM和人大金倉數據庫Kingbase。SuperMap SDX+對于這些數據庫提供全面的支持,為客戶端提供全透明的訪問。
(2)采用混合多級索引技術,實現海量空間數據管理能力。SuperMap GIS提出了混合多級索引技術,在數據庫引擎中采用了四叉樹索引、R樹索引、動態索引(或稱多級網格索引)和圖庫索引(原稱三級索引)4種索引,充分發揮每一種索引的優勢,提高數據訪問和查詢效率。
(3)全面支持各種空間對象類型。SuperMap SDX +提供了全面的空間對象類型的支持,既支持點、線、面、文本等簡單的空間對象,也支持多點、多線、湖中島、宗地等復合對象以及支持Network(網絡模型)、Route(路由模型)、TIN(三角格網模型)、DEM(數字高程模型)、GRID(格網數據)和Image(影像數據)等復雜數據模型。
(4)具備長事務處理能力。SuperMap長事務面向GIS應用的事務處理機制,具有短事務的主要優勢,而盡量避免了短事務的局限性。
系統功能設計包括以下幾個部分:系統登錄界面設計、數據源管理設計、數據處理設計、數據查詢設計、坐標轉換設計及空間分析設計。
(1)登錄界面設計
為了增強系統的安全性,避免非法登陸,需要給系統設置一定的登錄權限。通過設置用戶名和密碼,來確認登陸者的身份是否合法。
(2)數據源管理設計
數據源可分為文件型數據源和數據庫型數據源。文件型數據源支持只要系統支持,即可直接被系統直接讀取;數據庫型數據源是在數據庫引擎支持下的數據源。
(3)數據處理模塊設計
數據處理主要是指矢量/柵格數據的導入、導出和數據轉換。支持udb、dwg、shp等矢量格式以及jpg、tif等柵格數據數據格式的數據導入與導出。
(4)查詢設計
查詢設計主要是指由地圖查詢地圖數據的屬性查詢和根據條件來查詢地圖的條件查詢。
(5)坐標轉換設計
由于CAD圖情況,因此本系統的坐標轉換主要是北京54坐標系和西安80坐標系之間的坐標轉換。
(6)空間分析設計
空間分析設計主要是指地塊之間的合并設計、超出或減少范圍的緩沖區分析、各不同地塊使用類型的統計查詢設計。
系統總體功能設計如圖3所示:

圖3 征地資料管理系統總體功能結構設計
征地資料地籍數據庫分為勘測定界數據庫和面積計算數據庫。其中,勘測定界數據庫又包括征地數據庫和賠付數據庫,面積計算數據庫又包括供地數據庫、面積測算數據庫和宗地數據庫。
征地資料各數據庫的設計對于征地資料的分類、查詢和檢索和分析都起著至關重要的作用。因此系統開發前必須認真設計好征地資料各地籍數據庫。
通過研究和分析征地資料各地籍數據庫的特征和實際應用需求,可以得出以下結論:
(1)各征地資料地籍數據庫都應包含以下字段:國標碼(Code)、Cass碼(CassCode)、資料編號(ZL-BH)、任務書編號(RWSBH)、資料名稱(ZLMC)、電子文件名稱(DZWJMC)、委托單位(WTDW)、委托日期(WTRQ)、勘測日期(KCRQ)、面積(MJ)和備注(BZ)。
(2)不同的字段名根據需要賦予不同的字段類型。
(3)Cass碼必須唯一,并設為關鍵字。
(4)征地資料資料的Cass碼采用名稱加年份的方法進行分類。其中,不同征地資料地籍數據庫之間的Cass碼按名稱加以區分,名稱采用轉義編碼;同一征地資料地籍數據庫的Cass碼加名稱后按年份進行分類。
(5)各征地資料地籍數據庫之間的命名不能出現重名;
根據對征地資料地籍數據庫設計的分析,將CAD圖中的征地地籍數據庫加以分類,將各征地地籍數據庫中的不同地塊賦予不同的Cass碼,完成各征地地籍數據庫在Cass中的初步分類。然后將這些地籍數據庫,通過數據庫轉換工具加入到SuperMap SDX+空間數據庫中,實現對這些征地地籍數據庫的操作管理及進一步的查詢分析。
系統開發所使用的語言為C#。系統框架搭建完成之后,根據面向對象的思想,利用.NET組件、Super-Map Objects組件、SuperMap SDX+空間數據庫技術,在業務邏輯層實現對各功能模塊進行二次封裝,為表示層的功能顯示提供功能功能操作和接口,在表示層通過調用業務邏輯層的功能操作和接口,實現需要的功能。
通過二次開發實現了以下功能:實現了SuperMap工作空間的打開、新建和關閉功能;實現了地圖的放大、縮小、平移、全幅顯示、自由縮放、刷新功能;實現了文件型數據源和數據庫型數據源的打開和新建功能;實現了矢量數據和柵格數據的導入和導出功能;實現了有地圖查詢地圖屬性的功能。實現了根據查詢條件(如地塊的Cass碼、資料編號、任務書編號、委托日期、勘測日期、面積等)查詢關聯圖形的功能;實現了54坐標和西安80坐標之間的相互轉換功能;實現了部分空間分析功能。如緩沖區分析、疊置分析、統計分析、圖層合并功能。
系統主體界面如圖4所示:

圖4 征地資料管理系統主界面功能實現
本文以Mirosoft Visual Studio.NET為平臺,通過運用面向對象技術、SuperMap Objects組件技術、Super-Map SDX+空間數據庫技術,采用3層體系架構,實現了蚌埠市征地資料管理系統的開發與應用。通過二次開發,系統實現了工作空間管理、數據源管理、數據導入導出、地圖的縮放、屬性查詢、條件查詢、坐標轉換、空間分析等功能,使征地資料的管理更加方便快捷,提高了生產效率,有力地促進了單位檔案、資料的信息化建設。
系統具有具有以下幾個方面的優點:
(1)采用3層架構體系開發,使系統開發簡潔明了,并縮短了開發周期。
(2)采用了面向對象設計思想,利用SuperMap Objects組件技術,對各功能模塊進行二次封裝,實現了同一模塊的高內聚,不同模塊的低耦合,體現了軟件工程設計的思想。
(3)充分利用SuperMap Objects提供的組件功能,減少了開發的難度,縮短了開發的周期。
(4)充分利用SuperMap SDX+空間數據庫技術,方便了對征地資料地籍數據庫的管理和操作,也有利于程序對征地資料地籍數據庫的調用和分析。
(5)方面了征地資料的管理,有利于實現信息化辦公,同時推動單位信息化建設。
但是,系統也有以下幾個方面的不足之處:
①只是對征地資料的信息化管理進行開發,沒有對征地系統的整體管理進行設計開發,使系統功能有限,無法使用戶對征地管理的整體流程有清醒的認識。
②系統沒有實現進一步的網絡化,還沒有真正實現信息化辦公,有待于進一步研究實現。
③系統對征地資料管理系統的知識和認識還有所不足,有待于進一步的學習和加強。
[1] 陳述彭.地理信息系統導論[M].北京:科學出版社,1999:11~13.
[2] 北京超圖地理信息技術有限公司.SuperMap Objects開發教程(中級篇)[R].北京:2007:4~6.
[3] 熊斌.基于B/S三層架構OA系統的設計與實現[D].四川:電子科技大學,2011.
[4] Avinash C.Kak.Programming with Objects a Comparative Presentation of Object Oriented Programming with C++and Java[M].New Jersey:John Wiley&Sons,2003:62~73.
[5] 王春嬌,程培峰.基于SuperMap Objects二次開發的城市道路規劃設計管理系統[J].東北林業大學學報,2008,36(10):80~82.
[6] 宋哲琛.基于組件式GIS技術的氣象信息系統設計與開發[J].浙江水利水電專科學校學報,2010,22(4):47~48.
[7] 楊秋霞.基于組件式GIS_SuperMap Objects的地理信息系統二次開發[J].哈爾濱師范大學·自然科學學報,2005,21(6):95~97.
[8] 北京超圖地理信息技術有限公司.SuperMap SDX+技術白皮書[R].北京:2003:3~9.