C#使用GeoJSON点集合创建类型为ArcGIS Geometry的外接正方形
来源:互联网 发布:虚拟按键软件代码 编辑:程序博客网 时间:2024/06/09 18:06
直接上代码:
/// <summary>传入一系列的GeoJSON格式的点集,转换得到外包正方形 /// /// </summary> /// <param name="listPoint">GeoJSON格式的点集</param> /// <param name="b">可选参数,缓冲距离</param> /// <returns></returns> public static ESRI.ArcGIS.Geometry.IPolygon CreateEsriPolygon(List<GeoJSON.Net.Geometry.Point> listPoint, double? b = 0.0) { if (0 >= listPoint.Count) return null; var firstPoint = listPoint[0].Coordinates; double dMinX = firstPoint.X; double dMinY = firstPoint.Y; double dMaxX = firstPoint.X; double dMaxY = firstPoint.Y; double dSumX = 0.00; double dSumY = 0.00; foreach (var aPt in listPoint) { dMinX = aPt.Coordinates.X <= dMinX ? aPt.Coordinates.X : dMinX; dMinY = aPt.Coordinates.Y <= dMinY ? aPt.Coordinates.Y : dMinY; dMaxX = aPt.Coordinates.X >= dMaxX ? aPt.Coordinates.X : dMaxX; dMaxY = aPt.Coordinates.Y >= dMaxY ? aPt.Coordinates.Y : dMaxY; dSumX += aPt.Coordinates.X; dSumY += aPt.Coordinates.Y; } double dCenX = dSumX * 100 / listPoint.Count * 0.01; //正方形中心点X坐标 double dCenY = dSumY * 100 / listPoint.Count * 0.01; //正方形中心点Y坐标 double dHalfLength = (((dMaxX - dMinX) > (dMaxY - dMinY)) ? (dMaxX - dMinX) : (dMaxY - dMinY)) * 0.5; dHalfLength += (b.HasValue && (double)b > 0) ? (double)b : 0; //正方形边长的一半 ESRI.ArcGIS.Geometry.IPointCollection pPointCol = new ESRI.ArcGIS.Geometry.Polygon(); pPointCol.AddPoint(CreatePoint(dCenX - dHalfLength, dCenY + dHalfLength)); //左上角点 pPointCol.AddPoint(CreatePoint(dCenX + dHalfLength, dCenY + dHalfLength)); //右上角点 pPointCol.AddPoint(CreatePoint(dCenX + dHalfLength, dCenY - dHalfLength)); //右下角点 pPointCol.AddPoint(CreatePoint(dCenX - dHalfLength, dCenY - dHalfLength)); //左下角点 pPointCol.AddPoint(CreatePoint(dCenX - dHalfLength, dCenY + dHalfLength)); //左上角点(用于闭合线段) return pPointCol as ESRI.ArcGIS.Geometry.IPolygon; }
阅读全文
0 0
- C#使用GeoJSON点集合创建类型为ArcGIS Geometry的外接正方形
- ArcGIS Geometry所有类型
- ArcGis Server queryTask返回数据的geometry为空
- C#集合类型大盘点
- C#集合类型大盘点
- Geotools中Geometry对象与GeoJson的相互转换
- mysql中geometry类型的简单使用
- Arcgis engine 将两个Geometry对象合并为一个新的Geometry对象,其中GeometryA的值会被修改
- Arcgis engine 将两个Geometry对象合并为一个新的Geometry对象,其中GeometryA的值会被修改
- C#的集合类型
- Geometry类型的转换
- C#使用可以为null的类型
- 无法嵌入互操作类型"ESRI.ArcGIS.Geometry.PolygonClass".请改用适用的接口
- Arcgis engine 创建点
- Geometry 1 由点创建线段
- Spring Boot(MVC)下空间字段(Geometry)与geojson的自动转换
- Postgresql 创建空间数据库 支持geometry类型
- c#常用的集合类型
- Selenium--显示等待和隐式等待
- C语言操作符的介绍及总结
- Jupyter notebook和pandas的基本使用
- map&reduce
- 学习python:语法(一)
- C#使用GeoJSON点集合创建类型为ArcGIS Geometry的外接正方形
- 2017 开放学术精准画像大赛
- numpy缩放图片/调整图片大小
- C++类-1
- C&C++搭建环境——微软IDE:Visual Studio
- append()函数
- FTP:基础概念及使用
- 生活小记52
- 最全Linux的发行版简介,一文读懂各发行版之间的联系和区别