青岛网站建设哪家公司好,效果图制作代做网站,广西住房和城乡建设厅网站主页,介绍做茶工艺的网站ArcGIS Pro SDK #xff08;九#xff09;几何 7 多点 文章目录 ArcGIS Pro SDK #xff08;九#xff09;几何 7 多点1 构造多点 - 从映射点的枚举2 构造多点 - 使用 MultipointBuilderEx3 修改多点的点4 从多点检索点、2D 坐标、3D 坐标 环境#xff1a;Visual Studio 2…ArcGIS Pro SDK 九几何 7 多点 文章目录 ArcGIS Pro SDK 九几何 7 多点1 构造多点 - 从映射点的枚举2 构造多点 - 使用 MultipointBuilderEx3 修改多点的点4 从多点检索点、2D 坐标、3D 坐标 环境Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 构造多点 - 从映射点的枚举
// 使用 builderEx 的便捷方法或者使用 builderEx 构造函数。ListMapPoint list new ListMapPoint();
list.Add(MapPointBuilderEx.CreateMapPoint(1.0, 1.0));
list.Add(MapPointBuilderEx.CreateMapPoint(1.0, 2.0));
list.Add(MapPointBuilderEx.CreateMapPoint(2.0, 2.0));
list.Add(MapPointBuilderEx.CreateMapPoint(2.0, 1.0));// 使用 builderEx 构造函数 - 不需要在 MCT 上运行。
// 使用 AttributeFlags.NoAttributes - 我们在列表中有 2d 点
MultipointBuilderEx builderEx new MultipointBuilderEx(list, AttributeFlags.None);
Multipoint multiPoint builderEx.ToGeometry() as Multipoint;
int ptCount builderEx.PointCount;// builderEx 便捷方法不需要在 MCT 上运行
multiPoint MultipointBuilderEx.CreateMultipoint(list);
// multiPoint.HasZ, HasM, HasID 将为 false - 属性是根据列表中点的属性状态确定的// 或者具体设置状态
multiPoint MultipointBuilderEx.CreateMultipoint(list, AttributeFlags.None);
// multiPoint.HasM falsemultiPoint MultipointBuilderEx.CreateMultipoint(list, AttributeFlags.HasM);
// multiPoint.HasM trueptCount multiPoint.PointCount;2 构造多点 - 使用 MultipointBuilderEx
Coordinate2D[] coordinate2Ds new Coordinate2D[] { new Coordinate2D(1, 2), new Coordinate2D(-1, -2) };
SpatialReference sr SpatialReferences.WGS84;MultipointBuilderEx builder new MultipointBuilderEx(coordinate2Ds, sr);// builder.PointCount 2builder.HasZ true;
// builder.Zs.Count 2
// builder.Zs[0] 0
// builder.Zs[1] 0builder.HasM true;
// builder.Ms.Count 2
// builder.Ms[0] NaN
// builder.Ms[1] NaNbuilder.HasID true;
// builder.IDs.Count 2
// builder.IDs[0] 0
// builder.IDs[1] 0// 设置为空
builder.SetEmpty();
// builder.Coords.Count 0
// builder.Zs.Count 0
// builder.Ms.Count 0
// builder.IDs.Count 0// 重置坐标
ListCoordinate2D inCoords new ListCoordinate2D() { new Coordinate2D(1, 2), new Coordinate2D(3, 4), new Coordinate2D(5, 6) };
builder.Coordinate2Ds inCoords;
// builder.Coords.Count 3
// builder.HasZ true
// builder.HasM true
// builder.HasID truedouble[] zs new double[] { 1, 2, 1, 2, 1, 2 };
builder.Zs zs;
// builder.Zs.Count 6double[] ms new double[] { 0, 1 };
builder.Ms ms;
// builder.Ms.Count 2// 坐标现在为 (x, y, z, m, id)
// (1, 2, 1, 0, 0), (3, 4, 2, 1, 0) (5, 6, 1, NaN, 0)MapPoint mapPoint builder.GetPoint(2);
// mapPoint.HasZ true
// mapPoint.HasM true
// mapPoint.HasID true
// mapPoint.Z 1
// mapPoint.M NaN
// mapPoint.ID 0// 添加一个 M 到列表
builder.Ms.Add(2);
// builder.Ms.count 3// 坐标现在为 (x, y, z, m, id)
// (1, 2, 1, 0, 0), (3, 4, 2, 1, 0) (5, 6, 1, 2, 0)// 现在再次获取第二个点它现在将有一个 M 值
mapPoint builder.GetPoint(2);
// mapPoint.M 2int[] ids new int[] { -1, -2, -3 };
// 分配 ID 值
builder.IDs ids;// 坐标现在为 (x, y, z, m, id)
// (1, 2, 1, 0, -1), (3, 4, 2, 1, -2) (5, 6, 1, 2, -3)// 创建一个新点
MapPoint point MapPointBuilderEx.CreateMapPoint(-300, 400, 4);
builder.SetPoint(2, point);// 坐标现在为 (x, y, z, m, id)
// (1, 2, 1, 0, -1), (3, 4, 2, 1, -2) (-300, 400, 4, NaN, 0)builder.RemovePoints(1, 3);
// builder.PointCount 13 修改多点的点
// 假设一个多点是由 4 个点构成的
// 修改后的多点将移除第一个点并移动最后一个点// 使用 builderEx 构造函数 不需要在 MCT 上运行。
MultipointBuilderEx builderEx new MultipointBuilderEx(multipoint);
// 移除第一个点
builderEx.RemovePoint(0);
// 修改最后一个点的坐标
var ptEx builderEx.GetPoint(builderEx.PointCount - 1);
builderEx.RemovePoint(builderEx.PointCount - 1);var newPtEx MapPointBuilderEx.CreateMapPoint(ptEx.X 1.0, ptEx.Y 2.0);
builderEx.AddPoint(newPtEx);
Multipoint modifiedMultiPointEx builderEx.ToGeometry() as Multipoint;4 从多点检索点、2D 坐标、3D 坐标
ReadOnlyPointCollection points multipoint.Points;
IReadOnlyListCoordinate2D coords2d multipoint.Copy2DCoordinatesToList();
IReadOnlyListCoordinate3D coords3d multipoint.Copy3DCoordinatesToList();