ArcGIS几何形体理解.ppt
《ArcGIS几何形体理解.ppt》由会员分享,可在线阅读,更多相关《ArcGIS几何形体理解.ppt(90页珍藏版)》请在三一办公上搜索。
1、第八章使用几何体,课程预览 ArcMap几何对象的类型 操作:用代码创建新的几何体 画几何体,Geometry是AO中使用最为广泛的对象集之一,用户在新建、删除、编辑和进行地理分析的时候,就是在处理一个包含几何形体的矢量对象;除了显示要素外,在空间选择、要素着色制作专题图、标注编辑等很多过程中也需要Geometry参与。,在Geometry模型中,几何形体对象被分为两种层次,一是构成要素形状的几何图形,另一种是组成这些形状的组成部分。,ArcMap几何形体,线段:在曲线的起点和终点之间线段集合成 paths/ringsPaths/rings集合成lines/polygons可以在任何层次上编辑
2、,两点所确定的弧段,Ring继承至path,几何形体对象模型图,Point,MultiPoint,Ring,Path,Segment,Geometry,Envelope,Curve,Polyline,Line,BezierCurve,CircularArc,Polycurve,*,*,*,Polygon,*,Geometrycollection,*,一、Point对象 Point对象是一个0维的几何图形,具有X、Y坐标值,以及可选的属性,如高程(Z值),测量值(M)和ID号,可以用于描述只需要精确定位的对象,如一个城市在全国的位置等。,相关类说明,1、IPoint接口 定义了Point对象的属
3、性和方法:ID属性:返回点对象的ID号;M、Z值:返回点的测量号和高程值 X和Y:获得一个点的X和Y的坐标值 PutCoords:用于设置一个点的X、Y坐标值 ConstrainAngle和ConstrainDistance方法可以使用参数改变已经存在点的位置。如ConstrainAngle只要确定旋转角度和描点等参数,就可以精确移动。,2、IConstructPoint接口 AO中Geometry模型的一个重要特点是它具有一套丰富的,利用已经存在的几何对象的距离、角度和空间关系,生成新的几何形体对象的方法。使用这些方法常常涉及使用角度和偏转角。在AO编写程序时,角度使用的是弧度单位,而长度单
4、位使用地图投影单位。IConstructPoint接口,可以使用多达10种方法来创建所需要的点,下面需要介绍几种点的构造方法:,(1)ConstructAlong沿线创建方法 沿线创建法是基于一个曲线(Curve)上起始点对象,通过给定距离、比例和扩展类型,沿着曲线类创建一个新点。如果距离比曲线的长度要长,那么点将沿着它的切线生成。,object.ConstructAlong(curve,extension,distance,asRatio),(2)ConstructAngleBisector角平分线创建法 这种方法使用三个点,即起始点(FromPoint)、通过点(Through Point
5、)和终止点(ToPoint)。该方法通过平分三点形成的夹角,并设置一个距离在平分线寻找到一点。如果长度为负值,则沿着反方向放置点。,object.ConstructAngleBisector(from,through,to,distance,useAcuteAngle),(3)ConstructAngleIntersection构造角度交点 通过给定的两个点和两个角度,这个方法可以在两条射线的交点处产生一个点。两条射线由点和角度来确定。,object.ConstructAngleIntersection(p1,angle1,p2,angle2),(4)ConstructAngleDistanc
6、e构造角度距离点 通过一个给定点和一个相对点的绝对角度和距离,构造器可以惟一确定一个新点。,object.ConstructAngleDistance(p,inAngle,distance),(5)ConstructDeflection构造偏角度点 给定一个基准线段,一个偏转角度和一个距离,该方法将沿着偏转角度和射线方向可以一定距离设置一个新点。,object.ConstructDeflection(baseLine,distance,inAngle),(6)ConstructDeflectionIntersection构造偏转角交点 这种方法使用一条线段作为基准线,从该基准线的起始点和终点分
7、别测量偏转角度,引出两条射线,两条射线相交点为新点。这个方法的OnRightSide参数可以确定点在基线的方位。,object.ConstructDeflectionIntersection(baseLine,startAngle,endAngle,OnRightSide),(7)ConstructOffset构造偏移点 给定一条路径,沿着曲线的距离或者比例,然后进行一段水平偏移,如果Offset值为正,则该点向右偏移;如果Offset值为负,则向左水平偏移。,object.ConstructOffset(curve,extension,distance,asRatio,Offset),(8)
8、ConstructParallel构造平行线上的点 构造平行线上点方法是给定一条直线路径Path,一个参考点Point及一段距离或比率,该构造器将在平行线上构造出一个新点。,object.ConstructParallel(Segment,extension,start,distance),二、MultiPoint对象 MultiPoint点集对象是无序点的群集,它用于表示具有相同属性设置的同一组点。如一家公司不同的营业场所可以使用点集来表示。,MultiPoint对象可以使用Add方法来添加一个点到它的集合中去,这个过程需要使用IPointCollection接口来完成。,Dim pPoin
9、tCollection As IPointCollectionSet pPointCollection=New MultipointpPointCollection.AddPoint pPoint,如同Point对象一样,MultiPoint对象也有众多的构造方法,这些构造方法都在IConstructMultipoint接口中定义,它们能够基于一个已经存在的几何对象来产生一个点集。,1.ConstructArcPoints构造圆弧点 这个构造器通过给定的一段圆弧,返回出该圆弧的终止点、起始点、圆心和切线的交点等四个点对象。,object.ConstructArcPoints(a),A:ICir
10、cularArc,2.ConstructDivideLength构造等长度点 这个方法通过给定的一条曲线对象和已经定义的长度,返回所有处于这条曲线上的点对象,这些点包含在一个点集对象中。,object.ConstructDivideLength(inCurve,separationDistance),3.ConstructDivideEqual构造等分点 这个构造器根据输入的一条曲线和需要返回的点的数目来产生一个点集对象。,object.ConstructDivideEqual(inCurve,numInnerPoints),4.ConstructTangent构造切线点 这个方法用于产生一个
11、点在圆上面的两个切点。,object.ConstructTangent(inCurve,p),点与点群 点是没有尺寸的,只有一对X、Y坐标值 点群是点的集合,Point,Multipoint with six points,Dim pPoint As IPointSet pPoint=New PointpPoint.X=300pPoint.Y=450Dim pMultiPts As IPointCollectionSet pMultiPts=New MultiPointpMultiPts.AddPoint pPoint,三、几何对象的组成部分曲线Curve 除去点、点集和封边界对象外,几乎其他
12、所有的几何形体都可以看做是曲线(Curve),Curve是具有一维视图或者二维边界形状的几何对象,如Line、Polyline、Polygon、CircularArc、BezierCurve、EllipticArc和CircularArc等都是曲线的一种。这些对象都实现了ICurve接口。,ArcMap几何形体,线段:在曲线的起点和终点之间线段集合成 paths/ringsPaths/rings集合成lines/polygons可以在任何层次上编辑,两点所确定的弧段,Ring继承至path,ICurve接口 ICurve接口提供了操作任何一种一维形状或二维边界形状的属性和方法,但是它并不能用于
13、产生一个新的曲线对象。Length属性:返回一个曲线对象的长度 FromPoint和ToPoint:获得和设置一个曲线的起始点和终止点ReverseOrientation方法:改变一个曲线的节点次序,即改变一个曲线对象的起始点和终止点顺序,IsClosed属性:说明一个曲线的起始点和终止点是否在同一个位置(除了Polygon)QueryPoint方法:依据特定的长度或比例来获得一个曲线对象上的某一点的位置,Dim pCurve As ICurveDim pOutPoint As IPointSet pOutPoint=New PointpCurve.QueryPoint esriSegment
14、Extension.esriNoExtension,2,False,pOutPoint,如果查询长度超过了曲线本身的长度,就需要设置片段扩展。,GetSubcurve方法:复制一个曲线对象的某个特定部分 QueryTangent和QueryNormal方法:得到基于曲线对象上某一点的曲线的切线和法线。,(一)片段对象 片段(Segment)是由一个起始点、一个终止点以及定义两点之间的曲线的函数组成的一维几何形体对象,它是一条单一的曲线对象 片段对象是一个抽象类,它可能是线性的,如线段(Line);也可能是非线性的,如圆弧(CircularArc)、椭圆弧(EllipticArc)和贝塞尔曲线(
15、BezierCurve)等都是一种片段对象。,ArcMap几何形体,线段:在曲线的起点和终点之间线段集合成 paths/ringsPaths/rings集合成lines/polygons可以在任何层次上编辑,两点所确定的弧段,Ring继承至path,1、CircularArc对象 该对象是一个圆弧,它是圆的一部分,如果使用CircularArc来表示一个整圆,则它的CentralAngle为2,且其起始点和终止点的位置是一个点。在几何对象中,CircularArc是EllipticArc的特殊情况。其主要属性如图:,IConstructCircularArc接口的一些构造器:(1)Constr
16、uctCircle构造器 是产生一个圆对象的最简单的方法,通过传入CenterPoint(圆心)和Radius(半径)两个属性,可以确定一个惟一的圆对象。,object.ConstructCircle(CenterPoint,Radius,isCCW),(2)ConstructArcDistance 通过传入一个起始点、中点和圆弧长度来产生一个新的圆弧对象,当然这个长度不能超过整个2*radius。,object.ConstructArcDistance(Center,from,isCCW,arcDistance),(3)ConstructChordDistance 基于一个起始点、圆弧的弦长
17、度、圆弧的方向和中心点来产生一个新的圆弧对象。,object.ConstructChordDistance(Center,from,isCCW,chordDistance),(4)ConstructEndPointsChordHeight 是使用一个起始点、一个终止点和一个弦的中点高度,按照顺时针或逆时针的方向产生一个圆弧对象。,object.ConstructEndPointsChordHeight(from,to,isCCW,ChordHeight),(5)ConstructFilletPoint 可以产生两条线段或圆弧的内切线,这个方法要求传入两个Segment对象以及内切弧在两个Seg
18、ment上的点。,object.ConstructFilletPoint(s1,s2,from,hintPoint),(6)ConstructTangentAndPoint 可以相切于一个片段对象某点的圆弧。,object.ConstructTangentAndPoint(s,atFrom,p),(7)ConstructThreePoints 通过三个给定的点对象来产生一个惟一的圆弧,这三个点分别是起始点、终止点和圆弧上的任一点,这个点处于起始点和终止点中间的某一位置。,object.ConstructThreePoints(from,middle,to,useExistingCenter),
19、2、Line对象 Line对象是最简单的片段,它是由起始点和终止点决定的一条直线,它是一维几何对象 Line是最简单和最常使用的片段对象,通常用于构造Polyline、Polygon、Ring和Path对象等。ILine是Line对象主要支持的接口,它定义了一系列用于构造和设置线段对象的属性和方法。,QueryCoords属性:返回通过一个直线上的起始点和终止点的坐标值;PutCoords:设置线段两点的坐标 Angle属性:返回线段对象与X轴的夹角。,此外,IConstructLine接口还提供了更两个更复杂的方法来产生一个线段。ConstructAngleBisector方法:通过传入三个
20、点对象,构造一个夹角,然后通过这个夹角的顶点产生一个角平分线以及一个线段的长度。,object.ConstructAngleBisector(from,through,to,Length,useAcuteAngle),ConstructExtended:可以用于扩展一个已经存在的线段对象来产生一个新的线段。,object.ConstructExtended(inLine,extendHow),3、EllipticArc对象 EllipticArc(椭圆弧)是一个椭圆的一部分,椭圆是通过一个长轴、一个短轴、中心点和旋转角度值来确定的几何对象,它是椭圆弧的特例,如果旋转角度为0,则椭圆对象的两个轴
21、分别与X、Y轴重合。EllipticArc对象则还使用诸如FromAngle、ToAngle两个参数来确定。,4、BezierCurve对象 贝塞尔曲线是由四个控制点定义的,由一组三次多项式描述的参数曲线,用于描述等高线或河流等平滑变化的线对象。,控制点0和控制点1构成的线段和控制点2和控制点3构成的线段相切。这四个控制点产生了一条平滑的曲线。,由起点、终点和方程定义三个方面组成子类:Line,BezierCurve,CircularArc线段用来创建其它的几个对象 Paths,polylines,rings,and polygons Dim pSegment As ILine Set pSe
22、gment=New Line pSegment.FromPoint=pPointA pSegment.ToPoint=pPointB,Segments,From,To,(二)路径(Path)对象 路径是连续片段对象的集合,除了路径的第一个和最后一个组成片段外,每一个片段的起始点都是前一个片段的终止点,即路径对象中的片段不能出现分离的情况。路径可以是任意数目的Line、CircularArc、EllipticArc和BezierCurve的组合。一个或多个路径对象组成一个Polyline。,IPath是Path对象的主要接口,它定义了设置一个路径对象的多个方法。Generalizes方法:可以抽
23、象化一个平滑的路径对象,即可以将一个平滑的曲线变成抽象为几条相连的线段 Smooth方法:将一个非平滑的路径对象平滑化 SmoothLocal方法:可以只将某个连接点处平滑化,而非后者一样平滑整条路径对象。,(三)环(Ring)对象 环是一种封闭的路径对象,它的起始点和终止点坐标值是一样的,这种对象具有“内部”和“外部”属性。环是产生Polygon(多边形)的元素。组成环的片段对象是有序的,环对象也实现了IPath接口。环必须是封闭的路径,因此它具有以下几个关键特征:,它包含一系列首尾相连的同方向的片段对象 它是封闭的,即起始点与终止点是同一点 它不能只相交,IRing接口为Ring所实现,它
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcGIS 几何 形体 理解
链接地址:https://www.31ppt.com/p-5415519.html