林選妙,藍貴文,李 輝
(1.桂林理工大學 測繪地理信息學院 廣西空間信息與測繪重點實驗室, 廣西 桂林 541004;2.桂林旅游學院,廣西 桂林541004;3.桂林理工大學 南寧分校,廣西 桂林 530001)
采用信息技術(shù)來推進社區(qū)信息的高效管理和現(xiàn)代化建設(shè),是社區(qū)步入高質(zhì)量、高臺階的現(xiàn)代化生活水平的重要標志[1]。在城市中,街道辦、社區(qū)要做好對各類人員的管理及服務(wù),最需要弄清楚的問題就是某個(類)人住在哪里、某間房子或某個區(qū)域住了什么人,即常說的要做到“以人查房、以房查人”。傳統(tǒng)的手工記錄、腦力記憶、手工制作報表等管理和服務(wù)方式,無法滿足當今城市中社區(qū)管理的需求[2]。利用GIS技術(shù),設(shè)計社區(qū)居民管理信息系統(tǒng),為管理者提供人員信息查詢、分析及可視化功能,是社區(qū)管理模式的發(fā)展趨勢[3]。本文提出了一種基于ArcGIS Engine的社區(qū)居民信息系統(tǒng)解決方案,以實現(xiàn)基于“人、房互查”模型為目標,利用采集、存儲、管理、運算、查詢、分析和顯示地理數(shù)據(jù)的技術(shù)手段,設(shè)計實現(xiàn)了一個社區(qū)居民信息系統(tǒng)原型,探索實現(xiàn)科學化、可視化及高效率社區(qū)居民信息管理可視化應(yīng)用平臺的技術(shù)思路。
為使開發(fā)者更加符合自然行為和人的思維方式去組織數(shù)據(jù),實現(xiàn)更精確地對現(xiàn)實世界進行模擬[4],本文采用了ArcGIS的Geodatabase數(shù)據(jù)庫技術(shù),以面向?qū)ο蟮墓芾砟J絹斫y(tǒng)一組織空間要素的空間數(shù)據(jù)和屬性數(shù)據(jù)。在Geodatabase數(shù)據(jù)庫中,空間數(shù)據(jù)是按 Geodatabase、Feature Dataset、Feature Class 3層結(jié)構(gòu)組織管理的。例如,新建一個樓棟的空間要素類,其數(shù)據(jù)結(jié)構(gòu)定義如表1所示。其中,設(shè)計樓棟編號為特殊字段,以便通過要素關(guān)聯(lián)居民屬性信息及住戶房產(chǎn)信息。
表1 樓棟要素數(shù)據(jù)結(jié)構(gòu)定義
從廣義上講,居民屬性信息包括以單個居民為單位的屬性信息和以住戶為單位的屬性信息。
社區(qū)居民信息系統(tǒng)的構(gòu)建是以居民和住戶房產(chǎn)信息為主要管理對象,因此,居民和住戶房產(chǎn)信息的數(shù)據(jù)組織設(shè)計關(guān)乎整個系統(tǒng)運行并且影響管理效益。在Geodatabase地理數(shù)據(jù)庫中,居民屬性信息是按Geodatabase、Table兩層結(jié)構(gòu)組織管理的,其主要的居民屬性信息表有自然人基礎(chǔ)信息、住戶房產(chǎn)信息和特殊類別居民人口信息(包括黨員、重點人員、需關(guān)護人員、退休人員等)。其中,住戶房產(chǎn)信息和特殊類別居民信息分別通過住戶編號和身份證號與自然人基礎(chǔ)信息關(guān)聯(lián),它們的關(guān)系模型如圖1所示。
在系統(tǒng)數(shù)據(jù)庫設(shè)計過程中,通過Access數(shù)據(jù)庫作為系統(tǒng)的居民信息數(shù)據(jù)庫基礎(chǔ),不僅實現(xiàn)了空間要素的空間數(shù)據(jù)部分與屬性數(shù)據(jù)部分的一體化管理,還可以通過特殊字段,將空間要素數(shù)據(jù)與居民屬性信息數(shù)據(jù)關(guān)聯(lián),從而實現(xiàn)通過空間要素去管理它所包含對象的信息,達到信息可視化管理的目的。
圖1 實體關(guān)系模型
由于住宅空間要素所對應(yīng)的居民類別結(jié)構(gòu)復(fù)雜、所包含的居民人數(shù)多,很難直接將居民信息以屬性值的形式存放在住宅空間要素中,而且會影響到居民數(shù)據(jù)庫的安全性。因此,通過空間要素的特殊字段,關(guān)聯(lián)居民信息數(shù)據(jù)庫中的居民信息表,從而間接達到操作和管理個人地理數(shù)據(jù)庫的目的。一般情況下,一個空間要素只包含了存儲該要素的屬性字段,其所代表的信息實在有限,不能夠去虛擬現(xiàn)實存在的實體。因此,通過特殊的關(guān)聯(lián)字段,從邏輯上講,擴展了空間要素的表現(xiàn)能力,此時的空間要素不再是簡單的矢量圖形要素,而是具有豐富信息的復(fù)雜對象。如圖2所示,通過樓棟編號構(gòu)建了一個唯一的樓棟要素復(fù)雜對象,它除了具有空間要素自身的樓棟地址、樓層數(shù)等屬性,還附有各類居民的屬性信息,從而實現(xiàn)空間要素數(shù)據(jù)與居民屬性數(shù)據(jù)的一體化。
圖2 空間要素數(shù)據(jù)與居民屬性數(shù)據(jù)的一體化設(shè)計
社區(qū)居民信息系統(tǒng)功能模塊設(shè)計如圖3所示。
“人、房互查”模型是指社區(qū)管理者根據(jù)查詢需求選擇通過居民查詢住戶房產(chǎn)信息,即“以人查房”方式,或通過住戶房產(chǎn)信息查詢居民,即“以房查人”的方式進行居民信息高效查詢的過程。
圖3 社區(qū)居民信息系統(tǒng)功能模塊
“以人查房”包括居民信息的模糊查詢和精確查詢,主要通過數(shù)據(jù)庫訪問對象(OleDbConnection對象、DataTable對象、OleDbCommand對象、OleDbDataAdapter對象等)查詢到居民信息,然后根據(jù)返回的樓棟編號,利用DataSet對象、IFeatureLayer對象、IQueryFilter對象、IFeatureCursor對象從要素集中查詢出相關(guān)的住戶房產(chǎn)信息及樓棟要素信息,并將要素在地圖中高亮顯示出來[5]。
“以房查人”是傳統(tǒng)空間查詢的升級,除了可以查詢空間要素自身的屬性信息,最主要的是能夠查詢包含在該要素中其他對象的屬性信息,如居民的屬性信息及住戶房產(chǎn)信息。它是根據(jù)用戶設(shè)置的選取要素方式(主要有點選擇、矩形選擇及多邊形選擇),選擇感興趣的空間樓棟要素,以查詢出居民屬性信息和住戶房產(chǎn)信息的過程。該查詢主要通過ArcGIS Engine的Geodatabase、Carto、Geometry等 類 庫,以 及ISpatialFilter接口、IQueryFilter接口和IFeatureLayer接口來完成的。此外,“以房查人”是一個與地圖視圖交互的過程,因此該功能是通過MapControl控件的OnMouseDown事件和OnDoubleClick事件實現(xiàn)的?!叭?、房互查”的實現(xiàn)如圖4所示。
本文所構(gòu)建的社區(qū)居民信息系統(tǒng)是采用Visual Studio 2010作為集成開發(fā)環(huán)境,以C#為第一開發(fā)語言,以ArcGIS Engine 10.0高級GIS組件為二次開發(fā)工具,以ArcGIS提供的Personal Geodatabase為系統(tǒng)數(shù)據(jù)庫,以ADO.NET技術(shù)為底層數(shù)據(jù)庫訪問技術(shù)進行開發(fā)的居民信息系統(tǒng)。系統(tǒng)功能可分為傳統(tǒng)信息系統(tǒng)所具有的基本功能和ArcGIS Engine提供的GIS功能2部分。
圖4 “人、房互查”的實現(xiàn)
信息系統(tǒng)基本功能包括居民屬性信息查詢、編輯、更新、統(tǒng)計分析、信息輸出、系統(tǒng)維護等[6,7]。實現(xiàn)這些功能的主要是通過ADO.NET數(shù)據(jù)訪問類來完成,包括數(shù)據(jù)提供者對象(Connection、Command、CommandBuilder、DataReader、DataAdapter)和數(shù)據(jù)庫用戶對象(DataSet、DataTable、DataRelation)[6]。此外,使用SplitContainer、TabControl、ToolStripStatusLabel控件來實現(xiàn)系統(tǒng)界面的布局,還使用ComboBox、ListBox、RichTextBox等控件實現(xiàn)系統(tǒng)其他相關(guān)功能。
系統(tǒng)的GIS功能負責社區(qū)內(nèi)地理空間數(shù)據(jù)的管理,實現(xiàn)地圖視圖控制(如地圖的放大、縮小、平移、變更圖層顯示順序和顯示開關(guān)控制及標注功能)、空間要素編輯、地圖制圖(添加地圖要素,如地圖標題、指北針、比例尺、圖例、網(wǎng)格等圖形要素)及輸出、鷹眼等[8,9]。主要通過添加ArcGIS Engine中的MapControl、ToolbarControl、TOCControl、PageLayoutControl、SymbologyControl等GIS可視化控件,并調(diào)用相關(guān)接口及方法來實現(xiàn)的。例如,空間要素編輯是使用IWorkspaceEdit中的StartEditOperation方法和StopEditOperation方法來實現(xiàn)要素編輯的開啟和關(guān)閉,使用接口IFeatureClass來添加新要素以及使用接口IFeature的Delete方法來刪除空間要素[9]。使用Iannotate LayerPropertiesCollection接口和IAnnotationProperties接口實現(xiàn)地圖的標注功能。
運行系統(tǒng)并加載社區(qū)數(shù)據(jù)庫,其界面效果圖如圖5所示,它主要由菜單欄、工具欄、圖層顯示控制欄、地圖視圖窗口、地圖制圖窗口、鷹眼窗口、狀態(tài)欄等組成,提供社區(qū)內(nèi)空間數(shù)據(jù)和居民信息屬性數(shù)據(jù)的查詢、顯示、更新及輸出等功能,基本滿足社區(qū)居民信息的科學化、高效率和可視化管理。
圖5 社區(qū)居民信息系統(tǒng)運行界面及系統(tǒng)部分功能
本文結(jié)合組件式GIS二次開發(fā)技術(shù),提出了社區(qū)居民信息系統(tǒng)實現(xiàn)居民信息高效及可視化管理的技術(shù)路線。以ArcGIS Engine二次開發(fā)為例,探討了“人、房互查”模型與GIS相結(jié)合技術(shù)的實現(xiàn)過程,說明了在C#環(huán)境下,選擇功能強大的可視化控件作為二次開發(fā)組件,由此開發(fā)的系統(tǒng)具有低成本、開發(fā)周期短、可拓展性好等特點。實驗表明,本系統(tǒng)能夠較好地實現(xiàn)社區(qū)地圖的顯示、“人、房互查”與居民信息管理、輸出等功能,幫助了社區(qū)居民信息的科學化、高效率管理,為社區(qū)的信息化建設(shè)奠定了基礎(chǔ)。
[1]周德明,呂耀懷.虛擬社區(qū):傳統(tǒng)社區(qū)概念的拓展[J].湖湘論壇,2003(1):68-69
[2]藍永乾.大慶市社區(qū)管理信息系統(tǒng)設(shè)計與實現(xiàn)[D].長春:吉林大學,2012
[3]王輝.基于GIS的住宅小區(qū)信息管理系統(tǒng)[D].大連:大連理工大學,2005
[4]郭瑞隆.基于ArcEngine的三維居民信息系統(tǒng)的建立[D].西安:西安科技大學,2011
[5]朱振華,侯敏.基于ArcEngine的基礎(chǔ)地理信息系統(tǒng)的設(shè)計與實現(xiàn)[J].地理空間信息,2011,9(1):88-90
[6]劉仙桃,李道兵.基于C#.NET的Access數(shù)據(jù)庫創(chuàng)建與訪問[J].電腦編程技巧與維護,2011(6):52-54
[7]王志恒,楊國東,吳瓊,等.基于ArcGIS Engine的虛擬校園信息管理系統(tǒng)的設(shè)計與實現(xiàn)[J].地理信息世界,2008(3):80-84
[8]毛曉利,劉智勇,毛洋,等.基于ArcEngine的白水縣蘋果信息管理系統(tǒng)設(shè)計與實現(xiàn)[J].西北林學院學報,2012,27(3) :203-208
[9]吳冬琴,梁明,厲保軍.基于ArcGIS Engine的小區(qū)物業(yè)管理系統(tǒng)的研究[J].技術(shù)與創(chuàng)新管理,2010,31(1):111-114