C#将ESRI.Geometry.IGeometry多边形集合转为带面积的GeoJSON多边形对象集合

本文介绍了一段用于将ESRI.ArcGIS.Geometry.IGeometry类型的几何对象转换为GeoJSON格式,并计算其面积的C#代码。该代码通过遍历几何集合,将每个几何对象转换成带有面积属性的GeoJSON格式,最终返回一个包含所有GeoJSON对象的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下(异常在外部捕捉):

                    Func<List<ESRI.ArcGIS.Geometry.IGeometry>, JArray> ConvertShapeWithArea = (lsGeo) =>
                    {
                        JArray aJArray = new JArray();
                        foreach (var pGeo in lsGeo)
                        {
                            JObject aJObject = new JObject(
                                new JProperty("shape", JObject.FromObject(GeometryFactory.CreateGeoJsonFromEsriGeometry(pGeo as ESRI.ArcGIS.Geometry.IPolygon))),
                                new JProperty("area", (pGeo as ESRI.ArcGIS.Geometry.IArea).Area)
                                );
                            aJArray.Add(JToken.FromObject(aJObject));
                        }
                        return aJArray;
                    };

调用时返回结果示例:

[
    {
        "shape": {
            "type": "Polygon",
            "coordinates": [
                [
                    [
                        37563651.04561424,
                        3213571.488904953,
                        0
                    ],
                    [
                        37563587.07734108,
                        3213570.668844223,
                        0
                    ],
                    [
                        37563586.81415367,
                        3213621.285943985,
                        0
                    ],
                    [
                        37563587.53163338,
                        3213647.6975917816,
                        0
                    ],
                    [
                        37563728.04936409,
                        3213650.374227524,
                        0
                    ],
                    [
                        37563729.5853405,
                        3213575.4888095856,
                        0
                    ],
                    [
                        37563653.70521355,
                        3213574.189157486,
                        0
                    ],
                    [
                        37563651.04561424,
                        3213571.488904953,
                        0
                    ]
                ]
            ]
        },
        "area": 10767.57596575679
    }
]

使用AE+C#(C#4版本以下)设计一个SHP转TXT程序,SHP数据是面要素数据,生成的TXT文件包括项目信息、属性描述、地块坐标部分,其中项目信息部分由用户通过文本框输入,属性描述部分由设定好的参数通过用户选择,各参数如下: 坐标系:2000国家大地坐标系 几度分:3、6 投影类型:高斯克吕格 计量单位:米 号:当“几度分”选择的是“6”,号可选择范围是13-23。当“几度分”选择的是“3”,号可选择范围是24-45。 精度:0.01、0.001、0.0001 转换参数:,,,, 地块坐标部分,5,0.0110,8,吴剑,面,F49 G 049047,居住用途,@,分别是:面要素顶点数,地块面积,地块编号,地块名称,图幅号,土地用途,@。其中地块面积,地块编号,地块名称,图幅号,土地用途可以通过选择面要素里的字段获得。 要说明程序界面如何设计 TXT生成坐标实例如下: [项目信息] 项目名称=高州市曹江镇2025年度第四批次城镇建设用地 勘测定界名称=高州市曹江镇2025年度第四批次城镇建设用地 项目所在县区代码=440981 项目所在市县名称=茂名市高州市 项目类别= 项目投资额=0 开发用途=居住用地 总用地面积=0.1641 占用基本农田面积=0 农用地面积=0.1597 耕地面积=0 园地面积=0.1145 林地面积=0.443 养殖水面面积=0 其他农用地面积=0.0009 K地类面积=0 建设用地面积=0.0044 未利用地面积=0 围填海面积=0 是否增减挂钩项目=否 是否属于增减挂钩中发展改革小城镇试点项目=否 是否属于建设用地指标调整项目=否 备注= [属性描述] 坐标系=2000国家大地坐标系 几度分=3 投影类型=高斯克吕格 计量单位=米 号=37 精度=0.001 转换参数=, [地块坐标] 5,0.0110,8,吴剑,面,F49 G 049047,居住用途,@ J1,1,2430314.912,37490420.941 J2,1,2430323.831,37490432.475 J3,1,2430317.869,37490437.089 J4,1,2430308.962,37490425.544 J1,1,2430314.912,37490420.941
最新发布
08-05
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值