C# 使用 ArcObjects 创建多边形要素并显示在地图控件上
这段代码是用于在地图控件上创建多边形要素的函数。以下是对每行代码的解释:
private void createPolygonToolStripMenuItem_Click(object sender, EventArgs e)
{
// 创建要素的第一个顶点
IPoint point1 = new PointClass();
point1.PutCoords(10, 20);
// 创建要素的第二个顶点
IPoint point2 = new PointClass();
point2.PutCoords(40, 50);
// 创建要素的第三个顶点
IPoint point3 = new PointClass();
point3.PutCoords(60, 40);
// 创建要素的第四个顶点
IPoint point4 = new PointClass();
point4.PutCoords(50, 10);
// 创建要素的第一条边线
ILine pLine = new LineClass();
ISegmentCollection pPath = new PathClass();
object o = Type.Missing;
pLine.PutCoords(point1, point2);
pPath.AddSegment(pLine as ISegment, ref o, ref o);
// 创建要素的第二条边线
pLine = new LineClass();
pLine.PutCoords(point2, point3);
pPath.AddSegment(pLine as ISegment, ref o, ref o);
// 创建要素的第三条边线
pLine = new LineClass();
pLine.PutCoords(point3, point4);
pPath.AddSegment(pLine as ISegment, ref o, ref o);
// 创建多边形的环
ISegmentCollection pRing = new RingClass();
for (int i = 0; i < pPath.SegmentCount; i++)
{
pRing.AddSegment(pPath.get_Segment(i) as ISegment);
}
IRing pRing2 = pRing as IRing;
pRing2.Close();
// 创建多边形
IGeometryCollection pPolygon = new PolygonClass();
pPolygon.AddGeometry(pRing2 as IGeometry, ref o, ref o);
IGeometry polygon = new PolygonClass();
polygon = pPolygon as IGeometry;
// 将多边形要素添加到地图控件中的图层
addFeature('polygon', polygon);
// 设置地图控件的显示范围为多边形的边界框
this.axMapControl1.Extent = polygon.Envelope;
// 刷新地图控件显示
this.axMapControl1.Refresh();
}
这段代码的主要功能是在地图控件上创建一个由四个顶点组成的多边形要素,并将其添加到地图中的图层中。每行代码的具体作用如下:
- 第2-5行:创建四个顶点对象并设置其坐标值。
- 第7-10行:创建一个线对象,并将第一个和第二个顶点设置为线的起点和终点。
- 第11-12行:创建一个路径对象,并将线对象添加到路径中。
- 第14-17行:创建第二条线对象,并将第二个和第三个顶点设置为线的起点和终点。
- 第18-19行:将第二条线对象添加到路径中。
- 第21-24行:创建第三条线对象,并将第三个和第四个顶点设置为线的起点和终点。
- 第25-26行:将第三条线对象添加到路径中。
- 第29-33行:创建一个环对象,并将路径中的线段对象添加到环中。
- 第34行:将环对象封闭。
- 第36-39行:创建一个多边形对象,并将环对象添加到多边形中。
- 第40-41行:将多边形对象转换为通用的几何对象。
- 第44-46行:将多边形要素添加到地图控件的图层中。
- 第49行:设置地图控件的显示范围为多边形要素的边界框。
- 第52行:刷新地图控件的显示。
原文地址: https://www.cveoy.top/t/topic/bKiU 著作权归作者所有。请勿转载和采集!