地理信息系統(tǒng)基本功能開發(fā)技術(shù)_第1頁
地理信息系統(tǒng)基本功能開發(fā)技術(shù)_第2頁
地理信息系統(tǒng)基本功能開發(fā)技術(shù)_第3頁
地理信息系統(tǒng)基本功能開發(fā)技術(shù)_第4頁
地理信息系統(tǒng)基本功能開發(fā)技術(shù)_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、GISGIS設(shè)計(jì)與開發(fā)設(shè)計(jì)與開發(fā)草環(huán)學(xué)院農(nóng)資系草環(huán)學(xué)院農(nóng)資系 努爾麥麥提努爾麥麥提. .艾爾肯艾爾肯 2014年年3月月第二章第二章GISGIS基本功能開發(fā)技術(shù)基本功能開發(fā)技術(shù)v主要內(nèi)容主要內(nèi)容lArcGISArcGIS開發(fā)平臺(tái)介紹開發(fā)平臺(tái)介紹lArcGIS EngineArcGIS Engine的組件的組件lGISGIS基本功能開發(fā)基本功能開發(fā)l信息檢索功能的設(shè)計(jì)與實(shí)現(xiàn)信息檢索功能的設(shè)計(jì)與實(shí)現(xiàn)1,ArcGIS 產(chǎn)品組成v四個(gè)關(guān)鍵部分:四個(gè)關(guān)鍵部分:ArcGIS DesktopArcGIS EngineArcGIS ServerArcIMSArcGIS第一節(jié) ArcGIS 開發(fā)平臺(tái)介紹v2.1

2、.1,ArcGIS簡(jiǎn)介1,ArcGIS 9產(chǎn)品組成第一節(jié) ArcGIS 開發(fā)平臺(tái)介紹2,ArcObjects與ArcGIS產(chǎn)品2,ArcObjects與ArcGIS產(chǎn)品3,ArcObjects組件庫vArcObjects組件庫有3000多個(gè)對(duì)象可供開發(fā)人員調(diào)用,其中有細(xì)粒度的小對(duì)象,例如:Geometry對(duì)象,也有粗粒度的大對(duì)象,例如:Map對(duì)象v可以通過ArcObjects來擴(kuò)展ArcGIS Desktop,定制ArcGIS Engine應(yīng)用,使用ArcGIS Server實(shí)現(xiàn)企業(yè)級(jí)GIS應(yīng)用v采用ArcObjects可以在多種編程環(huán)境中開發(fā),包括C+、支持COM的編程語言、.NET、Jav

3、a等3,ArcObjects組件庫v可以應(yīng)用ArcGIS Desktop SDK來擴(kuò)展ArcGIS Desktop的功能,如添加新的工具、定制用戶界面、增加新的擴(kuò)展模塊等,甚至對(duì)ArcGIS Desktop應(yīng)用程序進(jìn)行完全擴(kuò)展以提高專業(yè)GIS生產(chǎn)能力vArcGIS Server實(shí)現(xiàn)了一套標(biāo)準(zhǔn)的Web GIS服務(wù),支持企業(yè)級(jí)應(yīng)用,可以建立集中式的GIS服務(wù)器來實(shí)現(xiàn)GIS功能,發(fā)布基于Web的GIS應(yīng)用,執(zhí)行分布式GIS運(yùn)算等v2.1.2 ArcGIS的開發(fā)方式v1)VBA開發(fā)vVBA自動(dòng)包含了ESRI對(duì)象庫參考,用戶可以編寫并調(diào)試在ArcMap或ArcCatalog中使用的VB宏以及ESRI的對(duì)

