ArcGIS Pro SDK (九)几何 3 点
创始人
2025-01-08 12:05:16
0

ArcGIS Pro SDK (九)几何 3 点

文章目录

  • ArcGIS Pro SDK (九)几何 3 点
      • 1 构造地图点
      • 2 地图点生成器属性
      • 3 地图点的相等性
      • 4 缩放至指定点

环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0

1 构造地图点

// 使用生成器便捷方法或使用生成器构造函数。  // 创建一个带M的3D点 MapPoint pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, 3.0, 4.0);  // builderEx构造函数不需要在MCT上运行。 MapPointBuilderEx mb = new MapPointBuilderEx(1.0, 2.0, 3.0, 4.0); // 对生成器做一些操作  MapPoint ptWithM = mb.ToGeometry();  MapPoint clone = ptWithM.Clone() as MapPoint; MapPoint anotherM = MapPointBuilderEx.CreateMapPoint(ptWithM);  MapPointBuilderEx builderEx = new MapPointBuilderEx(1.0, 2.0, 3.0); builderEx.HasM = true; builderEx.M = 4.0;  pt = builderEx.ToGeometry() as MapPoint;  // 或者使用另一种带builderEx构造函数的方法 builderEx = new MapPointBuilderEx(1.0, 2.0, true, 3.0, true, 4.0, false, 0); pt = builderEx.ToGeometry() as MapPoint;  // 或者使用builderEx便捷方法 pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, 3.0, 4.0); 

2 地图点生成器属性

// 使用builderEx便捷方法或builderEx构造函数。 // 这些都不需要在MCT上运行。  MapPoint point1 = null; MapPoint point2 = null;  MapPointBuilderEx mb = new MapPointBuilderEx(1.0, 2.0, 3.0); bool bhasZ = mb.HasZ;          // hasZ = true bool bhasM = mb.HasM;          // hasM = false bool bhasID = mb.HasID;        // hasID = false  // 对生成器做一些操作  point1 = mb.ToGeometry();  // 修改一些生成器属性 mb.X = 11; mb.Y = 22; mb.HasZ = false; mb.HasM = true; mb.M = 44; // 创建另一个点 point2 = mb.ToGeometry();  double x = point1.X;                  // x = 1.0 double y = point1.Y;                  // y = 2.0 double z = point1.Z;                  // z = 3.0 double m = point1.M;                  // m = Nan int ID = point1.ID;                   // ID = 0 bool hasZ = point1.HasZ;              // hasZ = true bool hasM = point1.HasM;              // hasM = false bool hasID = point1.HasID;            // hasID = false bool isEmpty = point1.IsEmpty;        // isEmpty = false  bool isEqual = point1.IsEqual(point2);    // isEqual = false  // builderEx便捷方法 MapPoint point3 = MapPointBuilderEx.CreateMapPoint(point1); x = point3.X;                   // x = 1.0 y = point3.Y;                   // y = 2.0 z = point3.Z;                   // z = 3.0 m = point3.M;                   // m = Nan ID = point3.ID;                 // ID = 0 hasZ = point3.HasZ;             // hasZ = true hasM = point3.HasM;             // hasM = false hasID = point3.HasID;           // hasID = false  MapPointBuilderEx builderEx = new MapPointBuilderEx(point1); x = builderEx.X;              // x = 1.0 y = builderEx.Y;              // y = 2.0 z = builderEx.Z;              // z = 3.0 m = builderEx.M;              // m = Nan ID = builderEx.ID;            // ID = 0 hasZ = builderEx.HasZ;        // hasZ = true hasM = builderEx.HasM;        // hasM = false hasID = builderEx.HasID;      // hasID = false isEmpty = builderEx.IsEmpty;     // isEmpty = false  MapPoint point4 = builderEx.ToGeometry() as MapPoint;  MapPoint point5 = MapPointBuilderEx.CreateMapPoint(point1); x = point5.X;              // x = 1.0 y = point5.Y;              // y = 2.0 z = point5.Z;              // z = 3.0 m = point5.M;              // m = Nan ID = point5.ID;            // ID = 0 hasZ = point5.HasZ;        // hasZ = true hasM = point5.HasM;        // hasM = false hasID = point5.HasID;      // hasID = false isEmpty = point5.IsEmpty;     // isEmpty = false 

