首页 ArcGIS-Engine-中的几何对象解析

ArcGIS-Engine-中的几何对象解析

举报
开通vip

ArcGIS-Engine-中的几何对象解析*ArcGISEngine中的几何对象 课题:第三讲几何对象 目的要求:通过本章的学习,学习了解GIS二次开发中用到的各种几何对象,如Geometry对象、Envelope对象、Curve对象等。 教学重点:掌握GIS二次开发中的各种几何对象 教学难点:实际开发中熟练应用各种几何对象 教学课时:6 学术前沿:*主要内容 Geometry对象 Envelope对象 Curve对象 Segment对象 Path对象 Ring对象 PolyCurve对象 点对象 线对象 面对象GeometryEnvelopePo...

ArcGIS-Engine-中的几何对象解析
*ArcGISEngine中的几何对象 课题:第三讲几何对象 目的要求:通过本章的学习,学习了解GIS二次开发中用到的各种几何对象,如Geometry对象、Envelope对象、Curve对象等。 教学重点:掌握GIS二次开发中的各种几何对象 教学难点:实际开发中熟练应用各种几何对象 教学课时:6 学术前沿:*主要内容 Geometry对象 Envelope对象 Curve对象 Segment对象 Path对象 Ring对象 PolyCurve对象 点对象 线对象 面对象GeometryEnvelopePointCurveMultipointPathSegmentPolyCurveRingPolylinePolygonBezierCurCircularArEllipticArLineGeometry主要对象模型*Geometry对象Geometry对象具有坐标信息,它确定了要素在地球上的位置。Geometry对象具有如下特征: 用户可以通过空间过滤器(SpatialFilter)对这些要素进行空间查询操作; 可以进行空间运算,如缓冲区分析、相交、合并等。Geometry对象及其坐标信息Geometry对象的空间查询*Geometry对象Geometry类是所有几何形体对象的父类,是一个抽象类,Geometry类实现了IGeometry接口。Geometry类和Geometry对象的关系是什么?Geometry类和IGeometry接口的关系是什么?IGeometry接口的主要属性和方法: Dimension—查询几何形体对象的维度; Project—设置几何对象的空间参考属性; GeometryType—返回对象的几何类型; IsEmpty—查看对象是否为空。?*Geometry对象C:\ProgramFiles\ArcGIS\DeveloperKit\Diagrams\GeometryObjectModel.pdf*Geometry对象例:添加Geometry对象PrivatevoidAddFeature(stringLayerName,IGeometryGeometry){FeatureCursor=FeatureClass.Insert(true);FeatureBuffer.shape=Geometry;objectFeatureOID=FeatureCursor.InsertFeature(FeatureBuffer);FeatureCursor.Flush();} 思考题: 1.各几何对象有哪些重要属性和方法? 2.如何在某个图层中添加点、线、面要素?请写出关键代码。 教学 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf : 本次课程介绍了ArcGISEngine开发中用到的各种几何对象,重点在于理解这些对象及其属性、方法,并能在实际开发中熟练运用这些属性和方法。Envelope对象 Envelope也称包络线,是一个矩形区域,是每个几何形体的最小外接矩形。2GIS二次开发湖南城市学院湖南城市学院Curve对象 曲线对象。除了点、点集、包络线外,可以将其他的几何体都看做是曲线(Curve),如Line、Polyline、Path、CircularArc、Polygon等,这些对象都实现了ICurve接口。3GIS二次开发湖南城市学院主要属性:FromPointToPointReverseOrientationIsCloseICurve说明:ICurve接口的属性和方法,只能操作已有曲线对象,不能用于产生新的曲线对象。湖南城市学院Curve对象4GIS二次开发湖南城市学院CircularArcLineEllipticArcBezierCurve湖南城市学院Curve对象-Segment对象 Segment是由一个起点和终点,以及定义这两点之间的曲线函数组成的几何形体对象。 Segment对象是有Curve对象继承而来,因此拥有Curve对象的方法和属性。5GIS二次开发湖南城市学院ISegment是Segment对象的主要接口,该接口提供了两个方法:SplitAtDistanceSplitDivideLength注意:在分割Segment前会自动复制一份副本,然后对副本进行分割,分割操作对源对象不产生影响。湖南城市学院Curve对象-Segment-CircularArc CircularArc的主要接口为ICircularArc,主要属性:6GIS二次开发湖南城市学院FromAngleToAngleCentralAngleCenterPointChordHeightIsLineIsPointIsMinorIsCounterClockwise湖南城市学院Curve对象-Segment-Line 由起点和终点构成的一条直线段,用于构造Polyline、Polygon、Ring和Path等对象。7GIS二次开发湖南城市学院湖南城市学院Curve对象-Path对象 连续多个Segment对象的集合,每个Segment通过首尾相连构成一条路径。IPath是Path对象的主要接口。 Path对象可以由两种途径构造: 使用ISegmentCollection接口的AddSegment方法为Path对象添加子元素; 使用IConstructPath接口的ConstructRigidStretch方法,旋转或缩放一个已经存在的Path对象的形状。8GIS二次开发湖南城市学院湖南城市学院点对象 点对象为0维的具有X、Y坐标的几何对象,没有任何形状,可用来描述点类型的要素。 Geometry中的任何类型都是由点对象产生的。 点集:具有相同属性的点的集合,用于构成高级几何对象。 IPoint接口定义了Point对象的属性和方法。Point对象可以用IPoint接口的PutCoords方法创建,也可以用IConstructPoint接口创建。9GIS二次开发湖南城市学院湖南城市学院点对象 IConstructPoint接口提供了10种创建Point对象的方法:10GIS二次开发湖南城市学院ConstructAlong沿线创建法ConstructAngleBisector角平均线构建法ConstructAngleDistance构造偏转角度法ConstructAngleIntersection构造角度交点法ConstructDeflection构造偏转角度法ConstructDeflectionIntersection构造偏转角交点法ConstructOffset构造偏移点法ConstructParallel构造平行线上点法ConstructPerpendicular构造垂直线上点法ConstructThreePointResection后方交会定点法湖南城市学院点对象 Multipoint对象是具有相同结构的点的集合,通过使用Add方法来添加一个点到集合中。 IConstructMultipoint接口定义了Multipoint对象的属性和方法,接口中定义了5种构造方法:11GIS二次开发湖南城市学院ConstructArcPoints构造圆弧点ConstructDivideEqual构造等分点法ConstructDivideLength构造等长点法ConstructIntersection构造交点法ConstructTangent构造切线法湖南城市学院线、面对象 Polyline(多义线)对象是相连或不相连的路径(Path)对象的有序集合。 组成Polyline的Path对象都是有效的,Path不会重合、相交或自相交。 Polygon对象是一个有序Ring对象的集合,外部Ring方向是顺时针的,内部Ring方向是逆时针的。 IPolygon接口是Polygon对象的主要接口,它定义了一系列的方法和属性来控制Ring。 Polygon对象也可以使用IGeometryCollection的AddSegment方法添加Ring来产生。12GIS二次开发湖南城市学院湖南城市学院面对象 IPolygon对象的主要属性和方法: ExteriorRingCount属性返回一个Polygon对象的外部环的数目; InteriorRingCount属性返回一个Polygon对象的内部环的数目; QueryExteriorRings查询全部外部环; QueryInteriorRings查询全部内部环。13GIS二次开发湖南城市学院湖南城市学院*例:在某个图层中添加新的要素思路:1、设置要素保存的图层(Layer);2、通过在地图控件中绘制图形,获取要添加的Geometry对象;3、调用自定义的AddFeature方法,将Geometry对象添加到Layer图层中。设置图层(Layer)获取Geometry对象调用AddFeature方法**程序界面*AddFeature方法关键代码一、方法名称及参数privatevoidAddFeature(stringstrLayerName,IGeometrypGeometry)二、设置图层ILayerpLayer=null;for(inti=0;i<axMapControl1.LayerCount;i++){pLayer=axMapControl1.get_Layer(i);if(pLayer.Name.Equals(strLayerName)){break;}}*三、定义相关变量IFeatureLayerpFeatureLayer=pLayerasIFeatureLayer;IFeatureClasspFeatureClass=pFeatureLayer.FeatureClass;IDatasetpDataset=pFeatureClassasIDataset;IWorkspacepWorkspace=pDataset.Workspace;四、开始编辑IWorkspaceEditpWorkspaceEdit=pWorkspaceasIWorkspaceEdit;pWorkspaceEdit.StartEditing(true);pWorkspaceEdit.StartEditOperation();IFeatureBufferpFeatureBuffer=pFeatureClass.CreateFeatureBuffer();IFeatureCursorpFeatureCursor=pFeatureClass.Search(null,true);*三、插入新的对象pFeatureCursor=pFeatureClass.Insert(true);pFeatureBuffer.Shape=pGeometry;objectpFeatureOID=pFeatureCursor.InsertFeature(pFeatureBuffer);pFeatureCursor.Flush();四、结束编辑pWorkspaceEdit.StopEditOperation();pWorkspaceEdit.StopEditing(true);System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);*问题:如何获取Geometry对象?axMapControl1.TrackLine();返回值为IGeometry对象*
本文档为【ArcGIS-Engine-中的几何对象解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
真诚文档交流
本人从事临床麻醉五年有余,工作兢兢业业,拥有丰富的临床麻醉经验及临床医学资料,并取得了助理医师资格。
格式:ppt
大小:583KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2020-02-17
浏览量:13