4、象庫,宏命令可以將VB的功能和GIS的功能集成起來。v可以使用ArcObjects的所有組;v其運(yùn)行離不開ArcGIS系統(tǒng)框架;第一節(jié) ArcGIS 開發(fā)平臺(tái)介紹v2.1.2 ArcGIS的開發(fā)方式v2)插件開發(fā)v采用COM技術(shù)開發(fā)基于AE的標(biāo)準(zhǔn)DLLv3)基于COM的可執(zhí)行應(yīng)用程序開發(fā)第一節(jié) ArcGIS 開發(fā)平臺(tái)介紹v2.1.3 ArcGIS Engine ArcGIS Engine簡(jiǎn)介簡(jiǎn)介vArcGIS Engine是一個(gè)簡(jiǎn)單的、獨(dú)立于應(yīng)用程序的ArcObjects編程環(huán)境。其SDK提供了一系列嵌入式、應(yīng)用于ArcGIS Desktop應(yīng)用程序框架之外的ArcGIS組件。vArcGIS

5、Engine是開發(fā)人員用于建立自定義應(yīng)用程序的嵌入式GIS組件的一個(gè)完整類庫第一節(jié) ArcGIS 開發(fā)平臺(tái)介紹一,ArcGIS Engine的功能v 分圖層顯示專題圖,如:道路,河流,行政邊界等v 瀏覽、縮放地圖v 查看地圖上特征要素的信息v 在地圖上顯示文本注記v 在地圖上疊加衛(wèi)星影像或航攝影像v 在地圖上繪制點(diǎn)、線、面幾何體v 通過矩形、圓形或多邊形選中地圖上的要素v 通過SQL語句查找要素v 用各種渲染方式繪制圖層,如分級(jí)渲染、柱狀圖渲染、點(diǎn)密度渲染、按比例尺渲染等v 動(dòng)態(tài)繪制實(shí)時(shí)數(shù)據(jù)v 轉(zhuǎn)換空間數(shù)據(jù)的坐標(biāo)系v 編輯空間數(shù)據(jù)v 空間建模與分析二,ArcGIS Engine的組成v 基本服

6、務(wù)-幾乎所有GIS應(yīng)用程序都需要的GIS核心模塊ArcObjects構(gòu)成,如幾何要素和顯示v 數(shù)據(jù)存取-可以對(duì)柵格和矢量格式,包括Geodatabase進(jìn)行數(shù)據(jù)的存取操作v 地圖表達(dá)-創(chuàng)建和顯示帶有符號(hào)、注記的地圖和專題圖v 開發(fā)組件-快速開發(fā)應(yīng)用程序的界面控件v 擴(kuò)展模塊-ArcGIS Engine運(yùn)行時(shí),可以與標(biāo)準(zhǔn)功能或其他高級(jí)功能一起部署ArcGIS Engine由一個(gè)軟件開發(fā)工具包(由一個(gè)軟件開發(fā)工具包(SDK)和)和一個(gè)運(yùn)行時(shí)(一個(gè)運(yùn)行時(shí)(Runtime)組成)組成二,ArcGIS Engine的組成vArcGIS Engine Developer KitArcGIS Engine

7、Developer Kitv是一個(gè)基于組件的開發(fā)產(chǎn)品,主要面向開發(fā)人員,能與開發(fā)環(huán)境集成,提供了開發(fā)幫助、類庫對(duì)象模型以及代碼示例等vArcGIS Engine的另一個(gè)組件就是其運(yùn)行時(shí)。在部署應(yīng)用程序時(shí),必須安裝相應(yīng)版本的ArcGIS Engine運(yùn)行時(shí)二,ArcGIS Engine的組成vArcGIS Engine的授權(quán)文件* *.ecp.ecp文件文件 授權(quán)文件控制用戶可以使用哪些功能v例如:編輯空間數(shù)據(jù) ArcGIS Engine開發(fā)包使得用戶可以創(chuàng)建、修改或者刪除在Geodatabase或者shapefile中的矢量要素。 標(biāo)準(zhǔn)ArcGIS Engine Runtime可以編輯shap

8、efile和簡(jiǎn)單的Personal Geodatabase要素,若需要編輯Enterprise Geodatabase數(shù)據(jù),則應(yīng)使用Geodatabase Update擴(kuò)展第二節(jié),ArcGIS Engine的組件v一,ArcGIS Engine包含的主要控件: MapControlMapControl PageLayoutControlPageLayoutControl SceneControlSceneControl GlobeControlGlobeControl ToolbarControlToolbarControl TOCControlTOCControl SymbologyCont

