问题标签 [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 投票
2 回答
473 浏览

c# - 通过 EF Core 和 NetTopologySuite 使用半径按区域搜索

我正在构建一个应用程序,我需要能够根据他们的“交付区域”搜索企业

例如,London Business提供距离纬度/经度高达 10000 米的 Southampton Business服务 提供距离纬度/经度 1000 米的服务

我是其中的一部分,使用 EF Core 和 NetTopologySuite。

我正在使用以下简化代码:

这将返回以下结果:

所以,我认为我的问题在于距离的某个地方,我显然误解了距离是/相关的。他们是相对正确的 - 伦敦商业距离远小于南安普敦商业

有没有按米查询的方法?

0 投票
0 回答
82 浏览

.net-5 - 升级到 EF Core 5.0 后出现 InvalidCastException

我刚刚将我的项目从 .NET Core 3.1 升级到 .NET 5.0 并将所有包更新到最新版本。一切都很好,但现在我在加载一些实体时遇到了问题,出现了这个错误:

我不确定,但我有几个实体具有 Address 属性,这是一种[Owned]具有NetTopologySuite.Geometries.Point属性的类型,我怀疑这可能是罪魁祸首。

很抱歉,这个问题如此含糊,但我很困惑这里出了什么问题,或者如何进一步诊断它,如果有人有任何想法或指示,我将非常感激听到他们的声音!

编辑:这绝对是 NetTopologySuite 的问题。此处的准系统项目演示了错误

0 投票
1 回答
709 浏览

.net - 获取多个多边形的总边界框(使用 C# NetCore NetTopologySuite)

我对处理多边形数据(在 C# 中使用NetTopologySuite)有点陌生,并且想要获得几个多边形的边界框,具体取决于每个多边形的边界框是否与另一个多边形重叠(多边形聚类)。

在这个演示中,我有 3 个多边形,它们的边界框与其他多边形重叠,并且希望将红色边界框作为最终结果。

拳击

基本上我已经被困住了多边形的边界框。我试过Geometry.Boundary了,但这只是把外圈还回来了......

最后我可以遍历坐标,但我想知道GeometryorPolygon类是否具有此功能(或者库是否具有此功能)。

0 投票
1 回答
356 浏览

c# - IsWithinDistance 无法翻译

我正在尝试返回给定位置 50 英里范围内的项目列表。

我的表(简化)如下:

  • ID
  • 经度
  • 纬度
  • 地位
  • 积极的

我有一个初始查询:

但是 - 它似乎不起作用并且出现如下错误 - 任何想法如何解决这个问题?或者是否有更好的方法来获取最近的物品?

.Where(p => new Point(p.Longitude, p.Latitude) .IsWithinDistance(geom: __p_3,
distance: ___maxDistance_4))' 无法翻译。

以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101038

启动.cs:

0 投票
0 回答
66 浏览

.net-core - 两个任意 WGS84 几何之间的距离

我有一个 .NET Core 3.1(即将成为 .NET 5)应用程序,我在其中使用 NetTopologySuite 处理空间数据。手头的任务是找到一对任意 NTS 几何之间的距离(比如说一个 Point 和 MultiLineString)。两者都在 WGS84 中。我需要这个距离以米为单位,而不是度数。有可能吗?请注意,解决方案必须非常通用,例如,因为我不能保证两个几何图形都位于同一个 UTM 区域内。

PS。我知道 WebMercator & World Mercator 投影。问题是,当我将地理坐标重新投影到这些位置并计算距离时,误差很大。

PSS。过去,我使用 MS SQL Server 的 DLL 中的 SqlGeography 类型来执行计算。不幸的是,它们 [还没有?] 可用于 .NET Core (.NET 5)。

0 投票
1 回答
353 浏览

c# - NetTopologySuite 反转多边形以使其逆时针方向

我添加了一项检查以确定多边形坐标的顺序是否错误,如果条件得到验证,我想修复它,但我知道 Reverse() 函数已被弃用:

我应该使用什么?

我没有在 NetTopologySuite 上找到任何相关文档,并且该方法仍在他们的文档中: https ://nettopologysuite.github.io/NetTopologySuite/api/NetTopologySuite.Geometry.Geometry.html#NetTopologySuite_Geometries_Geometry_Reverse

0 投票
2 回答
66 浏览

geospatial - Lucene .net 中的多面体支持

我正在尝试学习 lucene .net 空间功能。

我想找出一个点是否存在于多面体中。

从我对谷歌的研究中,我了解到我需要使用网络拓扑套件来描述多多边形。

但我找不到最新版本的 Lucene.Net.Contrib.Spatial.NTS。

任何建议(我正在使用.net core)

0 投票
1 回答
60 浏览

c# - 如何存储/查询坐标以计算米之间的距离?

我像这样在我的数据库中存储坐标

然后我需要在数据库中查询某个坐标一定距离内的任何点,所以我传入这样的表达式

然而,返回的距离只是使用正常的毕达哥拉斯计算,给我一个度数而不是米或英里的结果。

我可以使用 hasrsine 公式手动计算以米为单位的距离,但是将其传递给我的表达式会导致 linq 错误:

无法翻译 LINQ 表达式。要么以可翻译的形式重写查询,要么切换到 ..

如何存储/查询这些数据,以便我可以将过滤器传递给 ef core 并取回给定距离内的结果列表?

0 投票
1 回答
129 浏览

c# - NetTopologySuite.Geometries.MultiPoint 需要有一个 0 args 的构造函数

我正在尝试使用Automapper 映射NetTopologySuite.Geometries.MultiPoint但我不断收到错误消息System.ArgumentException: NetTopologySuite.Geometries.MultiPoint needs to have a constructor with 0 args or only optional args

实际上,这种类型没有带 0 个参数的构造函数。我试过指定如何实例化类型:

同样的错误。为了用更简单的代码重现,我创建了一个没有 0 args 构造函数的类。

这是一个错误还是我错过了什么?

0 投票
1 回答
34 浏览

c# - NetTopologySuite.Algorithm.SimplePointInRing() 在哪里?

我们正在将一个项目从 .NET 4.5.2 迁移到 .NET 5.0。在此过程中,这意味着将对 NetTopologySuite NuGet 包的依赖从 v1.14.0 移动到 v2.2.0。

在 v1.14.0 中,我们在很多地方使用了 NetTopologySuite.Algorithm.SimplePointInRing 类。

在 v2.2.0 中,NetTopologySuite.Algorithm 中没有 SimplePointInRing 类。或者至少,不在我们安装的任何 NuGet 包中:

  • NetTopologySuite v2.2.0
  • NetToplogySuite.Core v1.15.3
  • NetTopologySuite.IO.GeoJson v2.0.4

它已被弃用吗?删除?移动到新的 NuGet 包?