版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、GIS開發(fā)與應(yīng)用 ——Super Map二次開發(fā),杜福光 E-mail:dufug@163.com 公共郵箱:zyglgh@163.com 唐山師范學(xué)院 · 資源管理系 2013.3,,第4章 空間數(shù)據(jù)的顯示和基本操作,本 章 目 標(biāo),通
2、過本章學(xué)習(xí),能夠使用SuperMap Objects控件編寫代碼,掌握并實(shí)現(xiàn)以下基本功能: 1、打開各種數(shù)據(jù)源; 2、顯示空間幾何圖形; 3、能進(jìn)行地圖的放大、縮小等基本操作; 4、對(duì)地圖窗口中的圖層進(jìn)行管理。,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,4.1 打開數(shù)據(jù)源,打開數(shù)據(jù)源思路:,第4章 空間數(shù)據(jù)的顯示和基本操作,4.1 打開數(shù)據(jù)源,控件 SuperWorkSpace、Button,
3、按鈕事件 SuperWorkSpace.OpenDatasource SuperWorkspace.OpenDatasourceEx 傳遞的參數(shù)不同,Ex用于打開數(shù)據(jù)庫類型數(shù)據(jù)源,第4章 空間數(shù)據(jù)的顯示和基本操作,4.1 打開數(shù)據(jù)源 加載控件:SuperMap Core Controls核心控件,并將SuperWorkSpace控件添加到窗體上。,打開數(shù)據(jù)源文件:,語法描述soDatasource
4、 SuperWorkspace.OpenDataSource(strDataSourceName As String, strAlias As String, nEngineType As seEngineType, bReadOnly As Boolean),第4章 空間數(shù)據(jù)的顯示和基本操作,4.1 打開數(shù)據(jù)源,參數(shù)說明:,第4章 空間數(shù)據(jù)的顯示和基本操作,實(shí)例:編寫代碼實(shí)現(xiàn)打開SDB數(shù)據(jù)源功能,(1)窗體設(shè)計(jì):
5、添加Command控件到窗體上,將Command1.Caption屬性設(shè)置為“打開數(shù)據(jù)源”。,第4章 空間數(shù)據(jù)的顯示和基本操作,(2)代碼:,Private Sub Command1_Click() '打開數(shù)據(jù)源 Dim objDs As soDataSource '定義數(shù)據(jù)源對(duì)象變量 Dim strDsName As String
6、 '定義數(shù)據(jù)源名稱變量 strDsName = App.Path & ''\world\world.sdb'' '數(shù)據(jù)源相對(duì)路徑 Set objDs = SuperWorkspace1.OpenDataSource(strDsName, "world", sceSDBPl
7、us, False) '打開數(shù)據(jù)源 If objDs Is Nothing Then '判斷是否打開成功 MsgBox ''打開數(shù)據(jù)源失??!'' Exit Sub Else
8、 MsgBox ''打開數(shù)據(jù)源成功!'' End If Set objDs = Nothing '釋放變量 End Sub,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,4.2 空間數(shù)據(jù)的顯示 加載控件:加載SuperMap Core Co
9、ntrols 核心控件、工作空間管理器控件SuperWkspManager控件,并將SuperMap、SuperWorkspace控件和SuperWkspManager控件添加到窗體上。,在工作空間中打開的數(shù)據(jù)源,可以通過VB中的TreeView控件、ListView控件將其顯示出來。SuperMap Objects為了降低開發(fā)難度,提高開發(fā)效率,提供了專門的輔助控件——工作空間管理器控件SuperWkspManager,其主要功能是將
10、工作空間中管理的所有數(shù)據(jù)進(jìn)行樹狀的直觀顯示。顯示方法只需以下兩個(gè)步驟:,Load/Unload事件 SuperWkspManager.Connect SuperWorkspace.Handle SuperMap1.Connect SuperWorkspace1.Handle SuperWkspManager.Disconnect,SuperWkspManager.Refresh,控件 SuperWorkS
11、pace、 SuperWkspManager、 SuperMap,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,(1)將工作空間管理器控件和工作空間控件進(jìn)行關(guān)聯(lián),方法為:Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle '在相關(guān)控件之間建立連接End Sub(2)在打開數(shù)據(jù)源成功后,刷新工作空
12、間管理控件,方法為:SuperWkspManager1.Refresh 通過以上兩個(gè)步驟,可將工作空間中的數(shù)據(jù)顯示出來,但并沒有將圖形顯示出來,以下通過實(shí)例介紹通過工作空間管理器控件打開數(shù)據(jù)集顯示圖形方法和過程。,第4章 空間數(shù)據(jù)的顯示和基本操作,語法描述1、工作空間管理控件的雙擊事件SuperWkspManager.LDbClick( nFlag As SeSelectedItemFlag, strSelect
13、ed As String, strParent As String )參數(shù)說明:,第4章 空間數(shù)據(jù)的顯示和基本操作,語法描述 2、添加數(shù)據(jù)集到地圖窗口的圖層集中soLayer soLayers.AddDataset( objDataset As soDataset, bAddToHead As Boolean)參數(shù)說明:,第4章 空間數(shù)據(jù)的顯示和基本操作,實(shí)例: 雙擊工作空間管理器中的某個(gè)數(shù)據(jù)集后,即可將該數(shù)據(jù)集顯示在地
14、圖窗口上窗體設(shè)計(jì):將工作空間管理器控件、地圖窗口控件添加到窗體上即 SuperWkspManager1、SuperMap1,主要步驟:(1) 判斷選中的節(jié)點(diǎn)是否是數(shù)據(jù)集(If nFlag = scsDataset Then);(2) 將選中節(jié)點(diǎn)的父節(jié)點(diǎn)字符串(strParent)作為數(shù)據(jù)源的別名,獲得要顯示的數(shù)據(jù)集對(duì)應(yīng)的數(shù)據(jù)源;(3) 將選中節(jié)點(diǎn)的字符串(strSelect
15、ed)作為數(shù)據(jù)集的名稱,得到點(diǎn)中的數(shù)據(jù)集;(4) 將步驟3中得到的數(shù)據(jù)集添加到地圖窗口的圖層中;(5) 刷新地圖窗口。,第4章 空間數(shù)據(jù)的顯示和基本操作,SuperWkspManager_LDbClick(nFlag As SeSelectedItemFlag, strSelected As String, strParent As String) Dim objDs As soDataSource
16、 '數(shù)據(jù)源變量 Dim objDt As soDataset '數(shù)據(jù)集變量 If nFlag = scsDataset Then '如果點(diǎn)中的是數(shù)據(jù)集 Set objDs = SuperWorkspace1.Datasources(strParent) If Not (objDs Is Nothi
17、ng) Then '如果數(shù)據(jù)源非空 Set objDt = objDs.Datasets(strSelected) If Not (objDt Is Nothing) Then '如果數(shù)據(jù)集非空‘將選中的數(shù)據(jù)集添加到地圖窗口的層中進(jìn)行顯示 SuperMap1.Layers.AddDataset objDt, True
18、 SuperMap1.Refresh End If End If End If Set objDt = NothingSet objDs = Nothing,代碼:,第4章 空間數(shù)據(jù)的顯示和基本操作,注:地圖窗口中顯示的圖形數(shù)據(jù)來自于工作空間。因此,在顯示數(shù)據(jù)之前,需要將 SuperMap控件和SuperWorkspace 控件進(jìn)行關(guān)聯(lián)。方法是:SuperMap1
19、.Connect SuperWorkspace1.Handle(通常寫在Form_Load事件中),在使用完后需要斷開控件之間的連接。Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle ‘加載地圖列表時(shí)需關(guān)聯(lián) SuperMap1.Connect SuperWorkspace1.Handle ‘地圖
20、顯示時(shí)需關(guān)聯(lián)End SubPrivate Sub Form_Unload(Cancel As Integer)SuperWkspManager1.DisconnectSuperMap1.CloseEnd Sub,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,4.3 地圖放大、縮小、漫游等基本操作,語法描述SuperMap1.Action seAction,通過該接口可以方便地實(shí)現(xiàn)地圖窗口中的五十
21、多種基本操作和編輯功能,包括:(1)基本操作功能:如放大、縮小、漫游、自由縮放和選擇等功能;(2)圖層基本編輯功能:如在地圖窗口圖層中直接創(chuàng)建點(diǎn)、線、面,以及圓、弧、橢圓等參數(shù)化的幾何對(duì)象,還可以進(jìn)行節(jié)點(diǎn)編輯,以及生成流動(dòng)注記等功能;(3)跟蹤層的相應(yīng)功能:直接在跟蹤層上添加各種幾何對(duì)象。,第4章 空間數(shù)據(jù)的顯示和基本操作,參數(shù)說明:,第4章 空間數(shù)據(jù)的顯示和基本操作,實(shí)例: 在地圖窗口中進(jìn)行放大、縮小、平移、自由縮
22、放、全圖和選擇基本操作。本實(shí)例是增加了Toolbar與ImageList控件,制作了圖標(biāo)工具欄,實(shí)現(xiàn)了相應(yīng)功能。,代碼: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index
23、 Case 1: SuperMap1.Action = scaPan Case 2: SuperMap1.A
24、ction = scaZoomIn Case 3: SuperMap1.Action = scaZoomOut Case 4:
25、 SuperMap1.Action = scaZoomFree2 Case 5: SuperMap1.ViewEntire
26、 Case 6: SuperMap1.Action = scaSelect Case 7: SuperMap1.Action = scaRectSelect
27、 Case 8: SuperMap1.Action = scaCircleSelect Case 9:
28、 SuperMap1.Action = scaRegionSelect End Select End Sub,第4章 空間數(shù)據(jù)的顯示和基本操作,運(yùn)行結(jié)果:,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,4.4 圖層管理,采用SuperLegend圖例控件進(jìn)行圖層管理 圖例控件用于
29、管理地圖窗口中所有圖層的狀態(tài),使用非常方便。 (1)將圖例控件與地圖控件相關(guān)聯(lián),方法是:SuperLegend1.Connect SuperMap1.Handle; (2)當(dāng)?shù)貓D窗口中的圖層發(fā)生變化時(shí)刷新圖例,方法是:SuperLegend1.Refresh; (3)修改圖例中圖層屬性后會(huì)觸發(fā)SuperLegend_Modified事件,在該事件中刷新地圖即可看到圖層修改的結(jié)果。
30、 使用圖例控件后,其對(duì)圖層的基本控制的功能全部封裝在控件的右鍵菜單中,用戶可以直接使用完成對(duì)圖層的控制。,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,實(shí)例: 通過圖例控件中的右鍵菜單,調(diào)整地圖圖層 窗體設(shè)計(jì): 加載SuperLegend控件并將它添加到窗體上,將SuperLegend1.Appearance設(shè)置為1。,第4章 空間數(shù)據(jù)的顯示和基本操作,代碼:1.窗體的Loa
31、d事件Private Sub Form_Load() '建立控件的連接 SuperLegend1.Connect SuperMap1.Handle End Sub2.圖例控件的 Modified事件Private Sub SuperLegend1_Modified() SuperMap1.RefreshEnd Sub3.工作空間管理控件的雙擊事件Priv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第2章空間數(shù)據(jù)的坐標(biāo)與投影
- 62404.空間數(shù)據(jù)分析和空間數(shù)據(jù)共享系統(tǒng)實(shí)現(xiàn)
- 空間數(shù)據(jù)多尺度顯示系統(tǒng)的研究.pdf
- 空間數(shù)據(jù)的存取
- _空間數(shù)據(jù)模型
- 02空間數(shù)據(jù)基礎(chǔ)
- 基于GML的WebGIS空間數(shù)據(jù)互操作研究.pdf
- 56511.面向空間數(shù)據(jù)庫的空間數(shù)據(jù)挖掘應(yīng)用研究
- 39116.網(wǎng)格環(huán)境下空間數(shù)據(jù)互操作研究
- 56224.基于gmlschema和cnsdtf的空間數(shù)據(jù)互操作研究與實(shí)現(xiàn)
- 基于元數(shù)據(jù)的城市空間數(shù)據(jù)互操作技術(shù)研究.pdf
- 空間數(shù)據(jù)聚類的研究.pdf
- 43272.基于gml的網(wǎng)格gis空間數(shù)據(jù)互操作研究
- 空間數(shù)據(jù)操縱語言研究.pdf
- 空間數(shù)據(jù)轉(zhuǎn)換平臺(tái)fme suite
- 空間數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn)研究.pdf
- 淺談gis空間數(shù)據(jù)融合的方法
- 基于XML的地理空間數(shù)據(jù)互操作研究與實(shí)現(xiàn).pdf
- 面向服務(wù)的空間數(shù)據(jù)共享.pdf
- 基于Web服務(wù)的空間數(shù)據(jù)集成和共享.pdf
評(píng)論
0/150
提交評(píng)論