第4章 空間數(shù)據(jù)的顯示和基本操作_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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ù)的顯示和基本操作,本 章 目 標,通

2、過本章學(xué)習(xí),能夠使用SuperMap Objects控件編寫代碼,掌握并實現(xiàn)以下基本功能: 1、打開各種數(shù)據(jù)源; 2、顯示空間幾何圖形; 3、能進行地圖的放大、縮小等基本操作; 4、對地圖窗口中的圖層進行管理。,第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ù)的顯示和基本操作,實例:編寫代碼實現(xiàn)打開SDB數(shù)據(jù)源功能,(1)窗體設(shè)計:

5、添加Command控件到窗體上,將Command1.Caption屬性設(shè)置為“打開數(shù)據(jù)源”。,第4章 空間數(shù)據(jù)的顯示和基本操作,(2)代碼:,Private Sub Command1_Click() '打開數(shù)據(jù)源 Dim objDs As soDataSource '定義數(shù)據(jù)源對象變量 Dim strDsName As String

6、 '定義數(shù)據(jù)源名稱變量 strDsName = App.Path & ''\world\world.sdb'' '數(shù)據(jù)源相對路徑 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ù)進行樹狀的直觀顯示。顯示方法只需以下兩個步驟:,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)將工作空間管理器控件和工作空間控件進行關(guān)聯(lián),方法為:Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle '在相關(guān)控件之間建立連接End Sub(2)在打開數(shù)據(jù)源成功后,刷新工作空

12、間管理控件,方法為:SuperWkspManager1.Refresh 通過以上兩個步驟,可將工作空間中的數(shù)據(jù)顯示出來,但并沒有將圖形顯示出來,以下通過實例介紹通過工作空間管理器控件打開數(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ù)據(jù)集后,即可將該數(shù)據(jù)集顯示在地

14、圖窗口上窗體設(shè)計:將工作空間管理器控件、地圖窗口控件添加到窗體上即 SuperWkspManager1、SuperMap1,主要步驟:(1) 判斷選中的節(jié)點是否是數(shù)據(jù)集(If nFlag = scsDataset Then);(2) 將選中節(jié)點的父節(jié)點字符串(strParent)作為數(shù)據(jù)源的別名,獲得要顯示的數(shù)據(jù)集對應(yīng)的數(shù)據(jù)源;(3) 將選中節(jié)點的字符串(strSelect

15、ed)作為數(shù)據(jù)集的名稱,得到點中的數(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 '如果點中的是數(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ù)集添加到地圖窗口的層中進行顯示 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 控件進行關(guān)聯(lián)。方法是:SuperMap1

19、.Connect SuperWorkspace1.Handle(通常寫在Form_Load事件中),在使用完后需要斷開控件之間的連接。Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle ‘加載地圖列表時需關(guān)聯(lián) SuperMap1.Connect SuperWorkspace1.Handle ‘地圖

20、顯示時需關(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,通過該接口可以方便地實現(xiàn)地圖窗口中的五十

21、多種基本操作和編輯功能,包括:(1)基本操作功能:如放大、縮小、漫游、自由縮放和選擇等功能;(2)圖層基本編輯功能:如在地圖窗口圖層中直接創(chuàng)建點、線、面,以及圓、弧、橢圓等參數(shù)化的幾何對象,還可以進行節(jié)點編輯,以及生成流動注記等功能;(3)跟蹤層的相應(yīng)功能:直接在跟蹤層上添加各種幾何對象。,第4章 空間數(shù)據(jù)的顯示和基本操作,參數(shù)說明:,第4章 空間數(shù)據(jù)的顯示和基本操作,實例: 在地圖窗口中進行放大、縮小、平移、自由縮

22、放、全圖和選擇基本操作。本實例是增加了Toolbar與ImageList控件,制作了圖標工具欄,實現(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ù)的顯示和基本操作,運行結(jié)果:,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,4.4 圖層管理,采用SuperLegend圖例控件進行圖層管理 圖例控件用于

29、管理地圖窗口中所有圖層的狀態(tài),使用非常方便。 (1)將圖例控件與地圖控件相關(guān)聯(lián),方法是:SuperLegend1.Connect SuperMap1.Handle; (2)當?shù)貓D窗口中的圖層發(fā)生變化時刷新圖例,方法是:SuperLegend1.Refresh; (3)修改圖例中圖層屬性后會觸發(fā)SuperLegend_Modified事件,在該事件中刷新地圖即可看到圖層修改的結(jié)果。

30、 使用圖例控件后,其對圖層的基本控制的功能全部封裝在控件的右鍵菜單中,用戶可以直接使用完成對圖層的控制。,第4章 空間數(shù)據(jù)的顯示和基本操作,第4章 空間數(shù)據(jù)的顯示和基本操作,實例: 通過圖例控件中的右鍵菜單,調(diào)整地圖圖層 窗體設(shè)計: 加載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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論