AE开发实例代码总结

上传人:ni****g 文档编号:487059891 上传时间:2023-11-09 格式:DOC 页数:27 大小:125.50KB
返回 下载 相关 举报
AE开发实例代码总结_第1页
第1页 / 共27页
AE开发实例代码总结_第2页
第2页 / 共27页
AE开发实例代码总结_第3页
第3页 / 共27页
AE开发实例代码总结_第4页
第4页 / 共27页
AE开发实例代码总结_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《AE开发实例代码总结》由会员分享,可在线阅读,更多相关《AE开发实例代码总结(27页珍藏版)》请在金锄头文库上搜索。

1、-1、AE开发技术文档一、数据加载问题1、加载个人数据库个人数据库是保存在Access中的数据库。加载方式有两种:通过名字和通过属性加载也许不只是这两种,AE中实现同一功能可以有多种方式A、通过设置属性加载个人数据库首先通过IPropertySet接口定义要连接数据库的一些相关属性,在个人数据库中为数据库的路径,例如:IPropertySet Propset= new PropertySetClass(); Propset.SetProperty(“DATABASE,D:testAodatashMapdata.mdb);当定义完属性并设置属性后就可以进展翻开数据库的操作了,在ArcEngine

2、开发中存在IWorkspaceFactory 、IFeatureWorkspace 、IFeatureClass 、IFeatureLayer等几个常用的用于翻开和操作数据空间地物的接口。IWorkspaceFactory是一个用于创立和翻开工作空间的接口,它是一个抽象的接口,我们在具体应用时要用对应的工作空间实例化它,如下: IWorkspaceFactory Fact = new AccessWorkspaceFactoryClass (); 如果我们翻开的是SDE数据库就要用SdeWorkspaceFactoryClass 实例化Fact。当我们完成了工作空间的实例化后就可以根据上边设置

3、的属性翻开对应的Access 数据库了。翻开方式如下:IFeatureWorkspace Workspace = Fact.Open( Propset,0) as IFeatureWorkspace; 翻开Access 工作空间后接下来的事情是做什么了,很简单,找到对应的地物类,赋给相应的层,通过MapControl 控件添加对应的层,然后刷新地图。以下为添加*一层的代码:IFeatureClass Fcls = Workspace.OpenFeatureClass(District);/找到对应的地物类IFeatureLayer Fly = new FeatureLayerClass();/

4、建立新图层Fly.FeatureClass = Fcls; /将地物赋给相应的层MapCtr.Map.AddLayer (Fly);/添加层MapCtr.ActiveView.Refresh();/刷新地图其中District 为地物类的名字,MapCtr 为AE中MapControl 的对象。上边的通过属性设置加载数据空间的方式还可以用于SDE 数据库,在SDE 数据库加载时会介绍。以下为通过设置属性加载Access 数据库的完整C*代码:public void AddAccessDBByPro() IPropertySet Propset = new PropertySetClass();

5、 Propset.SetProperty(DATABASE,D:testAodatashMapData.mdb ); IWorkspaceFactory Fact = new AccessWorkspaceFactoryClass (); IFeatureWorkspace Workspace = Fact.Open(Propset,0) as IFeatureWorkspace; IFeatureClass Fcls = Workspace.OpenFeatureClass (District); IFeatureLayer Fly = new FeatureLayerClass(); Fl

6、y.FeatureClass = Fcls; MapCtr.Map.AddLayer(Fly); MapCtr.ActiveView.Refresh(); B、通过数据库名字加载个人数据库public void AddAccessDBByNameIworkspaceName pWorkspaceName = new WorkspaceNameClass;pWorkspaceName.WorkspaceFactoryProgID= “esriDataSourcesGDB.AccessWorkspaceFactory;pWorkspaceName.PathName =“D:testAodatash

7、MapData.mdb;IName n=pWorkspaceName as IName;IFeatureWorkspace Workspace= n.Open() as IFeatureWorkspace;IFeatureClass Fcls = Workspace.OpenFeatureClass (District); IFeatureLayer Fly = new FeatureLayerClass(); Fly.FeatureClass = Fcls; MapCtr.Map.AddLayer(Fly); MapCtr.ActiveView.Refresh(); 首先创立一个个人数据库工

8、作空间名,再指定工作空间名的ProgID,以确定翻开的是什么类型的工作空间,例如在翻开Access个人数据库时,使用下面代码;IworkspaceName pWorkspaceName = new WorkspaceNameClass;pWorkspaceName.WorkspaceFactoryProgID= “esriDataSourcesGDB.AccessWorkspaceFactory;pWorkspaceName.PathName =“D:testAodatashMapData.mdb;属性WorkspaceFactoryProgID可以确保工作空间是AccessWorkspace

