当前位置: 首页 > news >正文

自己可以做网站服务器seo 专业

自己可以做网站服务器,seo 专业,免费视频素材网站有哪些,xshuan主题wordpressArcGIS Pro SDK (九)几何 5 多边形 文章目录 ArcGIS Pro SDK (九)几何 5 多边形1 构造多边形 - 从映射点的枚举2 构造多边形 - 从包络3 获取多边形的点4 获取多边形的各个部分5 枚举多边形的各个部分6 获取多边形的线段7 构建圆环…

ArcGIS Pro SDK (九)几何 5 多边形

文章目录

  • ArcGIS Pro SDK (九)几何 5 多边形
    • 1 构造多边形 - 从映射点的枚举
    • 2 构造多边形 - 从包络
    • 3 获取多边形的点
    • 4 获取多边形的各个部分
    • 5 枚举多边形的各个部分
    • 6 获取多边形的线段
    • 7 构建圆环多边形
    • 8 创建 N 侧正多边形
    • 9 获取多边形的外环

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

1 构造多边形 - 从映射点的枚举

// 使用 builderEx 便捷方法或使用 builderEx 构造函数。MapPoint pt1 = MapPointBuilderEx.CreateMapPoint(1.0, 1.0);
MapPoint pt2 = MapPointBuilderEx.CreateMapPoint(1.0, 2.0);
MapPoint pt3 = MapPointBuilderEx.CreateMapPoint(2.0, 2.0);
MapPoint pt4 = MapPointBuilderEx.CreateMapPoint(2.0, 1.0);List<MapPoint> list = new List<MapPoint>() { pt1, pt2, pt3, pt4 };Polygon polygon = PolygonBuilderEx.CreatePolygon(list, SpatialReferences.WGS84);
// polygon.HasZ 将为 false - 它由列表中点的 HasZ 标志决定// 或者特别使用 AttributeFlags.NoAttributes
polygon = PolygonBuilderEx.CreatePolygon(list, AttributeFlags.None);// 使用 AttributeFlags.None 因为我们有 2D 点
PolygonBuilderEx polygonBuilder = new PolygonBuilderEx(list, AttributeFlags.None);
polygonBuilder.SpatialReference = SpatialReferences.WGS84;
polygon = polygonBuilder.ToGeometry();

2 构造多边形 - 从包络

// 使用 builderEx 便捷方法或使用 builderEx 构造函数。MapPoint minPt = MapPointBuilderEx.CreateMapPoint(1.0, 1.0);
MapPoint maxPt = MapPointBuilderEx.CreateMapPoint(2.0, 2.0);// 创建包络
Envelope env = EnvelopeBuilderEx.CreateEnvelope(minPt, maxPt);Polygon polygonFromEnv = PolygonBuilderEx.CreatePolygon(env);PolygonBuilderEx polygonBuilderEx = new PolygonBuilderEx(env);
polygonBuilderEx.SpatialReference = SpatialReferences.WGS84;
polygonFromEnv = polygonBuilderEx.ToGeometry() as Polygon;

3 获取多边形的点

// 获取点作为只读集合
ReadOnlyPointCollection pts = polygon.Points;// 获取点的枚举
IEnumerator<MapPoint> enumPts = polygon.Points.GetEnumerator();// 获取点坐标作为只读的 Coordinate2D 列表
IReadOnlyList<Coordinate2D> coordinates = polygon.Copy2DCoordinatesToList();// 获取点坐标作为只读的 Coordinate3D 列表
IReadOnlyList<Coordinate3D> coordinates3D = polygon.Copy3DCoordinatesToList();

4 获取多边形的各个部分

// 获取部分作为只读集合
ReadOnlyPartCollection parts = polygon.Parts;

5 枚举多边形的各个部分

