问题标签 [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 回答
504 浏览

c# - 带有 NetTopologySuite 的 npgsql 无法写入 3D 点

我正在尝试使用带有 NetTopologySuite 的 npgsql 将 3d 点(和线串)写入数据库表。我正在使用最新版本(4.0.3),显然已经解决了问题#1906。我的代码:

但这不起作用,因为在表格中插入了一个普通的 2D 点。

我正在使用这个版本的包:

  • Npgsql v4.0.3
  • Npgsql.NetTopologySuite v1.0.2
  • NetTopologySuite v1.15.1
  • NetTopologySuite.IO.PostGis v1.15.0
  • GeoApi.Core v1.7.5

配置有问题还是我必须做一些其他事情才能使 3D 点工作?

PS:我找到了一种可行的解决方法,但老实说,这看起来很难看:

0 投票
2 回答
509 浏览

nettopologysuite - 使用 NetTopologySuite 计算事件偏移量?

NetTopologySuite 是否具有必要的工具来计算沿和远离折线在垂直方向偏移的给定距离的点?

这将用于在距离中心线 50 英尺的路线 242 沿线 3.1 英里的地图上放置标志。我发现了 NetTopologySuite.Geometries.Triangle.PerpendicularBisector,但这对我来说没有多大意义(似乎返回了垂直线的公式)。

0 投票
2 回答
1143 浏览

c# - C# NetTopologySuite M 值

我使用 NetTopologySuite 作为 SqlGeometries 的 .net 核心替代品。尽管它具有 M 属性,但似乎它不支持点或坐标中的 M 值。例如这个简单的代码:

输出

M 值似乎被完全拒绝了。这是实现中的错误吗?有没有办法用 M 值创建点/坐标/线串?

0 投票
1 回答
2579 浏览

c# - 快速查找点是否属于多边形(NetTopologySuite.Geometries,C#..net core 2.2)

有没有一种有效的方法可以使用 .net core 2.2 找到类型为 NetTopologySuite.Geometries.PointPolygon 的给定多边形内的 NetTopologySuite.Geometries.Point 类型的点。我尝试遵循以下文档,但没有运气:https ://nettopologysuite.github.io/html/class_net_topology_suite_1_1_algorithm_1_1_locate_1_1_indexed_point_in_area_locator.html#ad28b305b77c52327b7787ca8016c0fd7 。

0 投票
1 回答
496 浏览

asp.net-core - 在 .net core 中设置空间数据

如何在 .net core 2.2 中设置 NetTopologySuite?

我已经在 startup.cs 中有这个

https://docs.microsoft.com/en-us/ef/core/modeling/spatial

在上面的文档中,它建议做这样的事情......我是否也需要将我的连接字符串放在上下文类中?

此代码也不起作用,它无法识别UseNetTopologySuite

我添加了 nuget 包,并添加了一些用法......尽管做了,resharper 甚至找不到它需要的东西

0 投票
1 回答
979 浏览

c# - 有没有办法使用 EntityFrameworkCore 2.2 声明空间索引?

我将Entity Framework Core 2.2NetTopologySuite 1.15.1SQL Server 2016一起使用。拥有一列类型IPoint非常有用,以至于我想在其上创建索引。

我有这张桌子

EF 核心在生成迁移时很好地处理它,从而生成以下代码:

但是,一旦我尝试将迁移应用到数据库,SqlException就会抛出以下消息

SqlException:表 'data.Locations' 中的列 'Coordinates' 的类型对于用作索引或统计信息中的键列无效。

SQL Server确实支持类型列的索引geography

我相信原因可能是 EF Core 试图创建一个常规索引而不是空间索引。

我做错了什么还是不支持?有没有办法告诉 EF Core 它应该创建空间索引?

0 投票
2 回答
6191 浏览

c# - NetTopologySuite 以何种单位返回距离,如何将其转换为英里/公里?

每当我使用 FreeMapTools 计算我和朋友邮政编码之间的距离时,它都会给我以下信息:

  • 300.788 英里
  • 484.072 公里

FreeMapTools 的屏幕截图显示 300.788 英里 FreeMapTools 的屏幕截图显示 484.072 公里

当我使用 NetTopologySuite 时,我得到了5.2174236612815返回的值。

  • 5.2174236612815乘以 60 是313.04541967689
  • 5.2174236612815乘以 100 是521.74236612815

这些值与 FreeMapTools 上显示的距离并不太远,但仍然相距甚远。

我的代码如下:

如何将 NetTopologySuite 返回的值准确转换为英里/距离?这是我不知道的某种形式的 GPS 距离单位吗?

谢谢

0 投票
0 回答
306 浏览

c# - 使用带有空间 Linq 的 Buffer(以米为单位)

我正在尝试将 LINQ 与 SQL server net core 2.2 一起使用,以在将路线表示为地理类型线的线周围获取缓冲区。

Journey 是一个表格,其中包含以地理线 (SRID 4326) 表示的 JourneyAsGeogLine 中的路线详细信息。当我使用如下代码时,它似乎将 bufferWidth 解释为度数:我知道 EF 在客户端上运行时会忽略 SRID,因此不会将 bufferwidth 视为米。如何解决此问题并使用 LINQ 在地理线 (SRID:4326) 周围创建以米为单位的缓冲区?

0 投票
1 回答
67 浏览

sql-server - 简化的 GeoJSON 报告谷歌地图上的幻想标记

我在数据库中有一个地理列。此列包含原始多边形。在它旁边,我有另一列包含此多边形的简化版本。使用Douglas-Peucker 算法运行的geography.Reduce()我使用 100 的容差)函数进行了简化。当客户要求这个区域时,我从数据库中获取它并快速转换为 GeoJSON 并将其提供给我的客户。

如果我查询原始多边形,它需要 20 秒才能成功检索,但它可以工作。最后唯一的问题是速度,这就是为什么我介绍了第二列包含简化多边形的原因。从数据库中获取这个多边形是在瞬间发生的,但在客户端发生了一件奇怪的事情。

在此处输入图像描述

如您所见,我的地图上显示了多个标记。没有一个是可点击的,除了最上面的(墨尔本稍微西南边),但这个实际上是我添加的一个标记。其他的从哪里来?

我注意到的另一件事是,我越是降低简单性,这些幻想标记显示的就越少。因此,如果我将原始多边形作为 GeoJSON 提供,一切都很好。一旦我开始简化,我就会得到这些幻想标记。

当我查询这个简化的多边形时,我使用geography::STAsText()函数。之后,我使用 NetTopologySuite 将其读取为 WKT 并创建一个 NetSuiteTopology Geometry 对象。有了这个对象,我创建了一个 Feature 并使用 GeoJsonWriter 来创建实际的 GeoJSON。

0 投票
0 回答
112 浏览

c# - 查询中带有 EF Core 网络拓扑套件的 SQL Server 未返回正确结果

我有一个谷歌地图,我从中获取边界,并将其发送到服务器以获取标记列表。

这是一组传递的参数示例:

为了进行健全性检查,我把它们放在这里,盒子就是我所期望的:

http://bboxfinder.com/#47.223167,-157.856728,60.111311,-74.228798

以下是我在查询中使用它们的方式:

这不会返回任何结果(尽管应该显示多个位置),但是如果我放大缩小它会返回,这没有任何意义。如果我将盒子稍微平移一下,它们也会重新出现。

当标记在地图上时,它们位于正确的位置。

这几乎就像 SQL Server 的多边形在中心向上移动 - 当我向下移动边界框时,我可以看到它们仍然在结果中返回。