萬志剛,伍發(fā)康,湯艷梅
(中山市測繪工程有限公司,廣東中山 528403)
基于SuperMap Objects的園林綠化查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
萬志剛?,伍發(fā)康,湯艷梅
(中山市測繪工程有限公司,廣東中山 528403)
園林綠化是城市環(huán)境建設(shè)中不可缺少的社會(huì)公共服務(wù),利用組件式GIS開發(fā)技術(shù),結(jié)合園林綠化工作的要求,設(shè)計(jì)基于SuperMap Objects的查詢系統(tǒng),實(shí)現(xiàn)了園林綠化管理所需要的地圖要素查詢?yōu)g覽、編輯統(tǒng)計(jì)等各項(xiàng)基本功能,滿足了城市建設(shè)對園林綠化不斷提高的要求。本文詳細(xì)介紹了系統(tǒng)總體設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì),主要功能實(shí)現(xiàn)等方面的內(nèi)容。
園林綠化;GIS;組件開發(fā)平臺(tái);SuperMap Objects;VB
園林綠化是在一定的地域運(yùn)用工程技術(shù)和藝術(shù)手段,通過改造地形(或進(jìn)一步筑山、疊石、理水)、種植樹木花草、營造建筑和布置園路等途徑創(chuàng)作而成的美的自然環(huán)境和游憩境域,是城市環(huán)境中必不可少的組成部分。隨著城市化進(jìn)程的不斷加快,城市對園林綠化的要求不斷提高,如何能夠?qū)Ρ椴汲鞘懈鱾€(gè)區(qū)域路段中的大量的園林綠化設(shè)施及苗木進(jìn)行持續(xù)有效地養(yǎng)護(hù)維護(hù)管理,是擺在園林綠化工作者面前的一個(gè)亟待解決的問題。
隨著GIS系統(tǒng)的普及,GIS應(yīng)用已經(jīng)逐漸拓展到社會(huì)建設(shè)的各個(gè)行業(yè),本文針對園林綠化行業(yè)的相應(yīng)要求,結(jié)合GIS技術(shù),利用SuperMap Objects GIS組件開發(fā)平臺(tái)和Visual Basic(VB)編程語言設(shè)計(jì)并實(shí)現(xiàn)了園林綠化查詢系統(tǒng),將園林綠化工作中的區(qū)域、設(shè)施、苗木等要素的地理信息和調(diào)查數(shù)據(jù)統(tǒng)一加以管理,及時(shí)準(zhǔn)確便利地提供相關(guān)查詢統(tǒng)計(jì),更好地為園林綠化的養(yǎng)護(hù)維護(hù)工作提供服務(wù)。
2.1 開發(fā)環(huán)境
系統(tǒng)的開發(fā)平臺(tái)是微軟公司的VisualBasic 6.0軟件,它是一種基于對象的具有可視化開發(fā)環(huán)境的編程軟件,它擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可使用提供的控件快速建立一個(gè)應(yīng)用程序。
系統(tǒng)的GIS開發(fā)平臺(tái)是超圖公司發(fā)布的組件式GIS開發(fā)產(chǎn)品SuperMap Objects,它基于組件對象,由一組具有某種標(biāo)準(zhǔn)接口的、允許跨語言應(yīng)用的組件提供的開發(fā)平臺(tái)。與傳統(tǒng)GIS軟件相比,組件式GIS可將GIS組件和其他功能組件共同集成在可視化的通用開發(fā)語言環(huán)境中,如VB、VC++、C#等,無需專門的二次開發(fā)語言,只需熟悉組件式GIS各個(gè)控件的屬性、方法和事件,即可完成應(yīng)用系統(tǒng)的開發(fā)和集成,從而實(shí)現(xiàn)高效無縫的數(shù)據(jù)交換、功能集成與拓展。組件GIS技術(shù)還可使開發(fā)商開發(fā)適應(yīng)各種需求的組件,用戶可從中挑選需要的組件加入已有的系統(tǒng)中即可,增強(qiáng)了GIS應(yīng)用系統(tǒng)的可擴(kuò)展性,同時(shí)也降低了系統(tǒng)交互的開發(fā)難度和用戶的采購成本。
系統(tǒng)中使用的SuperMap Objects開發(fā)組件主要有SuperWorkspace組件(數(shù)據(jù)管理控件),它包括Datasource(數(shù)據(jù)源)、Dataset(數(shù)據(jù)集)、Map(地圖)和Layer (圖層),主要功能是管理數(shù)據(jù)、地圖、布局和資源(線型、符號(hào)、填充庫);SuperMap組件(地圖顯示控件),能夠?yàn)g覽空間數(shù)據(jù)和屬性數(shù)據(jù),瀏覽專題圖,瀏覽布局;SuperLayout組件(地圖排版工具),提供了布局地圖、圖例、比例尺等基本要素和標(biāo)題、圖框等靈活的排版功能。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
2.2 系統(tǒng)設(shè)計(jì)流程框架
建立園林綠化查詢系統(tǒng)主要分為三方面,第一步是數(shù)據(jù)采集,包括地塊范圍測量的圖形數(shù)據(jù)、園林綠化專業(yè)的調(diào)查數(shù)據(jù)的采集獲??;第二步是數(shù)據(jù)整理入庫,將地塊范圍圖形數(shù)據(jù)和調(diào)查數(shù)據(jù)整理匹配后按設(shè)定格式導(dǎo)入空間數(shù)據(jù)庫;第三步系統(tǒng)功能的開發(fā)、集成發(fā)布。系統(tǒng)構(gòu)建流程如圖2所示。
圖2 系統(tǒng)構(gòu)建流程
系統(tǒng)集成發(fā)布后其功能主要包括:
(1)園林綠化要素的圖形、屬性顯示瀏覽,例如可實(shí)時(shí)動(dòng)態(tài)觀察某一公園或行道樹的位置大小及相關(guān)屬性。
(2)可對要素的圖形和屬性進(jìn)行編輯和修改,例如某綠地養(yǎng)護(hù)范圍和養(yǎng)護(hù)苗木類型數(shù)量發(fā)生變化,即可在系統(tǒng)中查詢出來進(jìn)行修改。
(3)空間和屬性查詢,可根據(jù)園林綠化的某一項(xiàng)屬性及屬性值查找滿足條件的所有地塊或綠地等要素,也可根據(jù)某一指定范圍查找范圍內(nèi)的指定類型的園林綠化要素。
(4)統(tǒng)計(jì)報(bào)表、生成布局打印功能,可按指定方式統(tǒng)計(jì),例如統(tǒng)計(jì)某個(gè)公園內(nèi)所有地塊上養(yǎng)護(hù)年限為6年~20年的喬木數(shù)量以及按喬木種類列出分項(xiàng)數(shù)量等。
(5)地形圖加載。
3.1 數(shù)據(jù)庫的選擇
數(shù)據(jù)庫的選擇應(yīng)根據(jù)不同的應(yīng)用類型與規(guī)模,本著操作簡單、效率最佳的原則。對于數(shù)據(jù)量大、多人遠(yuǎn)程訪問的系統(tǒng),可以采用SQL Server 2005,Oracle等,但本例考慮到園林綠化部門現(xiàn)有數(shù)據(jù)量不多,類型相對簡單,突出統(tǒng)一管理及統(tǒng)計(jì)的設(shè)計(jì)目標(biāo),所以采用的是簡單靈活的SDB文件型數(shù)據(jù)庫,通過SuperMap Objects提供的空間數(shù)據(jù)庫引擎SDX+進(jìn)行操作和查詢,將空間數(shù)據(jù)和屬性數(shù)據(jù)一體化存儲(chǔ)在數(shù)據(jù)庫中。
3.2 數(shù)據(jù)庫結(jié)構(gòu)
數(shù)據(jù)庫的設(shè)計(jì)建立是任何系統(tǒng)運(yùn)行的核心基礎(chǔ),園林綠化查詢系統(tǒng)的數(shù)據(jù)庫主要包括基礎(chǔ)地形圖數(shù)據(jù)庫、園林綠化數(shù)據(jù)庫等,各個(gè)數(shù)據(jù)庫的內(nèi)容簡要介紹如下:
(1)基礎(chǔ)地形圖數(shù)據(jù)庫
主要包含居民地、水系、道路、地貌、植被五種要素,主要作為系統(tǒng)底圖定位參考使用。
(2)園林綠化數(shù)據(jù)庫
園林綠化區(qū)域(也稱地塊)一般包括公園、道路中間及兩側(cè)綠化帶和行道樹,而區(qū)域又主要由綠地、鋪裝、建筑物、水體4類子區(qū)域構(gòu)成。綠地按養(yǎng)護(hù)級(jí)別可分為一級(jí)甲等、一級(jí)乙等、二級(jí)、山林4類,鋪裝按類型可分為園路、廣場、停車場3類,水體按底部材質(zhì)可分為硬底和泥底兩類。上述4類子區(qū)域還會(huì)包含喬木、灌木和植被3類綠化苗木。
區(qū)域內(nèi)還包括供電、排水、安全、園林、衛(wèi)生、其他共6大類設(shè)施,對于每種大類又細(xì)分為多個(gè)小類,以園林為例,其下又分為花架、亭廊、圍墻、假山、花基、坐椅、雕塑、橋梁、廁所、健身器材等小類,上述6大類設(shè)施共包含35小類設(shè)施。
因此,園林?jǐn)?shù)據(jù)庫結(jié)構(gòu)主要包括公園地塊面層、道路地塊面層、行道樹線層,還有綠地、鋪裝、建筑物和水體面層,而公園、道路地塊面層綠地、鋪裝、建筑物和水體面層相關(guān)聯(lián),由SmUserID來連接,地塊面層還關(guān)聯(lián)著多個(gè)類型的設(shè)施屬性表,綠地、鋪裝、建筑物、水體面層和行道樹線層關(guān)聯(lián)著多個(gè)類型的苗木屬性表,除此之外,數(shù)據(jù)庫還包括有其他一些系統(tǒng)設(shè)置表,例如用戶管理表等,數(shù)據(jù)庫基本結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)
3.3 連接數(shù)據(jù)庫方法
連接數(shù)據(jù)庫主要通過SuperWorkspace組件(數(shù)據(jù)管理控件)打開工作空間文件,繼而連接到組件中的數(shù)據(jù)源,即可訪問數(shù)據(jù)庫中的各個(gè)數(shù)據(jù)表。核心代碼如下:
Dim bOpenStatus As Boolean '連接工作空間和數(shù)據(jù)源
bOpenStatus=SuperWorkspace1.Open("d: emp.smw"," password")
Set objDataSource=SuperWorkspace1.Datasources("temp")
MsgBox objDataSource.DataSets(0).Name '顯示該數(shù)據(jù)源第一個(gè)表格的表名
4.1 系統(tǒng)實(shí)現(xiàn)流程
園林綠化查詢系統(tǒng)實(shí)現(xiàn)流程主要分為圖形及調(diào)查數(shù)據(jù)采集、數(shù)據(jù)整理入庫、系統(tǒng)開發(fā)集成發(fā)布3個(gè)方面。其中以數(shù)據(jù)整理入庫最為重要,以下介紹此方面工作。
系統(tǒng)數(shù)據(jù)來源主要有兩個(gè)方面:外業(yè)測量地塊范圍等圖形數(shù)據(jù)和園林綠化設(shè)施及苗木調(diào)查數(shù)據(jù)。入庫工作的主要內(nèi)容主要分為調(diào)查數(shù)據(jù)與圖形匹配處理、數(shù)據(jù)入庫兩個(gè)步驟。
(1)在圖形要素中設(shè)置的ID號(hào)應(yīng)與調(diào)查數(shù)據(jù)的ID號(hào)匹配一致,包括測量的地塊界線、行道樹界線,各地塊及所屬區(qū)域的編號(hào)與其相關(guān)的設(shè)施調(diào)查表、苗木調(diào)查表以及綠地養(yǎng)護(hù)等級(jí)表等。
(2)通過COM(組件對象模型)技術(shù)讀取相應(yīng)的圖形文件(AutoCAD DWG格式)和調(diào)查表文件(Excel xls格式),在讀取圖形文件的利用匹配的ID號(hào)同時(shí)讀取相對應(yīng)的園林綠化調(diào)查數(shù)據(jù),一同存入數(shù)據(jù)庫中,存入時(shí)可運(yùn)行空間拓?fù)洳僮鳈z查該地塊面或行道樹線是否與同層中其他同類圖形相重疊,若有則提示信息另行處理。
4.2 系統(tǒng)功能實(shí)現(xiàn)
園林綠化查詢系統(tǒng)的功能主要分為圖形及屬性編輯、空間及屬性查詢、統(tǒng)計(jì)導(dǎo)出及布局打印、加載地形圖數(shù)據(jù)等4個(gè)方面,具體描述如下:
(1)圖形和屬性編輯
在地圖顯示控件中可以點(diǎn)選或框選線、面類型的圖形對象,雙擊后系統(tǒng)可自動(dòng)根據(jù)圖形對象的具體類型顯示對應(yīng)的屬性編輯窗口,在其窗口中查看或編輯其屬性。如圖4所示,圖形編輯需選取CAD中的圖形來替換數(shù)據(jù)庫中選中的圖形對象,被替換的圖形對象屬性不會(huì)丟失。
圖4 對圖形要素進(jìn)行編輯
(2)空間和屬性查詢
可在查詢對話框指定相關(guān)屬性或范圍進(jìn)行查詢,查詢后的結(jié)果會(huì)在顯示界面中亮顯并移至顯示界面中央,由于園林綠化統(tǒng)計(jì)的需要,系統(tǒng)界面左下角的樹形控件和右下角的列表控件,可分別顯示查詢結(jié)果的各項(xiàng)統(tǒng)計(jì)信息,其中樹形控件可根據(jù)選中對象的類型統(tǒng)計(jì)出其相關(guān)屬性的總量以及其包含的設(shè)施或苗木數(shù)量累計(jì)并可以子葉的形式顯示出設(shè)施或苗木的分類統(tǒng)計(jì);而列表控件則配合樹形控件,當(dāng)鼠標(biāo)點(diǎn)擊樹形控件的某一節(jié)點(diǎn)時(shí),列表框會(huì)顯示出此節(jié)點(diǎn)包含的多個(gè)對象的詳細(xì)列表,點(diǎn)擊列表某一行記錄時(shí),系統(tǒng)會(huì)自動(dòng)在顯示窗口中以另一種顏色高亮顯示此記錄所對應(yīng)的圖形對象的具體位置。
例如,選擇地塊對象后即可查詢地塊各屬性,還可以關(guān)聯(lián)查詢多個(gè)地塊對象中相關(guān)的綠地、鋪裝、建筑物、水體的屬性信息以及相關(guān)的設(shè)施、苗木等各類統(tǒng)計(jì)信息,這些信息均可在列表框和樹形控件中顯示出來,如圖5所示。
圖5 選擇地塊對象后各信息查詢統(tǒng)計(jì)情況
(3)統(tǒng)計(jì)導(dǎo)出和布局打印
統(tǒng)計(jì)是園林綠化查詢系統(tǒng)建立后使用的最重要的功能之一,通過COM(組件對象模型)技術(shù)可將數(shù)據(jù)庫中的各種統(tǒng)計(jì)數(shù)據(jù)以各種格式導(dǎo)出(例如Excel表格、Word文檔、Access數(shù)據(jù)庫等),導(dǎo)出至Excel格式如圖6所示。
圖6 將查詢統(tǒng)計(jì)結(jié)果導(dǎo)出至Excel表格
同時(shí),圖形可以生成指定比例尺和區(qū)域范圍的布局并按照相應(yīng)紙張大小打印出來,以滿足外業(yè)查勘或統(tǒng)計(jì)報(bào)告的需要,如圖7所示。
圖7 布局打印
(4)加載地形圖
采用動(dòng)態(tài)目標(biāo)的顯示與追蹤技術(shù),可用鼠標(biāo)在圖形窗口上動(dòng)態(tài)標(biāo)繪出指定范圍,查找此范圍涉及的地形圖,并自動(dòng)加載到數(shù)據(jù)源中,以參考要素的地理坐落和周邊狀況,如圖8所示。
圖8 加載地形圖
4.3 實(shí)現(xiàn)中遇到的問題及解決
(1)根據(jù)字段設(shè)置顯示問題
由于綠地和鋪裝圖層中各面要素需要根據(jù)其養(yǎng)護(hù)級(jí)別或類型在地圖窗口進(jìn)行不同顏色的顯示,而常規(guī)數(shù)據(jù)層只能顯示某一種顏色,可通過在其圖層顯示時(shí)加載單值專題圖。根據(jù)相應(yīng)字段的不同值設(shè)定同層面要素的不同顏色的顯示。示例代碼如下:
(2)關(guān)聯(lián)查詢問題
在園林綠化的實(shí)際應(yīng)用中,由于地塊、綠地等圖形表之間,圖形表與設(shè)施、苗木屬性表之間都存在許多相互關(guān)聯(lián)的關(guān)系,例如想查找與某地塊相關(guān)的苗木信息,就需要先進(jìn)行地塊與綠地間的關(guān)聯(lián)查詢,繼而進(jìn)行綠地與苗木間的關(guān)聯(lián)查詢,查詢時(shí)應(yīng)注意兩數(shù)據(jù)表的公共字段的數(shù)據(jù)類型一定要一致。以下為綠地與喬木(苗木的一種)間的關(guān)聯(lián)查詢的示例代碼:
Dim objDv As soDatasetVector,objRs As soRecordset
Dim objfield As New soStrings,objRelTable As New soRelQueryTableInfo,objQueryDef As New soQueryDef Set objDv=objDataSource.Datasets("綠地") objfield.RemoveAll '定義查詢信息
objfield.Add"sum(喬木.數(shù)量)as sumcount"
objRelTable.TableName="喬木"
objRelTable.SearchCondition="綠地.SmUserID=喬木.區(qū)域編號(hào)"
objRelTable.JoinType=scjRightJoin With objQueryDef
.QueryType=scqGeneral Set.Fields=objfield
.RelTables.Add objRelTable
.Filter="喬木.區(qū)域類型='綠地'and綠地.dkid in(4030,4021)"
.GroupClause="group by樹齡"
.HasGeometry=False
End With
Set objRs=objDv.Query2(objQueryDef) '執(zhí)行關(guān)聯(lián)查詢
針對園林綠化行業(yè)管理的具體情況,通過分析園林綠化的工作模式和對象構(gòu)成,基于SuperMap Objects組件開發(fā)的園林綠化查詢系統(tǒng)實(shí)現(xiàn)了園林綠化數(shù)據(jù)的信息化管理與更新。建庫運(yùn)行后進(jìn)行了大量的數(shù)據(jù)查詢和統(tǒng)計(jì),滿足了園林綠化行業(yè)在新的形勢下對管理的要求。隨著園林綠化工作的不斷發(fā)展,該系統(tǒng)還能夠發(fā)揮GIS組件式開發(fā)易于拓展的優(yōu)越性,可以調(diào)整數(shù)據(jù)庫規(guī)模和訪問方式,也可添加新的園林綠化要素類型,為園林綠化建設(shè)提供最及時(shí)可靠的GIS服務(wù)。
[1] 陳述彭,魯學(xué)軍,周成虎.地理信息系統(tǒng)導(dǎo)論[M].北京:科學(xué)出版社,2001.
[2] 北京超圖軟件股份有限公司,SuperMap Objects開發(fā)教程[R].北京:2008.
[3] 張正林.SuperMap GIS應(yīng)用與開發(fā)教程[M].武漢:武漢大學(xué)出版社,2006.
[4] Steven Jorclan,牛力.Visual Basic 6編程寶典[M].北京:電子工業(yè)出版社,2004.
[5] 陳良松,汪青松,楊永國.基于Flash與ASP的定遠(yuǎn)縣不可移動(dòng)文物查詢系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].城市勘測,2011 (2):13~15.
[6] 涂志勇,楊明,李開穎.地政監(jiān)察信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測繪通報(bào),2009(7):61~62.
[7] 潘瑜春,鐘耳順,梁軍.基于空間數(shù)據(jù)庫技術(shù)的地籍管理系統(tǒng)研究[J].地理研究,2003,22(2):237~244.
[8] 何雄.基于控件技術(shù)的地形圖查詢系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].測繪通報(bào),2002(4):12~14.
Design and Development of Landscaping Inquiry System Based on SuperM ap Objects
Wan Zhigang,Wu Fakang,Tang Yanmei
(ZhongShan Engineering Ltd of Surveying and Mapping,ZhongShan 528403,China)
Garden Greeningwork is indispensable social public service in urban environment construction.Using GIS component development technology,combined with Garden Greening work requirements,we design inquiry system based on SuperMap Objects.This system implements these functions thatGarden Greeningmanagement needs,such asmap feature browse,inquiry,edit,reports statistics,layout print,etc.Itmeets the increasing requirements of urban construction to Garden Greening.This article gives brief details of system overall design,database design and main functions.
Garden Greening;GIS;component development platform;SuperMap Objects;VB
1672-8262(2013)01-83-05
P208.2 文獻(xiàn)標(biāo)識(shí)碼:B
2012—03—29
萬志剛(1975—),男,工程師,主要從事GIS技術(shù)、測繪技術(shù)與質(zhì)量控制等方面的工作。