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

c# - 使用 NetTopologySuite 的 GeoJson IO 库对往返进行序列化/反序列化揭示了一个潜在的错误

我在使用 NetTopologySuite 的 GeoJsonReader 反序列化 Feature 对象时遇到问题。特别是,我收到以下异常(乍一看似乎很简单,所以请继续阅读):

Newtonsoft.Json.dll 中出现“System.ArgumentException”类型的未处理异常。附加信息:未找到预期的令牌“{”。

只是做一个简单的往返会导致这个异常:

在这种情况下,geoJson 非常简单:

"{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-104.50348159865847,40.891762392617345],[- 104.50348672999991,40.891415817000279],[-104.50355999200002,40.887782408000135],[-104.5036332529998,40.884149000000093],[-104.50845260799991,40.884357883000121],[-104.51307160051412,40.884558081989375],[-104.51307160051412,40.891762392617345],[-104.50348159865847,40.891762392617345]]]}, \"属性\":null}"

请让我知道我做错了什么。顺便说一句,我正在使用 NetTopologySuite 1.14、NetTopologySuite.IO.GeoJSON 1.14 和 Json.Net 9.0.1。

0 投票
1 回答
1305 浏览

c# - 矩形和多边形相交的区域 NTS TopologySuite

我对NetTopologySuite.Geometries.Polygon固定边界框矩形(105x68)内的动态区域感兴趣。

它有时可以打破矩形(这很好),但我只对边界框覆盖的区域感兴趣。

所以基本上我想得到结果:

如何使用 C# 中的 NTS Topology Suite 实现这一点?

插图

0 投票
0 回答
320 浏览

c# - 读取 shapefile 编码

我必须阅读 shapefile 并获取所有属性值。我使用(NetTopologySuite):

我遇到了字符“é”、“è”、“à”等的编码问题......我得到了这个 unicode 符号:�如果我更改编码,这个符号 (�) 变成了“?”。

我找不到任何更改阅读器编码的解决方案。

有人建议帮助我吗?

谢谢

0 投票
1 回答
670 浏览

xamarin - NetTopologySuite 将坐标转换为另一个坐标系

我正在尝试使用 NetTopologySuite 将我的坐标转换为不同的坐标系。但我无法让它工作。我最初的转换是从 WGS84 转到 Lambert72。

我在 stackoverflow 的某个地方找到了这个示例,但我无法让它工作:

这段代码最大的问题是它使用 ProjNET4GeoAPI,这与 Xamarin 核心项目不兼容

0 投票
1 回答
1627 浏览

c# - 如何将多边形与 nettopologysuite 合并?

我必须合并一组多边形来创建一个新的多边形。
有时会发生我在多边形之间有小洞,所以当我尝试合并它们时,我会收到一个错误。
我怎样才能检测到这个并解决?

更新一些错误示例

或者

或者

0 投票
1 回答
3877 浏览

c# - NettopologySuite 和 Dotspatial WKTReader

所以我有一堆 WKT 代表一个多边形。我专门使用 DotSpatial 来操纵几何图形。具体来说,我正在尝试从我的 WKT 中获取 DotSpatial.Topology.IGeometry。

不幸的是,DotSpatial 家伙最近将很多东西移到了 NetTopologySuit 中,这就是他们的 WKTreader 所在的地方。

但是读者会传回一个 GeoAPI.Geometries.IGeometry,您不能只将其转换为 DotSpatial.Topology.IGeometry,因为它们不是同一个类。实际上,我不得不在三个不同的 API(DotSpatial、GeoAPI 和 NetTopologySuite)之间转换本质上相同的类,这让我有点恼火,这些 API 都具有类似的名称相似的类。

我想做的就是从众所周知的文本中提取 DotSpatial.Topology.IGeometry 。具体来说,它是我正在使用的 MultiPolygon,但无论如何。

我真的不想有一些很棒的条件或选择语句来弄清楚如何处理 GeoAPI IGeometry 类,以便我可以使用它。我已经有一个大型转换器类,用于将各种几何类转换为 dotSpatial,我宁愿完全摆脱它。更少的代码是更好的代码。

任何人都可以协助将 GeoAPI.Geometries.IGeometry 转换为 DotSpatial.Geometries.IGeometry 吗?我不能只转换它,因为我收到以下错误:无法将类型为“NetTopologySuite.Geometries.MultiPolygon”的对象转换为类型“DotSpatial.Topology.IGeometry”。

有任何想法吗?

在此先感谢,

0 投票
3 回答
2134 浏览

c# - dotnet core 数据库首先使用 NetTopologySuite

我最近升级到了EntityFrameworkCore.PostgreSQL的最新版本,但空间数据似乎不起作用,因为他们现在使用NetTopologySuite看到这里

要设置 NetTopologySuite 插件,请将 Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite nuget 添加到您的项目中。然后,对您的 UseNpgsql() 行进行以下修改:

我使用dotnet ef dbcontext scaffold命令

但是,该scaffold命令似乎没有使用NetTopologySuite映射。我仍然收到以下错误

如何使用NetTopologySuite 搭建我的数据库

0 投票
1 回答
437 浏览

c# - 无法在 NetTopologySuite 中获得点的闭合三角剖分

我正在使用NetTopologySuite 1.14 版并使用它来计算一组点的三角剖分。进一步来说:

我想要 3D 空间中一组点的3D Delaunay 三角剖分,该点也是封闭的(最终的网格必须是封闭的:一个船体)。

我的尝试

按照我链接的 API,我编写了这个简单的程序:

返回:

开放式网格

这是正确的,但它只生成了 4 个面(三角形)。我期待 6 个三角形(应该通过添加 2 个三角形来包括金字塔的底部)。我基本上得到了一个开放的网格。我期待这两个额外的三角形:

生成三角剖分时如何获得闭合网格?

0 投票
1 回答
1431 浏览

.net-core - NetTopologySuite 将多多边形压缩为多边形

我在 aspnetcore 工作,使用最新的 GeoAPI 和 NetTopologySuite 版本作为核心。我正在尝试做的事情应该相当简单,但我似乎无法通过谷歌搜索找到正确的方法。或者说实话,这让谷歌搜索变得更加困难。

希望有人能把我踢向正确的方向。

我有一个多面体,它可能由一个或多个多边形组成。我想围绕该多面体的点创建一个缓冲区,直到 X 距离。这基本上是具有同心兴趣区域的地图叠加层。给定的兴趣点可能落在原始多多边形的形状中……或者它可能落在第一个或第二个缓冲区中。有点像洋葱,如果洋葱的核心有随机的形状。

第一部分很简单。只需迭代多边形的点并使用 buffer 方法将缓冲区应用于每个点:

没关系。但它给了我另一个由数千个点组成的多面体。当我将它用作地图叠加层时,我会在原始形状的模糊轮廓之后得到一个圆圈的飓风,有点像螺旋图绘图。我想要的基本上是所有缓冲区圆的外边界,没有中心的所有点。

我尝试在多面体上做一个 ConvexHull ,起初它看起来是正确的,直到我意识到它正在削减外部的角度,以便获得所有这些点适合的最小多边形(这毕竟是凸包所做的)。但这会导致我覆盖的内容出现问题。一些兴趣点可能在实际缓冲区之外,但如果凸包决定修整该区域的颠簸区域,则在内部。(我希望这是有道理的)。

基本上,我要做的是将由所有这些缓冲点组成的多多边形并将其压缩成一个由缓冲区的所有最外边界组成的单个多边形。但是中间没有所有的螺旋计垃圾。我真的不想要一个 ConvexHull。我也尝试过 Union 和 GeometryCombiner 类,但这些都不是我想要的。

我不知道这是否有助于使泥浆更清晰,但是 QGIS 中有一个设置,当你向下打两个圆圈并且圆圈会重叠时,它们会像肥皂泡一样组合成一个大斑点,并且它们之间的边界消失了。这就是我试图通过代码做的事情。

那有意义吗?任何人都可以帮忙吗?

0 投票
2 回答
1427 浏览

c# - 使用 Dapper 调用带有地理参数的 PostgreSQL 函数时出现 NotSupportedException

我正在使用 Dapper(使用npgsql带有插件的数据提供程序NetTopologySuite)调用带有geography参数的 PostgreSQL 函数,然后收到NotSupportedException

但是当我使用NpgsqlCommand通过AddWithValue方法指定的类型时它工作正常。

我怎样才能使 Dapper 映射NetTopologySuite.Geometries.Pointgeography