问题标签 [nettopologysuite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
47 浏览

spatial-index - 哪个 NetTopologySuite 索引最适合包含和排除矩形搜索

我有以下问题:大量的点和大量的查询需要尽可能快地提供包含矩形(红色)和外部排除矩形(绿色)的任何点。由于点的数量很大并且矩形可以有各种大小,因此最好使用一些空间索引,但据我所知, NetTopologySuite.Index中的所有查询函数都返回包含所有结果的列表,我需要任何单个结果等等当带有许多点的大矩形出现时,查询太昂贵了。

我是否错过了一些可以解决我的问题的空间索引?或者一些快速解决问题的好方法?我可以使用访问者,但他们会针对每个节点进行评估,我可以在找到元素时使用异常来突破,但这看起来很难看。

可视化

0 投票
0 回答
51 浏览

geometry - NetTopologySuite 在 SQL 数据库中存储 MultiSurface 和 PolygonPatches - 转换为基本 OGC 几何类型

也许这是一个新手问题。我是 GIS 新手,到目前为止我无法找到答案。

我正在研究将管理单元(州、县、社区、城市等)作为几何(边界/区域)存储在数据库中的要求,以便能够基于包含操作进行查询,例如包含给定的列表单元点(返回社区、国家和州)或给定多边形(返回包含城市的县,两者都仅编码为多边形,未定义其他关系

在给我的数据中,行政单位是使用MultiSufrace, SurfaceMembers, Surfaces,定义的PolygonPatches

据我所知,SQL 数据库提供程序和 ORM 仅使用基本的 OGC 定义的几何图形(我知道 PostGIS 有一些扩展类型,但我想让解决方案与多个 SQL 提供程序兼容)

该项目正在使用以下技术堆栈

  • .NET 5
  • 网络拓扑套件 (NTS) 2.3
  • 实体框架核心 5.0.8
  • 数据存储层需要兼容 SQL Server、SQLite 和 PostgreSQL

假设所有领域都与行政单位相关,是否可以将 GML 几何转换为 EFCore / NTS / SQL 提供程序支持的几何?根据 EF Core 文档,它仅支持以下内容:Geometry, Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, MultiPolygon. CircularStringCompoundCurveCurvePolygonNTS 不支持。

行政单元 GML 几何示例:

0 投票
0 回答
29 浏览

c# - 如何使用 EF Core 将 FeatureCollection 存储到 SQL 中?

我想从 json 解析整个功能集合并使用 EF Core 保存它。但是,据我所知,我只能存储GeometryCollection.

是否可以使用 EF Core 在 SQL 中存储功能?

0 投票
1 回答
413 浏览

c# - 在 .NET Core 中序列化 FeatureCollection GEOJSON

我正在尝试序列化 FeatureCollection,以便可以将其作为请求正文传递。为此,我使用 NetTopologySuite.IO.GeoJSON 包并使用他们在github 页面上提供的说明。问题是,当点击 jsonSerializer.Serialize 方法时,我收到一条错误消息:{“源数组中的至少一个元素无法转换为目标数组类型。”} System.Exception {System.InvalidCastException}。

我的方法如下所示:

我在控制器的请求正文中传递的 GEOSJON 对象,最终成为提供给给定方法的区域 FeatureCollection,如下所示:

最后,这是区域对象在运行时的样子的片段: 在此处输入图像描述

0 投票
0 回答
45 浏览

c# - 有没有办法使用 NetTopologySuite 和 MS SQL Server 在笛卡尔系统中保存坐标?

我正在尝试找出如何执行以下操作:

我们使用 C# .NET 和 NetTopologySuite 来管理后端的空间数据。我们做了一些距离计算,这需要使用笛卡尔系统表示。所以我们使用 EPSG 3857,因为我们也在前端使用它来在地图上显示东西。

问题是 SQL Server 没有安装该 SRID,我们被迫将空间数据重新投影到 EPSG 4326 以保存它。当然,我们希望避免这种情况,因为它迫使我们每次需要对这些数据做某事时都重新投影。但是我们无法找到我们应该如何进行的任何地方,或者是否可以保存在任何允许与笛卡尔系统相同类型的值的兼容 EPSG 中。

所以,问题是:有没有办法使用空间数据支持的任何投影在 MSSQL 中保存笛卡尔坐标?它们似乎都是 lat/long 并且不支持 X/Y 米值。

为了进一步澄清,我不希望外部结构保存此信息,我想将其保存为具有指定 SRID 的数据库中的几何类型。

谢谢!

0 投票
0 回答
94 浏览

asp.net-core - ASP.NET Core 3.1 - OData 循环

任何人都可以帮助我解决我已经坚持了几天的事情。我将 Odata 与 asp.net 核心和 NetTopologySuite 一起使用。

我有一个列类型为 Geometry 的 postgres 数据库。使用 npgsql 的请求工作正常,但 Odata 的序列化是一团糟。

似乎 odata 正在循环。每个退回的物品我应该只收到一个 XYZ。

有什么建议么?

这就是返回的内容。

,"形状":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","SRID":4326,"坐标":[{"X" :-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","坐标值":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN ","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{" X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z": "南","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{"X" :-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","坐标值":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN ","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{" X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":{"X":-9.129147,"Y":41.133908999999996,"Z":"NaN","M":"NaN","CoordinateValue":块引用

模型

控制器

存储代理

调试显示查询

tvd_top_f FROM bs_age_depth AS b 失败:Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1] 执行请求时发生未处理的异常。Microsoft.OData.ODataException:已达到嵌套展开导航链接中条目的深度限制。嵌套展开条目的数量不能超过 100。

0 投票
0 回答
51 浏览

geospatial - NetTopologySuite:计算地理的长度/面积

我一直在 C# 中使用 DbGeography 来计算 WKT 几何(地理)的长度和面积,如下所示:

如何使用 NetTopologySuite 实现这一目标?我的 WKT 以度数表示纬度/经度。有没有现有的实现?

0 投票
2 回答
189 浏览

c# - NetTopologySuite 说几何无效,但Sql Server 说有效

我有多边形:

在此处输入图像描述

肯定它看起来不正常,但是 Sql Server 2017 说它是有效的。
但是当我试图用 NTE 阅读它时,它说它是无效的。这是简单的代码:

我试图“玩”PrecisionModels 但没有结果。有什么建议吗?

0 投票
0 回答
86 浏览

c# - 如何在 NetTopologySuite 点周围制作一个半径为 N 米的圆形缓冲区?

我必须在某个地理位置周围画一个直径为 N 米的圆圈。

我只能为垂直方向的椭圆生成坐标。

C#

请帮助我了解如何设置半径并制作圆形而不是椭圆。

在此处输入图像描述

0 投票
0 回答
46 浏览

c# - 是否可以通过 GeoJSON4STJ 将 Nettopologysuite 几何序列化为 GeoJSON?

您好我一直在尝试使用 GeoJSON4STJ for Nettopologysuite 将多边形序列化为变量。到目前为止反序列化工作正常,但我无法序列化它。有没有办法做到这一点?

我已根据需要将以下代码添加到启动文件中

我正在尝试使用以下林