C#使用GeoJSON点集合创建类型为ArcGIS Geometry的外接正方形

地理空间数据处理控件Aspose.GIS使用教程:使用 C# 将 JSON 转换为 GeoJSON 在某些情况下,您可能需要将 JSON 文件转换为 GeoJSON。如果您有多个文件,以编程方式执行此任务将被证明是有帮助的。为此,本文将教您如何使用 C# 将 JSON 文件转换为 GeoJSON。 阅读详情

直接上代码:

        /// <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;
        }


C# GeoJson 转 WKT "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon" 转WKT 阅读详情

相关推荐

GeoJSON:一个.NET Core库,用于序列化和反序列化GeoJSON格式的JSON数据。 符合RFC 7946

BAMCIS GeoJSON .NET Core 2.0中编写的GeoJSON的实现。 该库符合RFC 7946( )的要求。 可以在nuget 上找到。 目录 局限性 该库不支持RFC 7946的第6节,即使用外部成员扩展GeoJSON。 您将需要使用序列化JSON中包含的其他属性来扩展现有的Geometries,Feature和FeatureCollection类。 用法 例子1 给定一些GeoJSON数据,例如: { " type " : " Feature " , " geometry " : { " type " : " Point " , " coordinates " : [ 102.0 , 0.5 ] }, " properties " : { " prop0 " : " value0 " } } 您可以接收文本并将其反

初识GeoJSON。

ArcGIS中的使用 在ArcGIS Desktop工具箱中有一个JSON工具集,可以用于要素和JSON(或者GeoJSON)间的转换。 JSON and GeoJSON are text-based, lightweight interchange data formats that are used to share GIS data between ArcGIS and other ...

好记性不如烂笔头 1111

geojson-cpp:C ++ 14库,用于将GeoJSON转换为geometry.hpp表示形式

一个用于将GeoJSON转换为表示形式的C ++ 14库。

C#合并多个GeoJSON的多段线

/// /// 合并多个GeoJSON的多段线 /// /// /// private static GeoJSON.Net.Geometry.MultiLineString MergeMultiLine(List alist) { GeoJSON.Net.Geometr

a_dev的专栏 1746

点,线,面对象转成GeoJson格式存储起来

将点,线,面数据集里面的几何对象转换成GeoJson格式存储在记事本(.txt)中。

基于pytest+Allure+Python+CANoe的汽车诊断自动化测试框架搭建实战

自动化测试是提升软件质量和研发效率的关键技术,其核心原理是通过脚本模拟人工操作,实现测试用例的自动执行与结果验证。在汽车电子领域,诊断服务测试是确保车辆ECU(电子控制单元)功能正常的重要环节,传统手动测试在面对海量用例和频繁回归时效率低下。本文聚焦于如何利用Python的pytest测试框架、Allure报告工具以及Excel数据驱动,构建一个与Vector CANoe仿真测试环境深度集成的自动化测试解决方案。该方案通过Python调用CANoe的COM接口,实现了诊断报文的自动发送与响应验证,并结合Al

weixin_30384217的博客 685

