Geometry 是 ArcGIS Engine 中使用最为广泛的对象集之一,用户在创建、删除、
编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象;除了显
示要素以外,控件对象选择,要素符号化,标注要素,编辑要素都需要
Geometry 参与。
1 Point 几何对象
Point:是一个0维的几何图形,具有 X,Y 坐标值,以及一些可选的属性:
创建一个 Point 对象:
1. IPoint pPoint = new PointClass();
2. pPoint.X = 100;
3. pPoint.Y = 100;
2.Segment 几何对象:是一个二维的几何图形,由起点、终点和参数定义三个方面定义,分为四个子类:
Line,CircularArc,EllipticArc 和 BezierCurve
3.Path 几何对象:是连续的 Segment 的集合,除了路径的第一个 Segment 和最后一
个 Segment 外其余的 Segment 的起始点都是前一个 Segment 的终止点,即 Path 对象
的中的 Segment 不能出现分离,Path 可以是任意数的 Line,CircularArc,EllipticArc 和
BezierCurve 的组合。
4.Ring 几何对象:是一个封闭的 Path 即起始和终止点有相同的坐标值。它有内部和外
部属性。
5.Polyline 对象:是由一个或多个相连或者不相连的 path 对象的有序集合,它可以是单
个 Path 对象组成,也可以是多个相连的 Path 对象组成,或者是多个分离的 Path 组成,
以下代码片段为使用 IGeometryCollection 接口创建一个 Polyline 对象:
//定义第一个点
IPoint pPoint1 = new PointClass();
pPoint1.X = 100;
pPoint1.Y = 100;
//定义第二个点
IPoint pPoint2 = new PointClass();
pPoint2.X = 200;
pPoint2.Y = 200;
//创建一个 Line 对象
ILine pLine= new LineClass();
//设置 Line 对象的起始终止点
pLine.PutCoords(pPoint1,pPoint2);
//QI 到 ISegment
ISegment pSegment= pLine as ISegment;
//创建一个 Path 对象
SegmentCollection pPath= new PathClass();
object o=Type.Missing;
//通过 ISegmentCollection 接口为 Path 对象添加 Segment 对象
pPath.AddSegment(pSegment,ref o,ref o);
//创建一个 Polyline 对象