9、Factory,即个人数据库,同时要指定翻开数据库路径。为了翻开数据库,翻开工作空间必须使用IName接口思考有没有其他方法,所以接着定义IName、对象,并把工作空间名转换成IName类型,并赋值给IName对象,然后通过IName对象的open方法翻开相应的工作空间,代码如下:IName n=pWorkspaceName as IName;IFeatureWorkspace Workspace= n.Open() as IFeatureWorkspace;2、AE开发编辑功能数据编辑问题1. 需要了解的概念长事务短事务编辑空间抽象类,类,和组件对象类2、最根本的添加点线面功能添加点方法有多

10、种,根本思路一样,只是少量的接口有变化通过FeatureClass的CreatFeature函数来添加地物。public void AddPointByStore/得到要添加地物的图层IFeatureLayer l=MapCtr.Map.get_Layer(0) as IFeatureLayer;/定义一个地物类,把要编辑的图层转化为定义的地物类IFeatureClass fc= l.FeatureClass;/先定义一个编辑的工作空间,然后把它转化为数据集,最后转化为编辑工作空间,IWorkspaceEdit w=(fc as IDataset).Workspace as IWorkspac

11、eEdit;IFeature f;IPoint p;/开场事务操作w.StartEditing(false); /开场编辑w.StartEditOperation();for(int i=0;i100;i+)/创立一个地物f=fc.CreateFeature();p=new PointClass();/设置点的坐标p.PutCoord(i,i);/确定图形类型f.Shape=p;/保存地物f.Store()/完毕编辑w.StopEditOperation();/完毕事务操作w.StopEditing(true);二、添加线方法跟添加点一样,不同的只是地物类型不一样而已,AE中各类库的介绍1、

12、问题一:什么是UI组件?2、 类库介绍空间拓扑运算1、高级几何对象:点point、多点multipoint、线polyline、面polygon、multipatch等。multipatch:多片,三维地形图中的地图符号包括点状符号、线状符号、面状符号、体状符号以及多片MultiPatch符号等2、拓扑:空间拓扑描述的事自然界地理对象的空间位置关系,即相邻、重合、连通等。是在同一个要素集下的要素类之间的关系的集合,所以要参与一个拓扑的所有要素类,必须在同一个要素集也就是具有同一个空间参考,这样进展的拓扑检查才是准确的。3、一个要素集可以有多个拓扑,但每个要素类最多只能参与一个拓扑,一个拓扑中可

13、以定义多个规则,是地理对象空间属性的一局部,在目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,而Shape格式的数据不能建立拓扑。4、 esriTRTAny 任何拓扑规则,查询拓扑的时候用ESRI提供的拓扑关系5、AE中提供了ITopologicalOperator接口用于拓扑运算,ITopologicalOperator接口用来通过对已存在的几何对象做空间拓扑运算,以产生新的集合对象。ITopologicalOperator接口在GIS开发中的使用非常广泛,通常GIS系统中的缓冲区分析、裁剪几何图形、几何图形差分操作、几何图形合并操作等都需要此接口。B

14、oundary 方法用于几何图形对象的边界。Polygon的几何对象的Boundary是组成它的Polyline几何对象,Polyline几何对象的Boundary是组成它的顶点Point几何对象,而Point的几何对象的Boundary是空对象。Buffer 用于集合对象缓冲区分析拓扑操作,该方法用于给一个高级几何对象产生一个缓冲区,无论是Polygon、Polyline、还是Point,他们的缓冲区都是具有面积的几何对象。Clip 用于对几何对象进展裁剪空间拓扑操作。Clip方法可用一个Envelope对象对一个几何对象进展裁剪,结果是几何对象被Envelope对象所包围的局部。Const

15、ructUion用于将多个枚举对象与单个几何对象合并为单个几何对象。Conve*Hull 用于构建几何对象的凸多边形。Conve*Hull方法用于产生一个几何图形的最小的边框凸多边形没有凹面包含几何图形的最小多边形Cut 用于切割几何对象,不支持GeometryBags几何对象,它可以指定一条切割曲线和一个几何图形,经过切割运算后把几何图形分为左右两局部,左右两局部是相对曲线的方向而言的。点与多点不可被分割。Polyline和Polygon只有与切割曲线相交时才能执行Cut方法。Difference 用于从一个几何图形中减去其与另一个图形相交的局部,产生两个几何对象的差集。Intersection方法用于两个同纬度几何对象的交集局部。Simplify用于使几何

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号