AE中Maps和Layers

来源:互联网 发布:mac自带python在哪 编辑:程序博客网 时间:2024/04/29 11:24

http://hi.baidu.com/murphy1314/blog/category/Arcengine

 

访问Maps和Layers
遍历maps和layers
Collections
Enumerations
创建一个新的图层
使用图层对象的属性
设置一个图层的数据源

在ArcMap应用中:
Application代表ArcMap,
一个Application有MxDocument组成,
一个MxDocument由多个Map组成,
一个Map由多个图层Layer组成,
图层Layer是FeatureLayer的基类。
现在,我们要了解,一个FeatureLayer和0或者1个FeatureClass相联合。
Dataset为抽象基类,Table为实例化类,从Dataset派生,FeatureClass是Table的子类。
多FeatureClass组成FeatureDataset。

访问maps:
由MxDocument访问maps
得到当前的map
Dim pMxDoc as IMxDocument
Set pMxDoc=ThisDocument
dim pMap as IMap
set pMap=pMxDoc.FocusMap
得到maps(IMaps)
是Map的集合
Dim pAllMaps as IMaps
Set pAllMaps=pMxDoc.Maps
一个地图文档可以包含有多个数据框,每个数据框都可以拥有不同的图层和表现。
FocusMap是指向当前活动的数据框。

访问Layers:
有map和MxDocument访问layers
得到选定的layer(IMxDocument)
dim pLayer as ILayer
Set pLayer=pMxDoc.SelectLayer
得到指定的图层(IMap)
dim pLayer as ILayer
Set pMap=pMxDoc.FocusMap
set pLayer=pMap.Layer(3)
得到所有图层(IMap)
一个图层的enumeration
dim pAllLayers as IEnumLayer
set pAllLayers=pMap.Layers

遍历Maps集合:
集合是按照顺序的.
通过下标的到引用.第一项的下标为0.
dim intIndex as Integer
dim pMaps as IMaps
set pMaps=pMxDoc.maps

for intIndex=0 to pMaps.Count-1
    MsgBox pMaps.item(intIndex).Name
next

遍历一个Map对象中的图层对象:
IMaps图层集属性返回IEnumLayers,其只有Next和Reset两个方法.
好像是具有较少属性和方法的集合.Next返回ILayer,Reset当前指针指向top,即第一项的前边。
dim pLayer as ILayer
dim pLayers as IEnumLayers
set pLayers=pMap.layers

set pLayer=pLayers.Next;
set pLayer=pLayers.Next;

添加一个新图层到Map中:
Layer是一个抽象类:不能创建
可创建的子类:TinLayer,FeatureLayer,RasterLayer等。
dim pFLayer as ILayer
set pFLayer=new FeatureLayer
dim pMxDoc as IMxDocument
dim pMap as IMap
set pMxDoc=thisdocument
set pMap=pMxDoc.focusmap
pMap.AddLayer pFLayer
因为还没有设置数据源,所以图标为失去数据连接的状态


使用图层对象:
ILayer接口的属性:Name Visible ShowTips MaximumScale MinimumScale等
IGeoDataSet接口属性:Extent SpatialReference

Dim pLayer as ILayer
set pLayer=pMxDoc.SelectedLayer

pLayer.Name="Streets"
pLayer.Visible=true
pLayer.ShowTips=false


设置FeatureLayer的数据源:
FeatureClass属性(IFeatureLayer)
指定显示的数据源
以传引用的方式(必须用set关键字)
Dim pFLayer as IFeatureLayer
set pFLayer=new FeatureLayer
dim pFClass as IFeatureClass
set pFClass=pSomeObjLayer.FeatureClass
set pFLayer.FeatureClass=pFClass

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房门和电梯对着怎么办 搬家与生肖相冲怎么办 颈椎生理曲度变直怎么办 整个背部长痘痘怎么办 卧室门对着厨房怎么办 卧室门正对厕所怎么办 进门正对厕所门怎么办 门口对着厕所门怎么办 厨房门比大门高怎么办 鼻子上山根横纹怎么办 墙与床的缝隙怎么办 床边与墙有间隙怎么办 抽了烟头晕恶心怎么办 9个月宝宝口臭怎么办 狗舔了人的伤口怎么办 狗舔了结痂伤口怎么办 狗狗指甲变黑了怎么办 狗狗不肯剪指甲怎么办 厕所门对厨房门怎么办 房间门对着镜子怎么办 门直对着楼梯口怎么办 厨房门对着客厅怎么办 卧室正对着马路怎么办 主卧厕所对着床怎么办 卧室门对着床头怎么办 主卧厕所门对床怎么办 老人晕车怎么办最有效方法 货车油刹不好用怎么办 7岁儿童喉咙有痰怎么办 3岁宝宝喉咙有痰怎么办 冰箱正对厨房门怎么办 买了连廊高层怎么办 想买电玩瑞文怎么办 财位旁边有窗户怎么办 入室门对卧室门怎么办 卧室门对着大门怎么办 床给别人睡过了怎么办 镜子对着书房门怎么办 次卧对着卫生间怎么办 一楼房间太潮湿怎么办 房间里潮湿很重怎么办