9、rolSymbologyControl LicenseControlLicenseControl ToolbarControlToolbarControl二,組件的加載v示例:如何使用MapControl, ToolbarControl, TOCControl如何向工具欄添加ArcGIS Engine內(nèi)置的工具和命令三,MapControl控件vMapControl的功能 管理控件的外觀、顯示屬性和地圖屬性 添加并管理控件中的數(shù)據(jù)層 裝載Map文檔(mxd)到控件中 從其他應(yīng)用程序拖放數(shù)據(jù)到控件中 顯示繪制圖形v實(shí)現(xiàn)的主要接口 IMapControlDefault IMapControl2 I

10、MapControl3 IMapControlEvents2(事件接口)三,MapControl控件vIMapControlDefault接口 該接口是地圖控件的缺省接口,多數(shù)開發(fā)環(huán)境自動(dòng)使用這個(gè)接口定義的屬性、方法,這個(gè)接口也代表了控件最新版本的接口 如果需要使用這個(gè)接口,則用如下代碼: IMapControlDefault pMapControl; pMapControl = axMapControl1.Object as IMapControlDefault;三,MapControl控件vIMapControl2接口 這個(gè)接口是任何一個(gè)與MapControl相關(guān)的任務(wù)的出發(fā)點(diǎn),如設(shè)置控件

11、外觀,設(shè)置Map對(duì)象或控件的顯示屬性,添加或者管理數(shù)據(jù)圖層、地圖文檔,在控件上繪制圖形和返回Geometry等 控制控件外觀界面的屬性: Appearance、BorderStyle、BackColor 方法: 獲取Geometry對(duì)象:TrackLine, TrackPolygon, TrackRectangle, TrackCircle 在控件上繪制圖形:DrawShape,DrawText三,MapControl控件vIMapControl3接口 該接口繼承于IMapControl2,增加了8個(gè)屬性和1個(gè)方法 CustomProperty:設(shè)置自定義控件屬性 DocumentFilena

12、me:返回MapControl裝入的地圖文檔的文件名 DocumentMap:返回MapControl最后裝入的地圖名稱 KeyIntercept:返回或設(shè)置MapControl截取鍵盤按鍵的信息 Object:返回潛在的MapControl控件三,MapControl控件v當(dāng)使用IMapControl2接口時(shí):IMapControl2 pMapControl;pMapControl = axMapControl1.Object as IMapControl2;v或pMapControl = axMapControl1.GetOcx() as IMapControl2;三,MapControl

13、控件vShowMapTips:確定是否顯示地圖的Map TipsvTipDelay:設(shè)置Map Tips的延遲時(shí)間vTipStyle:設(shè)置Map Tips的顯示樣式vSuppressResizeDrawing():當(dāng)控件尺寸發(fā)生變化時(shí)組織數(shù)據(jù)實(shí)時(shí)重繪三,MapControl控件vIMapControlEvents2接口事件接口,定義了MapControl能夠處理的全部事件,如OnMouseDown, OnAfterDraw, OnMouseMove等,其他如OnAfterscreenDraw是繪屏結(jié)束后觸發(fā)的事件,OnExtentUpdated是地圖的Extent屬性發(fā)生變化時(shí)觸發(fā)的事件四,P

14、ageLayoutControl控件v1)Page對(duì)象v-管理PageLayout對(duì)象中頁面v2)SnapGrid對(duì)象v-用于擺放元素而設(shè)置的輔助點(diǎn),便于使用者對(duì)齊元素v3)RulerSettings對(duì)象v-輔助尺v4)MapSurround對(duì)象五,ToolbarControl控件v主要用于提供操作地圖對(duì)象的工具條,是一個(gè)集成多種控制地圖操作的控件。vToolbarControl上添加工具v1)通過向?qū)砑樱籿2)通過代碼添加; 五,ToolbarControl控件v主要接口:IToolbarControl,IToolbarControlDefaultIToolbarControlEvents