使用类似GeoJson的数据生成物体(建筑等)的功能逻辑

  GeoJson作为一种模型传输格式, 用的最多的就是地图里面的各种简单模型了, 比如下图中很贴切的俄罗斯方块楼:   它的格式大概就是下面这样: { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name"...

weixin_33939380的博客 1087

别再到处找模型了!手把手教你用Xinference+Docker部署本地私有大模型(Llama2/Qwen实战)

本文详细介绍了如何使用Xinference和Docker部署本地私有化大模型(如Llama2/Qwen),涵盖硬件配置、模型管理、Docker部署及性能优化等关键步骤。通过实战案例,帮助开发者快速构建企业级AI推理服务,确保数据安全与高效运行。

weixin_28683065的博客 232

C# GIS库 NetTopologySuite shp 转 geojson

将ShapeFile 读取为 FeatureCollection: public bool ShpToFeatureCollection1(string filename, out FeatureCollection collection) { collection = null; try ...

weixin_30333885的博客 1469

嵌入式学习之QT学习---14 QT跨平台运行之把QT程序交叉编译到ARM开发板

想要把qt工程放到开发板上运行,就需要用到交叉编译。由于qt是跨平台的,所以只需要换个编译器编译一下就可以。 以“定时器”的例子为例,在移植之前还需要进行一个准备工作,在windows下运行的时候,电脑屏幕很大,但是运行的窗口只有一点点大,开发板也有外接屏幕,如何让运行窗口自动适配开发板的外接屏幕呢?令其占满屏幕显示,而不是一小块。 第一步:需要设置一下,先给ui布局,如果不布局,控件就不会随着屏幕的大小的变化而变化。 第二步:利用代码来获取屏幕的大小,给widget.cpp文件下添加如下代码 #inclu

qq_42822743的博客 5457

基于深度强化学习技术优化无线网络中的资源分配(一)DQN部分代码

这是一个GitHub上的开源项目,链接:https://github.com/alexis-anzaldo/Deep-Reinforcement-Learning-for-resource-allocation-in-wireless-networks该项目旨在通过深度强化学习DQL技术优化无线网络中的资源分配,特别关注小型蜂窝和超密集无线蜂窝网络中的功率控制问题,主要目标是提高DRL模型的学习效率和网络吞吐量。

m0_46292040的博客 1539

C# 解析省份、城市、区域 json文件

C# 解析省份、城市、区域 json文件

1538

LSM6DSOW陀螺仪轮询驱动:从I2C/SPI配置到数据读取全解析

惯性测量单元(IMU)是现代嵌入式系统中实现姿态感知与运动跟踪的核心传感器,其通过加速度计和陀螺仪测量线性加速度与角速度。在嵌入式开发中,轮询(Polling)作为一种基础且可靠的通信方式,通过主循环主动查询传感器状态,简化了初始调试与验证流程。对于I2C/SPI接口的数字传感器,掌握寄存器配置、数据就绪标志检查及原始数据转换是通用的驱动方法,能够快速验证传感器工作状态并理解数据流。LSM6DSOW作为一款高性能6轴IMU,支持可配置的量程与输出数据速率,适用于无人机飞控、手持云台等高动态场景。本文以LSM

weixin_28728265的博客 560

C# 读写json文件操作

C# 读写json文件操作

jk_rou的博客 9375

【论文精度】生成式预训练模型——BART(Bidirectional and Auto-Regressive Transformers)

​ BART是一个预训练的seq2seq的去噪自编码(denoising autoencoder)模型,BART以下方式进行训练①用任意的噪声函数(noising function)去破坏文本;②学习一个模型来重建原始文本。它使用一个标准的基于transformer的神经机器翻译架构,可以看作是BERT(双向编码器)、GPT(left-to-right解码器)以及其他预训练方案的推广。

weixin_45828972的博客 7450

用ChatGPT 5.5掌握SCI的4个实操润色技巧,论文质量极速提升!(附提示词)

ChatGPT 5.5的发布,在学术写作中的应用变得更加精准和安全,通过正确的使用方法,不仅可以改善语法与表达,让论文达到SCI发表水准,还能最大程度保留作者原意,将AIGC检测率控制在低风险区间。可以帮大家省下大量纠结语法、梳理逻辑的时间,在保证润色质量的同时,兼顾AIGC检测的合规要求,为论文投稿成功率提供实实在在的提升。通过智能调整语序、优化用词和句式结构,该方法能够在保留学术质感的同时,使文章表达更自然、贴近人工撰写的风格,从而避免文字过于程式化,提升论文整体可读性和表达的个性化特征。

智能AI让学术科研更容易 66

GeoJSON.Net 项目常见问题解决方案

GeoJSON.Net 项目常见问题解决方案 项目基础介绍 GeoJSON.Net 是一个用于处理 GeoJSON 格式的 .NET 库。GeoJSON 是一种基于 JSON 的地理数据交换格式,广泛应用于地理信息系统(GIS)和地图服务中。GeoJSON.Net 提供了对 GeoJSON 数据类型的支持,并使用 Newtonsoft.Json 库进行序列化和反序列化。 该项目的主要编程语言是 C...

gitblog_00089的博客 1098

如何在 UniApp 中接入讯飞语音听写功能 文末附vue3+vue2完整代码

在开发过程中,我遇到了讯飞接口返回空数据的问题。通过仔细检查传送的每一帧数据,我发现问题出在第一帧的配置信息以及 Base64 数据的切片。确保每一帧的数据正确且符合接口要求,问题就能够得到解决。希望这个过程能帮助你在项目中顺利对接讯飞语音识别。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1001

C#合并GeoJSON多边形集合为ArcGIS的Geometry对象

合并部分的代码: Func&lt;List&lt;GeoJSON.Net.Geometry.IGeometryObject&gt;, ESRI.ArcGIS.Geometry.IGeometry&gt; MergePolygon = (lsGeometry) =&gt; { ...

a_dev的专栏 1272

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

shp与geojson互转

前言:最近我们项目有个需求,就是将shp文件转为geojson。网上有很多的网站可以进行shp与geojson互转,但是这种做法并不能集成到我们系统中来,只适合单次调用。于是折腾了好多种办法,终于出来了,这里记录一下。 由于我们的项目采用的架构是Postgresql+Geoserver+OpenLayers+Asp.Net Core MVC,所以我们最初的使用方...

AIGIS的博客 2155

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

GEOJSON标准格式学习

文章目录点要素Point多点要素MultiPoint线要素LineStringMultiLineString多边形Polygon多多边形MultiPolygontype 2 两个镶套的多边形type 3 有孔洞的多边形GeometryCollection 最近做的项目需要详细了解geojson,因此查了一些资料,现在整理一份标准格式的记录,要理解本文需要首先了解json的基本知识,这里不过多展开,可以去参考w3school上的教程,简言之,json是通过键值对表示数据对象的一种格式,可以很好地表达数据,其全

qq_36242942的博客 2102

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GeoJSON几何对象示例

GeoJSON几何对象示例

qq_35987023的博客 2343

c# GDAL实现shp转geojson以及Newtonsoft.Json解析geojson

c# gdal实现shp转geojson以及解析geojson

研究生学习记录 1307

空间数据类型转化——geometry转geoJson转geoShape

在SqlServer等结构化的数据库中通常使用geometry 或者是 geoGraphy 。在数据中的类型如下:   .NET对其操作 通过使用EF中的DbGeometry类型进行映射,并且包含对其的多种属性和操作。基本可以满足我们通用的需求。 在EF中,该类型的定义如下: 这虽然满足,.net程序,对于空间数据的基本使用和操作。但是由于目前我们使用的数据存储服务器为Elas

世界中心的专栏 2万+

.NET 关于Geometry转GeoJson

这个问题 我似乎问了大神好几遍了 我竟然还没记住 羞愧 NuGet添加GeoJSON4EntityFramework,引用using alatas.GeoJSON4EntityFramework; FeatureCollection features = new FeatureCollection(item.Geom); string Geo = Regex.Replace(f...

anzanli2393的博客 483
上一篇: C#给JSON对象添加一个键值对
下一篇: ArcGIS官方提供的使用ConvertFeatureClass方法高效导出数据的代码示例
acngiser
博客等级 码龄15年 118粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值