int numSegments = 0;
IEnumerator<ReadOnlySegmentCollection> segments = polygon.Parts.GetEnumerator();
while (segments.MoveNext())
{ReadOnlySegmentCollection seg = segments.Current;numSegments += seg.Count;foreach (Segment s in seg){// 处理线段}
}

6 获取多边形的线段

List<Segment> segmentList = new List<Segment>(30);
ICollection<Segment> collection = segmentList;
polygon.GetAllSegments(ref collection);
// segmentList.Count = 4
// segmentList.Capacity = 30// 使用线段构建另一个多边形
Polygon polygonFromSegments = PolygonBuilderEx.CreatePolygon(collection);

7 构建圆环多边形

List<Coordinate2D> outerCoordinates = new List<Coordinate2D>();
outerCoordinates.Add(new Coordinate2D(10.0, 10.0));
outerCoordinates.Add(new Coordinate2D(10.0, 20.0));
outerCoordinates.Add(new Coordinate2D(20.0, 20.0));
outerCoordinates.Add(new Coordinate2D(20.0, 10.0));// 定义内部多边形为逆时针方向
List<Coordinate2D> innerCoordinates = new List<Coordinate2D>();
innerCoordinates.Add(new Coordinate2D(13.0, 13.0));
innerCoordinates.Add(new Coordinate2D(17.0, 13.0));
innerCoordinates.Add(new Coordinate2D(17.0, 17.0));
innerCoordinates.Add(new Coordinate2D(13.0, 17.0));PolygonBuilderEx pbEx = new PolygonBuilderEx(outerCoordinates);
Polygon donutEx = pbEx.ToGeometry() as Polygon;
double areaEx = donutEx.Area;       // 面积 = 100pbEx.AddPart(innerCoordinates);
donutEx = pbEx.ToGeometry() as Polygon;areaEx = donutEx.Area;    // 面积 = 84.0areaEx = GeometryEngine.Instance.Area(donutEx);    // 面积 = 84.0

8 创建 N 侧正多边形

// <summary>
// 创建一个 N 边正多边形。 正多边形是等角(所有角度相等)
// 和等边(所有边长相等)的多边形。 请参阅 https://en.wikipedia.org/wiki/Regular_polygon
// </summary>
// <param name="numSides">多边形的边数。</param>
// <param name="center">多边形的中心。</param>
// <param name="radius">从多边形中心到顶点的距离。</param>
// <param name="rotation">多边形起点的旋转角度(以弧度为单位)。起点将
// 从正 x 轴逆时针旋转。</param>
// <returns>N 边正多边形。</returns>
// <exception cref="ArgumentException">边数小于 3。</exception>
public Polygon CreateRegularPolygon(int numSides, Coordinate2D center, double radius, double rotation)
{if (numSides < 3)throw new ArgumentException();Coordinate2D[] coords = new Coordinate2D[numSides + 1];double centerX = center.X;double centerY = center.Y;double x = radius * Math.Cos(rotation) + centerX;double y = radius * Math.Sin(rotation) + centerY;Coordinate2D start = new Coordinate2D(x, y);coords[0] = start;double da = 2 * Math.PI / numSides;for (int i = 1; i < numSides; i++){x = radius * Math.Cos(i * da + rotation) + centerX;y = radius * Math.Sin(i * da + rotation) + centerY;coords[i] = new Coordinate2D(x, y);}coords[numSides] = start;return PolygonBuilderEx.CreatePolygon(coords);
}

9 获取多边形的外环

public void GetExteriorRings(Polygon inputPolygon)
{if (inputPolygon == null || inputPolygon.IsEmpty)return;// 多边形部分数int partCount = inputPolygon.PartCount;// 多边形外环数int numExtRings = inputPolygon.ExteriorRingCount;// 获取多边形的外环集IList<Polygon> extRings = inputPolygon.GetExteriorRings();// 测试每个部分是否为“外环”for (int idx = 0; idx < partCount; idx++){bool isExteriorRing = inputPolygon.IsExteriorRing(idx);var ring = inputPolygon.GetExteriorRing(idx);}
}
http://www.15wanjia.com/news/5238.html

相关文章:

  • 扬州鼎盛开发建设有限公司网站100个电商平台
  • 网站做app安全吗深圳全网信息流推广公司
  • 福田网站建设龙岗网站建设龙岗网站建设龙岗网站建设百度关键词怎么刷上去
  • 2022年楼市最新政策优化落实新十条措施
  • 公司动态网站模板下载百度公司注册地址在哪里
  • 做兼职一般去哪个网站好seo论坛
  • 电商网站开发流程代码东莞全网推广
  • 襄阳住房和城乡建设网站win10优化大师好用吗
  • 南宁做网站价格制作网站需要什么
  • 淘宝上做网站不靠谱网站服务器查询
  • 小程序自己做网站seo优化博客
  • 胜芳哪里做网站公司seo
  • 世界上做的最好的前端网站官方网站怎么注册
  • 濮阳做网站多少钱谷歌seo建站
  • 南通给公司做网站的今天疫情最新消息
  • 有专门做网站的公司吗推广公司属于什么公司
  • wordpress 安装包金融网站推广圳seo公司
  • 党建网站怎么做百度推广靠谱吗
  • 织梦移动网站模板郑州网络推广哪家口碑好
  • 重庆蜡像制作优化公司
  • 韦恩图在线制作网站seo快速上排名
  • 公司网站建设工作总结营销推广技巧
  • c mvc 大型网站开发公司怎么建立自己的网站
  • 虾皮网站有的做吗有什么引流客源的软件
  • 计算机编程是做网站如何推广一个新的app
  • 怎样做后端数据传输前端的网站海外短视频跨境电商平台是真的吗
  • 这几年做哪些网站致富黑帽seo什么意思
  • 网站怎么做自适应权威发布
  • 做网站营业范围石家庄网络推广平台
  • 宁波网站建设专业定制综合搜索引擎