15、vToolbarControl上可以駐留三類命令:v1)實(shí)現(xiàn)了Icommand的單擊命令;v2)實(shí)現(xiàn)了ICommand和ITool的命令工具;v3)實(shí)現(xiàn)了ICommand和IToolControl接口的工具控件,用戶界面組件;六,TOCControl控件v 是一個(gè)集成圖層控制操作的控件,一般是通過與其他幾個(gè)地圖顯示控件相互關(guān)聯(lián)一起工作。vSetBuddyControl(object obj)vTOCControl通過上述函數(shù)來關(guān)聯(lián)其他控件。vstring strToolID = ;vstrToolID = esriControlTools.ControlsMapZoomInTool;v thi

16、s.axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapZoomOutTool;vaxToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapZoomInFixedCommand;vaxT

17、oolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapZoomOutFixedCommand;vaxToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapPa

18、nTool;vthis.axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapFullExtentCommand;vaxToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.

19、ControlsMapZoomToLastExtentBackCommand;vaxToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);vstrToolID = esriControlTools.ControlsMapZoomToLastExtentForwardCommand;v axToolbarControl1.AddItem(strToolID, -1, -1, false, 0, esriCommandStyles.esriCommandSty

20、leIconOnly);六,TOCControl控件v2.2.7控件之間的關(guān)聯(lián)v1)通過向?qū)шP(guān)聯(lián)v2)通過代碼關(guān)聯(lián) 第二節(jié),ArcGIS Engine的組件七,控件之間的關(guān)聯(lián)v示例1:v1)通過向?qū)шP(guān)聯(lián)七,控件之間的關(guān)聯(lián)v示例2:v2)通過代碼關(guān)聯(lián)vSetBuddyControl(Object 被關(guān)聯(lián)控件);第三節(jié) GIS基本功能的設(shè)計(jì)開發(fā)v2.3.1圖層的加載 在ArcEngine中需要使用MapControl來顯示地理數(shù)據(jù),用TOCControl進(jìn)行圖層操作。 MapControl控件中可以添加各種常用數(shù)據(jù)格式,如:SHP、mdb、CAD數(shù)據(jù)、Coverage數(shù)據(jù)、TIN數(shù)據(jù)等。u Sha

21、pefile數(shù)據(jù)是一種比較常用的,而且是容易獲得(從其他格式的數(shù)據(jù)轉(zhuǎn)換而來)的文件數(shù)據(jù)格式。u Shapefile采用早期的dBase數(shù)據(jù)的管理模式,即以文件夾作為數(shù)據(jù)庫,文件夾下的文件組成了數(shù)據(jù)庫中的表,對(duì)于Shapefile文件來說就是圖層。u 一個(gè)Shapefile圖層至少需要三個(gè)文件:*.SHP,*.SHX,*.DBF,它們分別用于存儲(chǔ)空間數(shù)據(jù)、空間索引信息和屬性數(shù)據(jù)。1 加載圖層加載圖層使用屬性向MapControl中添加圖層v 在窗體上添加MapControl控件成功后,在控件上點(diǎn)擊右擊查看其屬性框。打開屬性對(duì)話框的”Map”選項(xiàng)卡,點(diǎn)擊 按鈕可以任意加載幾個(gè)圖層。1 加載圖層加載

22、圖層使用程序動(dòng)態(tài)地添加圖層 圖層的常規(guī)加載方法首先向工程里添加如下引用:ESRI.ArcGIS.DataSourcesFile;ESRI.ArcGIS.GeoDataBase;ESRI.ArcGIS.Carto;1 加載圖層加載圖層打開圖層的常用步驟:v1.創(chuàng)建一個(gè)類工廠v2.使用類工廠創(chuàng)建一個(gè)要使用的工作區(qū)v3.使用工作區(qū)打開并得到圖層的datasetv4.把dataset裝入到新建的圖層實(shí)例v5.把圖層加載到MapControl控件1 加載圖層加載圖層涉及的類和接口相關(guān)類說明vWorkSpace類WorkSpace類是一個(gè)包含空間數(shù)據(jù)集和非空間數(shù)據(jù)集的數(shù)據(jù)容器。根據(jù)數(shù)據(jù)集的物理存儲(chǔ)形式可以