3 地图点的相等性

MapPoint pt1 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, 5); int ID = pt1.ID;           // ID = 5 bool hasID = pt1.HasID;     // hasID = true  MapPoint pt2 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, 0); ID = pt2.ID;        // ID = 0 hasID = pt2.HasID;  // hasID = true  MapPoint pt3 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4); ID = pt3.ID;          // ID = 0 hasID = pt3.HasID;    // hasID = false  MapPoint pt4 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 44); ID = pt4.ID;          // ID = 0 hasID = pt4.HasID;    // hasID = false bool hasM = pt4.HasM; // hasM = true  MapPoint pt5 = MapPointBuilderEx.CreateMapPoint(1, 2, 3); ID = pt5.ID;          // ID = 0 hasID = pt5.HasID;    // hasID = false hasM = pt5.HasM;      // hasM = false  bool isEqual = pt1.IsEqual(pt2);   // isEqual = false, 不同的ID isEqual = pt2.IsEqual(pt3);        // isEqual = false, HasID不同 isEqual = pt4.IsEqual 

4 缩放至指定点

//创建一个点 var pt = MapPointBuilderEx.CreateMapPoint(x, y,                 SpatialReferenceBuilder.CreateSpatialReference(4326)); //对其进行缓冲 - 目的是缩放 var poly = GeometryEngine.Instance.Buffer(pt, buffer_size);  //是否需要投影缓冲区多边形? if (!MapView.Active.Map.SpatialReference.IsEqual(poly.SpatialReference)) {   //投影多边形   poly = GeometryEngine.Instance.Project(poly, MapView.Active.Map.SpatialReference); }  // 必须在MCT上运行。 QueuedTask.Run(() => {   //缩放 - 为动画效果添加延迟   MapView.Active.ZoomTo(poly, new TimeSpan(0, 0, 0, 3)); }); 

相关内容

热门资讯

第1分钟了解!游戏浙江大厅脚本... 第1分钟了解!游戏浙江大厅脚本修改,科乐辅助工作室,指南教程(有挂规律)-哔哩哔哩该软件可以轻松地帮...
七分钟了解!微乐四川辅助,微乐... 七分钟了解!微乐四川辅助,微乐小程序免费黑科技下载,步骤教程(确实有挂)-哔哩哔哩1)微乐小程序免费...
第5分钟了解!土豪辅助,新道游... 第5分钟了解!土豪辅助,新道游辅助软件下载,策略教程(有挂分析)-哔哩哔哩1、全新机制【新道游辅助软...
第四分钟了解!中至鹰潭亲友圈辅... 第四分钟了解!中至鹰潭亲友圈辅助,兴动海满麻浆辅助,经验教程(有挂攻略)-哔哩哔哩1、玩家可以在中至...
7分钟了解!闲逸辅助器,广西老... 7分钟了解!闲逸辅助器,广西老友修改器,法子教程(有挂教程)-哔哩哔哩1、广西老友修改器脚本辅助下载...
第3分钟了解!红黑大战控制系统... 第3分钟了解!红黑大战控制系统,拱趴大菠萝玩的是运气吗,练习教程(果真有挂)-哔哩哔哩1、游戏颠覆性...
第九分钟了解!家乡大二辅助免费... 第九分钟了解!家乡大二辅助免费,奇迹陕西游戏辅助挂,妙招教程(有挂助手)-哔哩哔哩奇迹陕西游戏辅助挂...
8分钟了解!海南琼崖海南辅助功... 8分钟了解!海南琼崖海南辅助功能,传送屋辅助,模板教程(有挂详情)-哔哩哔哩1、海南琼崖海南辅助功能...
第5分钟了解!天天开心王国辅助... 第5分钟了解!天天开心王国辅助器,手机填大坑辅助器,策略教程(真实有挂)-哔哩哔哩天天开心王国辅助器...
五分钟了解!德普之星透视挂,川... 五分钟了解!德普之星透视挂,川南九九辅助,攻略教程(有挂细节)-哔哩哔哩1、每一步都需要思考,不同水...