首页 ArcGISEngine中的几何对象分析

ArcGISEngine中的几何对象分析

举报
开通vip

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

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