23、分為三種類型:1) 基于文件形式的FileSystemWorkspace2) 基于本地?cái)?shù)據(jù)庫文件形式的LocalDatabaseWorkspace3) 基于遠(yuǎn)程數(shù)據(jù)庫管理系統(tǒng)(RDBMS)并通過ArcSDE訪問的RemoteDatabaseWorkspace1 加載圖層加載圖層vWorkSpaceFactory類WorkSpaceFactory是工作空間分配者,用戶進(jìn)行相應(yīng)的屬性設(shè)置并通過它來連接各種工作空間。從該類中派生出了很多其他的類,如用于連接本地shp格式數(shù)據(jù)的ShapeFileWorkspaceFactory,以及用于連接遠(yuǎn)程SDE數(shù)據(jù)的SdeWorkspaceFactory還有:R

24、asterWorkspaceFactoryAccessWorkspaceFactoryCadWorkspaceFactoryArcinfoWorkspaceFactoryTinWorkspaceFactory等。涉及的類和接口涉及的類和接口1 加載圖層加載圖層IWorkspaceFactory接口 該接口主要用于打開和創(chuàng)建工作空間,并提供Workspace的相關(guān)信息。該接口共提供了1種屬性和11種方法。下面介紹其中兩種方法。涉及的類和接口涉及的類和接口1 加載圖層加載圖層vOpen方法該方法通過連接屬性打開工作空間,其形式為:IWorkspace Open(IPropertySet propS

25、et, int hWnd ); 參數(shù): propSet連接屬性,IPropertySet對(duì)象。hWnd整型變量,一般為0。涉及的類和接口涉及的類和接口1 加載圖層加載圖層vOpenFromFile方法通過文件路徑和名稱打開指定的本地工作空間,其形式為:IWorkspace OpenFromFile (string fileName,int hWnd ); 參數(shù):fileName表示所要打開工作空間的路徑文件名稱。hWnd整型變量,一般為0。涉及的類和接口涉及的類和接口1 加載圖層加載圖層vIPropertySet接口該接口提供了1種屬性和7種方法來管理連接屬性。常見屬性和方法有: SetPro

26、perty方法該方法用于設(shè)置指定的連接屬性值。 GetProperty方法返回指定連接屬性值。涉及的類和接口涉及的類和接口1 加載圖層加載圖層vIFeatureWorkspace:v提供創(chuàng)建和打開各種數(shù)據(jù)集等有關(guān)的功能。vOpenFeatureClass:打開一個(gè)要素類,就是存在于FeatureWorkspace里面的一個(gè)FeatureClass涉及的類和接口涉及的類和接口1 加載圖層加載圖層v AddLayer:地圖空間上添加指定圖層。地圖空間上添加指定圖層。v用法:用法:AddLayer (pLayer )v pLayer:是一個(gè)圖層對(duì)象是一個(gè)圖層對(duì)象v AddLayerFromFile:

27、將圖層文件加載到地圖控件上指定的將圖層文件加載到地圖控件上指定的位置。這里的位置是各圖層在位置。這里的位置是各圖層在Mapcontrol上的上的Index。v 用法:用法: v MapControl1.AddLayerFromFile (C:TempmyLayer.lyr“,2 );v “C:TempmyLayer.lyr“:圖層文件路徑名稱圖層文件路徑名稱;v 2:是在:是在MapControl上的圖層的上的圖層的顯示指數(shù)顯示指數(shù);涉及的類和接口涉及的類和接口1 加載圖層加載圖層v IWorkspaceFactory wsf = new ShapefileWorkspaceFactory()

