版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
地圖的組成及相關(guān)對象第一頁,共四十八頁,2022年,8月28日第五章地圖的組成及相關(guān)對象5.1Map對象5.2圖層對象第二頁,共四十八頁,2022年,8月28日5.1Map對象
5.1.1Map對象簡介5.1.2Map對象的雙重身份5.1.3Map對象主要實現(xiàn)的接口
第三頁,共四十八頁,2022年,8月28日5.1.1Map對象簡介Map對象是ArcGISEngine的主要對象,在Map對象上能顯示的圖形有兩類:(1)地理數(shù)據(jù)地理數(shù)據(jù)包括矢量類型的要素數(shù)據(jù)、柵格數(shù)據(jù)、Tin等表面數(shù)據(jù)地理數(shù)據(jù)保存在Geodatabase或數(shù)據(jù)文件(如Shapefile)中地理數(shù)據(jù)用于GIS分析制圖的源數(shù)據(jù)第四頁,共四十八頁,2022年,8月28日5.1.1Map對象簡介(2)元素(Element)元素是另一種可以顯示在Map上的對象,它分為兩類:一類是圖形元素(GraphicsElement),一類是框架元素(FrameElement)。圖形元素可以顯示出來,而框架元素充當(dāng)了“容器”的角色。在ArcMap中可以使用Draw工具在Map上直接繪制一個矩形、圓形、文本等對象,在布局視圖上也可以給地圖添加指北針、圖例、比例尺等圖形對象,這些都是圖形元素。第五頁,共四十八頁,2022年,8月28日5.1.2Map對象的雙重身份Map對象有雙重身份,一方面是數(shù)據(jù)的管理容器,可以加載地理數(shù)據(jù)和圖形元素,扮演了數(shù)據(jù)管理器的角色;另一方面它又可以讓用戶看到這些數(shù)據(jù),即扮演了數(shù)據(jù)顯示器的角色。當(dāng)加載數(shù)據(jù)到Map對象的時候,Map對象是數(shù)據(jù)的管理者;當(dāng)改變視圖范圍、刷新地圖的時候,它是數(shù)據(jù)的顯示者。第六頁,共四十八頁,2022年,8月28日5.1.3Map對象主要實現(xiàn)的接口
IMapIGraphicContainerIActiveView、IMapBookmarks……第七頁,共四十八頁,2022年,8月28日IMap接口IMap接口是開始多數(shù)GIS任務(wù)的起點IMap接口主要用于管理Map對象中的Layer對象、圖層的要素選擇集、MapSourround對象、標(biāo)注引擎和空間參考等對象Map對象是一個存放Layer對象的容器,IMap接口定義了大量的屬性和方法用于訪問和操作它其中的圖層對象第八頁,共四十八頁,2022年,8月28日IMap接口的屬性第九頁,共四十八頁,2022年,8月28日IMap接口的方法第十頁,共四十八頁,2022年,8月28日IMap接口的主要屬性和方法簡介AddLayer方法將一個圖層對象加入Map對象中AddLayers方法一次加入一個或多個圖層,多個圖層對象必須放在一個EnumLayer對象中才能被引用EnumLayer對象是個圖層枚舉對象,可以保存多個圖層的指針第十一頁,共四十八頁,2022年,8月28日IMap接口的主要屬性和方法簡介ClearLayers方法清除Map中的所有的圖層DeleteLayer方法刪除Map中的某一個圖層LayerCount屬性Map中的圖層對象的個數(shù)get_Layer(Index)屬性根據(jù)地圖中圖層的索引值得到具體的圖層對象第十二頁,共四十八頁,2022年,8月28日IMap接口的主要屬性和方法簡介SelectByShape方法選擇Map中的和指定的shape相交的所有FeatureLayer圖層的要素并高亮顯示,無論是哪個圖層,它把選擇的要素都添加到Map的選擇集里,類似ArcMap里的工具用法:
object.SelectByShape(Shape,env,justOne)
其中:
Shape:表示一個IGeometry
對象
env:表示一個ISelectionEnvironment
對象,是設(shè)置選擇環(huán)境的
justOne:表示是否在選擇到一個實體就停止搜索
第十三頁,共四十八頁,2022年,8月28日通過SelectByShape方法選擇要素代碼示例IMappMap;IActiveViewpActiveView;pMap=axMapControl1.Map;pActiveView=pMapasIActiveView;//得到一個Envelop對象IEnvelopepEnv;pEnv=axMapControl1.TrackRectangle();//新建選擇集環(huán)境對象ISelectionEnvironmentpSelectionEnv;pSelectionEnv=newSelectionEnvironmentClass();//選擇要素,將它們放入到選擇集pMap.SelectByShape(pEnv,pSelectionEnv,false);pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null,null);第十四頁,共四十八頁,2022年,8月28日IMap接口的主要屬性和方法簡介SelectFeature方法可以將在Map上獲得的一個要素放到這個要素的圖層的選擇集中,高亮顯示FeatureSelection屬性可以返回Map中被選擇的要素SelectionCount屬性可以得到Map中的要素選擇集中要素的個數(shù)ClearSelection方法用于清除Map中的選擇集第十五頁,共四十八頁,2022年,8月28日通過FeatureSelection屬性返回被選擇要素的屬性信息IEnumFeaturepEnumFeat;IEnumFeatureSetuppEnumFeatureSetup;//獲得選擇集對象pEnumFeat=(IEnumFeature)pMap.FeatureSelection;pEnumFeatureSetup=pEnumFeatasIEnumFeatureSetup;pEnumFeatureSetup.AllFields=true;IFeaturepFeat;//得到選擇集中的一個要素對象pFeat=pEnumFeat.Next();while(pFeat!=null){//在列表框中顯示被選擇要素的某個字段的值listBox1.Items.Add(pFeat.get_Value(2));pFeat=pEnumFeat.Next();}第十六頁,共四十八頁,2022年,8月28日IGraphicsContainer接口Map對象可以顯示圖形元素(Element),Map對象通過
IGraphicsContainer接口來管理這些元素對象(包括圖形元素和框架元素)。
IGraphicsContainer返回的是Map對象中處于活動狀態(tài)的圖形圖層(graphicslayer)的引用指針,它可以是一個基本的圖形圖層對象(basicgraphicslayer),也可以是CompositeGraphicsLayer中的一個圖層或者是一個FDOGraphicsLayer注記圖層。第十七頁,共四十八頁,2022年,8月28日IGraphicsContainer接口的方法第十八頁,共四十八頁,2022年,8月28日IGraphicsContainer接口的主要方法簡介AddElemen方法用于將一個圖形元素放入Map對象的圖形圖層中AddElements方法一次加入一個或多個圖形元素到Map對象的圖形圖層中DeleteElement方法用于刪除圖形圖層中的一個給定的圖形元素DeleteAllElements用于刪除圖形圖層中的所有的圖形元素第十九頁,共四十八頁,2022年,8月28日通過AddElemen方法往Map中添加元素的代碼示例DimpMapAsIMapDimpActiveViewAsIActiveViewpMap=axMapControl1.Map;pActiveView=pMapasIActiveView;IPointpt;pt=axMapControl1.ToMapPoint(e.x,e.y);IMarkerElementpMarkerElement;pMarkerElement=newMarkerElementClass();IElementpElement;pElement=pMarkerElementasIElement;pElement.Geometry=pt;pGraphicsContainer=pMapasIGraphicsContainer;pGraphicsContainer.AddElement((IElement)pMarkerElement,0);pActiveView.Refresh();第二十頁,共四十八頁,2022年,8月28日IGraphicsContainer接口的主要方法簡介LocateElements方法使用一個點來選擇圖形元素。這個方法需要傳入一個點對象和一個容差值,Map對象會將所有處于點容差周圍的元素選擇到LocateElementsByEnvelope方法使用鼠標(biāo)拖曳一個矩形區(qū)域,選擇到這個區(qū)域內(nèi)的所有的元素第二十一頁,共四十八頁,2022年,8月28日IActiveView接口IActiveView接口定義了Map對象的數(shù)據(jù)顯示功能使用IActiveView接口可以實現(xiàn)以下的功能:改變視圖的范圍刷新視圖顯示或隱藏標(biāo)尺和滾動條得到ScreenDisplay對象的指針第二十二頁,共四十八頁,2022年,8月28日IActiveView接口的屬性第二十三頁,共四十八頁,2022年,8月28日IActiveView接口的方法第二十四頁,共四十八頁,2022年,8月28日IActiveView接口的主要屬性和方法簡介Extent屬性返回Map對象當(dāng)前視圖的范圍,它是一個Envelope對象,即所謂的包絡(luò)線對象FullExtent屬性返回視圖的全圖范圍第二十五頁,共四十八頁,2022年,8月28日IActiveView接口的主要屬性和方法簡介ScreenDisplay屬性指向一個ScreenDisplay對象每一個視圖對象都有一個ScreenDisplay對象用于控制視圖的圖形繪制工作,使用這個屬性會得到一個與當(dāng)前正在使用的視圖相關(guān)的ScreenDisplay對象地圖的數(shù)據(jù)顯示是由一個視圖來控制的,而視圖的ScreenDisplay對象則負(fù)責(zé)繪制圖形,ScreenDisplay對象擁有產(chǎn)生任意數(shù)量的緩存(Cache)的本領(lǐng)第二十六頁,共四十八頁,2022年,8月28日IActiveView接口的主要屬性和方法簡介PartialRefresh方法可以讓視圖對象使用不同的方式來局部刷新以重繪地圖用法如下:
object.PartialRefresh(phase,Data,envelope)
其中:
phase
:為esriViewDrawPhase常數(shù),表示繪制的狀態(tài)
Data:object對象,一般設(shè)置為Nothing
envelope:一個IEnvelope對象,表示刷新的范圍第二十七頁,共四十八頁,2022年,8月28日esriViewDrawPhase常數(shù)ConstantValueDescriptionesriViewNone0Drawsnothing.esriViewBackground1Drawsthebackground.esriViewGeography2Drawsthegeography.esriViewGeoSelection4Drawstheselectedgeography.esriViewGraphics8Drawstheannotation.esriViewGraphicSelection16Drawstheselectedannotation.esriViewForeground32Drawstheforeground.第二十八頁,共四十八頁,2022年,8月28日通過PartialRefresh方法局部刷新的幾種情形RefreshlayerpActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,pLayer,null);Refreshalllayers
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);Refreshselection
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null,null);Refreshlabels
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);第二十九頁,共四十八頁,2022年,8月28日5.2圖層對象
5.2.1圖層對象簡介5.2.2圖層對象的Ilayer接口5.2.3要素圖層(FeatureLayer)的使用第三十頁,共四十八頁,2022年,8月28日5.2.1圖層對象簡介Map對象可以裝載地理數(shù)據(jù),這些數(shù)據(jù)是以圖層的形式放入地圖對象的相同類型的地理數(shù)據(jù)可以使用一個圖層被放入地圖由于地理數(shù)據(jù)格式的多樣性,因而圖層類擁有眾多的子類,它們使用統(tǒng)一的方法來操作各種類型的數(shù)據(jù)第三十一頁,共四十八頁,2022年,8月28日5.2.1圖層對象簡介Map對象中顯示地圖需要設(shè)置空間參考(SpatialReference)當(dāng)?shù)谝粋€圖層添加到Map中時,Map對象的空間參考屬性就自動設(shè)置為這個圖層的空間參考,后面加入的圖層無論是否已經(jīng)含有空間參考都將使用Map對象已經(jīng)設(shè)置的空間參考第三十二頁,共四十八頁,2022年,8月28日5.2.1圖層對象簡介Layer對象本身沒有裝載數(shù)據(jù),而僅僅是獲得了數(shù)據(jù)的引用而已,是用于管理數(shù)據(jù)源的連接地理數(shù)據(jù)始終是保存在GeoDatabase或者地理文件中第三十三頁,共四十八頁,2022年,8月28日5.2.2圖層對象的Ilayer接口Ilayer接口簡介Ilayer接口的主要屬性和方法簡介第三十四頁,共四十八頁,2022年,8月28日Ilayer接口簡介Ilayer是所有圖層類都實現(xiàn)的一般接口Ilayer接口定義了所有圖層的公共屬性和方法Ilayer接口的最新版本為Ilayer2第三十五頁,共四十八頁,2022年,8月28日Ilayer接口的主要屬性和方法簡介Name屬性返回或設(shè)置圖層的名稱MaximumScale方法返回或設(shè)置圖層可見的最大顯示比例MinimumScale方法返回或設(shè)置圖層可見的最小顯示比例第三十六頁,共四十八頁,2022年,8月28日Ilayer接口的主要屬性和方法簡介SpatialReference屬性用于設(shè)置圖層的空間參考ShowTips屬性用于指示當(dāng)鼠標(biāo)放在圖層某個要素上的時候,是否會出現(xiàn)Tip(提示)get_TipText方法用于設(shè)置Tip(提示)在什么地方顯示第三十七頁,共四十八頁,2022年,8月28日通過ShowTips屬性和TipText屬性實現(xiàn)
要素圖層的提示(Tip)代碼privatevoidaxMapControl1_OnMouseMove(objectsender,IMapControlEvents2_OnMouseMoveEvente){IPointpt;pt=axMapControl1.ToMapPoint(e.x,e.y);ILayerpLyr;IFeatureLayerpFeatLyr;pFeatLyr=(IFeatureLayer)axMapControl1.get_Layer(0);pLyr=pFeatLyrasILayer;pFeatLyr.DisplayField="CITY_NAME";stringpTip;pTip=pLyr.get_TipText(pt.X,pt.Y,1);pLyr.ShowTips=true;axMapControl1.ShowMapTips=true;}第三十八頁,共四十八頁,2022年,8月28日5.2.3要素圖層(FeatureLayer)的使用要素數(shù)據(jù)是GIS中最常使用的數(shù)據(jù)類型之一,它可以用于表示離散矢量對象的信息承載要素數(shù)據(jù)的圖層即為要素圖層(FeatureLayer)FeatureLayer實現(xiàn)的重要接口有:IFeatureLayer、IGeoFeatureLayer、IGeoDataset、IFeatureSelection、IFeatureLayerDefinition、ILayerFields、IIdentify第三十九頁,共四十八頁,2022年,8月28日IFeatureLayer接口的主要屬性和方法簡介IFeatureLayer接口用于管理要素圖層的數(shù)據(jù)源,即要素類(Featureclass),IFeatureLayer接口的最新版本為IFeatureLayer2DataSourceType屬性返回要素圖層的數(shù)據(jù)源的類型,要素圖層的數(shù)據(jù)源類型多達(dá)12種,詳細(xì)的類型可以參閱開發(fā)幫助FeatureClass屬性返回要素圖層使用的要素類第四十頁,共四十八頁,2022年,8月28日IFeatureLayer接口的主要屬性和方法簡介Search方法可以根據(jù)查詢條件對要素圖層進(jìn)行查詢,返回一個IFeatureCursor對象。用法:Set
variable=object.Search(queryFilter,recycling)其中:queryFilter:是一個過濾器,為一個IQueryFilte類型的對象recycling:是個布爾值,用于說明返回的要素游標(biāo)是否循環(huán)第四十一頁,共四十八頁,2022年,8月28日通過Search方法查詢出滿足條件的要素
并進(jìn)行閃爍顯示stringsqlfilter;IFeatureLayerpFeatLyr;//得到要進(jìn)行查詢的圖層pFeatLyr=(IFeatureLayer)axMapControl1.get_Layer(2);//定義一個過濾器對象IQueryFilterpFilter;pFilter=newQueryFilterClass();//設(shè)置查詢條件sqlfilter="POP_CNTRY>200000000";pFilter.WhereClause
=sqlfilter;IFeatureCursorpFeatCorsor;pFeatCorsor=pFeatLyr.Search(pFilter,true);IFeaturepFeat;pFeat=pFeatCorsor.NextFeature();while(pFeat!=null){//使用FlashShape方法使要素閃爍
axMapControl1.FlashShape(pFeat.Shape);//通過DrawShape方法在地圖控件上畫出要素
axMapControl1.DrawShape(pFeat.Shape);pFeat=pFeatCorsor.NextFeature();}第四十二頁,共四十八頁,2022年,8月28日IGeoFeatureLayer接口的主要屬性和方法簡介IGeoFeatureLayer接口負(fù)責(zé)要素的顯示屬性,例如要素的著色和標(biāo)注等功能SearchDisplayFeatures方法使用這個方法只顯示符合查詢要求的要素,其它的要素都會消失掉如果一個要素圖層與其它圖層或?qū)傩员碛腥魏涡问降年P(guān)聯(lián)關(guān)系,則可以使用這個方法第四十三頁,共四十八頁,2022年,8月28日IGeoFeatureLayer接口的主要屬性和方法簡介Renderer屬性用于用戶設(shè)置圖層的著色對象,制作專題圖。DisplayAnnotation屬性可以設(shè)置要素圖層是否出現(xiàn)標(biāo)注。當(dāng)這個屬性值為True時,用戶可以在這個要素圖層上依據(jù)要素類的某個字段進(jìn)行標(biāo)注。第四十四頁,共四十八頁,2022年,8月28日IGeoDataset接口的主要屬性和方法簡介IGeoDataset接口僅有兩個屬性,它們用于管理地理要素集。一個要素圖層的地理數(shù)據(jù)放在要素類中,而要素類本身是一個數(shù)據(jù)集對象。Extent屬性可以返回當(dāng)前數(shù)據(jù)集的范圍,是一個IEnvelope類型的對象SpatialReference屬性可以讓用戶獲得這個數(shù)據(jù)集的空間參考第四十五頁,共四十八頁,2022年,8月28日IFeatureSelection接口的主要屬性和方法簡介IFeatureSelection接口負(fù)責(zé)管理一個圖層中的要素選擇集的方法和屬性。Add方法可以把本圖層上的一個要素添加到圖層的選擇集中SelectFeatures方法
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物流園區(qū)建設(shè)與運營管理合同
- 二零二五年度出口退稅證明開具與國際物流配送服務(wù)合同3篇
- 2024物業(yè)租賃合同協(xié)議范本
- 2024網(wǎng)絡(luò)游戲代理運營合同
- 2025年度新型材料研發(fā)中心廠房租賃協(xié)議范本4篇
- 2025廠區(qū)食堂承包合同樣本:營養(yǎng)健康食譜定制版3篇
- 2025年度智慧園區(qū)場地服務(wù)合同范本7篇
- 2024年03月中國銀行股份有限公司2024年春季招考筆試歷年參考題庫附帶答案詳解
- 2025年度文化產(chǎn)業(yè)園場地承包經(jīng)營合作協(xié)議范本4篇
- 2025年度產(chǎn)業(yè)園區(qū)企業(yè)服務(wù)中心租賃合同4篇
- 2023光明小升初(語文)試卷
- 三年級上冊科學(xué)說課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計原則、計算和檢驗
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(一級)教師職稱考試試題(有答案)
- 申請使用物業(yè)專項維修資金征求業(yè)主意見表
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 實用性閱讀與交流任務(wù)群設(shè)計思路與教學(xué)建議
- 應(yīng)急柜檢查表
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 酒店市場營銷教案
評論
0/150
提交評論