28、;v IWorkspace ws= wsf.OpenFromFile(E:博湖縣表三移動(dòng), 2);v IFeatureWorkspace fws = ws as IFeatureWorkspace;v IFeatureClass fc= fws.OpenFeatureClass(博湖縣調(diào)查點(diǎn).shp);v IFeatureLayer fl = new FeatureLayerClass();v fl.FeatureClass = fc;v ILayer lyr = fl as ILayer;v lyr.Name = fc.AliasName;v this.axMapControl1.Map.A

29、ddLayer(lyr);1 加載圖層加載圖層 v上面演示的是圖層的常規(guī)加載方法,但是Shapefile作為一種應(yīng)用非常廣泛的地理數(shù)據(jù)格式,MapControl控件提供了更方便的加載方法,省去了建工作區(qū)、找數(shù)據(jù)集等步驟??梢杂孟旅娲a完成:v object.AddShapeFile (Path, fileName ) Map Control1.AddShapeFile (“F:Shapefile”,“縣界.shp);參數(shù):F:Shapefile:是包含要打開的shp文件的路徑;縣界.shp:是在上面的路徑下shape文件的文件名。1 加載圖層加載圖層向MapControl中加載柵格數(shù)據(jù)u Ar

30、cEngine支持的柵格數(shù)據(jù)格式有:IMG,TIF,JPG,SID,BMP等1 加載圖層加載圖層v ArcEngine的功能既強(qiáng)大也很靈活,直接從文件創(chuàng)建Raster圖層也是被支持的: using ESRI.ArcGIS.DataSourcesRaster; /創(chuàng)建柵格圖層類v IRasterLayer rasterLayer = new RasterLayerClass();v /從路徑創(chuàng)建柵格圖層rasterLayer.CreateFromFilePath(“E:test縣界.tif”);v /圖層添加到地圖控件this.axMapControl1.AddLayer(rasterLayer

31、);1 加載圖層加載圖層向MapControl中加載CAD數(shù)據(jù)u DWG數(shù)據(jù)是GIS的一個(gè)重要數(shù)據(jù)源,ArcEngine對(duì)CAD數(shù)據(jù)支持得非常好。u下面示例程序加載文件”F:testdl.dwg”1 加載圖層加載圖層 /設(shè)置workspace IWorkspaceFactory pWorkspaceFact = new CadWorkspaceFactoryClass();/Open the Workspace IWorkspace pWorkspace;pWorkspace = pWorkspaceFact.OpenFromFile(d:test, 0);/設(shè)置CadDrawingWorks

32、pace ICadDrawingWorkspace pCadDwgWorkspace = (ICadDrawingWorkspace)pWorkspace; /Open the CadDrawingDataset ICadDrawingDataset pCadDwgDataset;pCadDwgDataset = pCadDwgWorkspace.OpenCadDrawingDataset(dl.dwg);/在Mapcontrol中打開圖形if (pCadDwgDataset = null) return;ICadLayer pCadLayer = new CadLayerClass();pC

33、adLayer.CadDrawingDataset = pCadDwgDataset;this.axMapControl2.AddLayer(pCadLayer, 0);1 加載圖層加載圖層向MapControl中加載Coverage數(shù)據(jù)v Coverage數(shù)據(jù)的格式為”*.adf”示例給出加載Coverage數(shù)據(jù)的一個(gè)方法:IWorkspaceFactory wf = new ArcInfoWorkspaceFactoryClass();IWorkspace ws = wf.OpenFromFile(d:testadfdata, 0);IFeatureWorkspace fws = ws a

34、s IFeatureWorkspace;IFeatureClass fc = fws.OpenFeatureClass(w001001);IFeatureLayer flr = new FeatureLayerClass();flr.FeatureClass = fc;ILayer lyr = flr as ILayer;this.axMapControl1.AddLayer(lyr);1 加載圖層加載圖層向MapControl中加載TIN數(shù)據(jù)v 示例代碼如下:IWorkspaceFactory pTinWSFactory;ITinWokspace pTinWS;ITinLayer pTinL

35、yr;pTinWSFactory=new TinWorkspaceFactoryClass();pTinWS=pTinWSFactory.OpenFromFile(“F:TIN”,0);pTinLyr=new TinLayerClass();pTinLyr.Dataset=pTinWS.OpenTin(“地形”);pTinLyr.Name=“地形”;axMapControl1.AddLayer(pTinLyr); 1 加載圖層加載圖層圖層的選擇圖層的選擇u MapControl通過對(duì)圖層進(jìn)行索引來定位圖層,如果想得到索引為2的圖層(首先保證其存在),方法如下:layer=axMapContro

36、l1.get_layer(2) ;u但在程序開發(fā)中,我們不容易知道具體的圖層索引號(hào),因此用名稱來獲取圖層比較合適,下面定義的函數(shù)可用名稱來獲得圖層,代碼如下:1 加載圖層加載圖層 調(diào)用以上函數(shù)可以獲得相應(yīng)的圖層。v private ILayer GetLayerByName(AxMapControl mapCtrl,string lyrName)v v ILayer lyr=null;v for (int i = 0; i mapCtrl.LayerCount;i+ )v v if (mapCtrl.get_Layer(i).Name = lyrName)v lyr = mapCtrl.get

37、_Layer(i);v elsev lyr = null;v v return lyr;v ILayer lyer=GetLayerByName(axMapControl1,”分市州”);Lyer.Visible=false; /隱藏分市州圖層axMapControl1.Refresh();1 加載圖層加載圖層圖層的卸載u 卸載指定圖層:axMapControl1.DeleteLayer(3);u 卸載所有圖層:axMapControl1.ClearLayers();axMapControl1.Refresh();1 加載圖層加載圖層控制圖層顯示的范圍v當(dāng)MapControl中加載了很多圖層之

38、后,在縮放過程中,用戶并不希望所有圖層都顯示,比如在瀏覽中國輪廓的時(shí)候,縣級(jí)的行政區(qū)劃就不必要再顯示了,這樣可以減小地圖負(fù)載,使地圖更清晰。v實(shí)現(xiàn)這個(gè)功能,具體的做法就是設(shè)置圖層的可見比例尺范圍,代碼如下:axMapControl1.get_Layer(3).MaximumScale=500000;axMapControl1.get_Layer(3).MinimumScale=1000000;axMapControl1.Refresh(); 1 加載圖層加載圖層第三節(jié) GIS基本功能的設(shè)計(jì)開發(fā)v2.3.2鷹眼功能的實(shí)現(xiàn)ArcEngine實(shí)現(xiàn)鷹眼功能v下面給出一個(gè)簡(jiǎn)單鷹眼模塊示例。 關(guān)于鷹眼的實(shí)

39、現(xiàn)方式,最常用的是用一個(gè) MapControl 控件顯示地圖全圖,并在上面畫一個(gè)紅色矩形框表示當(dāng)前地圖的顯示范圍,并實(shí)現(xiàn)鷹眼 MapControl 與主窗體的 MapControl 互動(dòng)。 1 、添加鷹眼控件、添加鷹眼控件 2、鷹眼的實(shí)現(xiàn)、鷹眼的實(shí)現(xiàn) 當(dāng)?shù)貓D載入到主 Map 控件時(shí),同時(shí)也載入到鷹眼控件,代碼如下:鷹眼功能的實(shí)現(xiàn)ArcEngine實(shí)現(xiàn)鷹眼功能v1 、添加鷹眼控件、添加鷹眼控件鷹眼功能的實(shí)現(xiàn)數(shù)據(jù)的同步加載OnMapReplacedv private void axMapControl2_OnMapReplaced (object sender, IMapControlEvents2_OnMapReplacedEvent e)v v IMap pMap = this.axMapControl2.Map;v for (int i = 0; i 添加一個(gè)屬性表窗體。二,圖層屬性表顯示2 為屬性表窗體添加DataGridView控件,并修改控件Anchor屬性為(Top, Bottom, Left, Right)。二,圖層屬性表顯示 3 為屬性表窗體編寫相關(guān)代碼,實(shí)現(xiàn)圖層屬性信息往屬性表中的添加。 (構(gòu)造函數(shù)和析構(gòu)函數(shù)) public partial class TableForm: Form p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論