问题标签 [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.
c# - 将 GeoJson 功能映射到属性
我正在尝试将 GeoJSON FeatureCollection 中的 Multipolygon 映射到 Multipolygon 的 NetTopologySuite 类型的属性。
这就是我得到的:
地理JSON:
我的模型:
我尝试使用 NetTopologySuite 和 GeoJSON.Net 库进行 GeoJSON 转换和映射,但我没有走多远。我在控制器中接收 GeoJSON 作为字符串:
有任何想法吗?
谢谢!
c# - 使用 NetTopologySuite 保存几何时的 Entity Framework Core IndexOutOfRangeException
DbUpdateException
当我调用SaveChanges
从 shapefile 加载的一些几何图形时,我得到了一个。我得到的错误是:
IndexOutOfRangeException:索引超出了数组的范围。
这是一些保存两个 WKT 多边形的示例代码:第一个很好,但第二个会产生错误:
https://gist.github.com/capesean/57527a0576d5972ff1514438440397fa
(WKT代码太长,这里不贴)
WKT 似乎有效:http ://dev.openlayers.org/examples/vector-formats.html
我可以将它直接加载到 SQL Server 中:
entity-framework-core - EF Core 2.2.6 查询在尝试使用 NetTopologySuite 时不起作用
我正在尝试将 NetTopologySuite 与 EF Core 2.2.6 一起使用来执行地理搜索。
我已成功Point
向我的模型添加了位置,EF Core可以读取和写入此属性。
但是,当我尝试将此谓词添加到我的查询中时,我发现了两个问题:
- 执行
NullReferenceException
查询时抛出异常。
- 如果我在 SQL Profiler 中查看已执行的 SQL,则不会添加任何 WHERE 子句。
我已经检查过的事情:
- 我有
UseNetTopologySuite()
我的OnConfiguring
覆盖。 - 我使用
NetTopologySuite.Core
的是 1.15.3 版本,这是 EF Core 2.2.6 的合适版本。
c# - 如何在 C# 中将 KML 转换为 WKT?
我可以使用 nettopologysuite 轻松地将 WKT 转换为 KML,例如:
但我找不到任何关于如何反其道而行之的文档或想法。我想我需要一个来自 nettopologysuite IO KML 的 KMLReader 对象,但只有一个作家。有没有办法做到这一点,我没有看到?
c# - 使用 EF Core 2.2、Npgsql 和 NetTopologySuite 映射几何图形
我正在尝试映射此类:
但是当我尝试添加一个新的迁移时,我遇到了这个错误:
无法映射属性“Geometry.UserData”,因为它属于“对象”类型,不是受支持的原始类型或有效的实体类型...
做一些研究(https://www.npgsql.org/efcore/mapping/nts.html)我发现我需要使用:
services.AddDbContext<DataContext>(x => x.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"), o => o.UseNetTopologySuite()));
代替
services.AddDbContext<DataContext>(x => x.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
但添加o => o.UseNetTopologySuite()
我有错误:
“NpgsqlDbContextOptionsBuilder”不包含“UseNetTopologySuite”的定义
我认为这与版本问题有关,但我使用的版本与 github(https://github.com/npgsql/efcore.pg/issues/1024)上的这个问题中的建议完全相同。
NuGet:
c# - NetTopologySuite.Core 1.15.3 和距离单位
我想将距离的笛卡尔坐标“转换”为米。
我添加了
我尝试使用以下代码:
我的分机在哪里:
ProjNet4GeoAPI
添加了 nuget 包 (v 1.4.1)
但我无法解决GeometryTransform
类,它没有找到。
如何解决?
c# - 带有 NetTopologySuite.Geometries.Point 的 Entity Framework Core 3.1:SqlException:提供的值不是数据类型地理的有效实例
我有一个看起来像这样的模型:
添加点的测试代码:
我正在使用以下 NuGet,版本3.1.0
我在保存时遇到的异常如下:
SqlException:传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。参数 7 ("@p6"):提供的值不是数据类型 geography 的有效实例。检查源数据中的无效值。无效值的一个示例是小数位数大于精度的数值类型数据。
根据所有文档,经度应该是 X,纬度应该是 Y,所以我认为这不是问题。我试图颠倒坐标以防万一,但我遇到了与您在我尝试过的示例中看到的相同的错误。
https://docs.microsoft.com/en-us/ef/core/modeling/spatial
纬度 = Y 经度 = X
https://gis.stackexchange.com/a/68856/71364
我找不到任何明显的错误。设置了 Optionsbuilder,该表是使用与Entity Framework 6geography
非常配合的数据类型创建的。DbGeography
Point
我在 SQL Server 的文档中可以看到,没有任何特定情况需要处理。
https://docs.microsoft.com/en-us/ef/core/modeling/spatial#sql-server
我保存的坐标来自谷歌地图,因此EPSG 3857
被使用。
我错过了什么?
c# - 如何使用 Net Topology Suite 在 Entity Framework Core 中将点(地理)缓冲 1 米
我按照此处的建议将 Entity Framework Core (3.1.0) 与 Net Topology Suite 包一起使用,并且我很难缓冲一个点以在其周围创建一个圆形多边形。如果我传递一个1
to的值Buffer()
,我相信这意味着 1 米,我最终会得到一个半径接近 120 英里的圆。
我应该用什么值来表示 1 米?我正在使用GeometryFactory
SRID 为 4326 的 a 创建点和多边形。这是我正在使用的大致代码:
c# - NetTopologySuite ShapeDataReader 错误:不支持的 DBF 读取器类型 13
我正在尝试读取从geojson.io创建的 .shp进行一些测试,它给了我一个包含以下文件的 .zip。
当我尝试单独读取 .shp 时,出现错误:“System.IO.FileNotFoundException: '.../POLYGON.dbf'”。
当我尝试使用同一文件夹中的 .dbf 读取 .shp 时,出现错误:“System.NotSupportedException: 'Unsupported DBF reader Type 13'”。
我试图在 QGIS 中打开这个 .shp 并且它有效。
我尝试使用我的代码从其他来源读取其他 .shp 文件并且它有效。
代码:
c# - 使用 NetTopologySuite 计算点(纬度,经度)之间的距离
我关注了这篇文章https://docs.microsoft.com/en-us/ef/core/modeling/spatial但没有工作。
此代码返回距离 = 17062 米
从网站距离计算器我得到距离 = 17.02 公里
对于文章中的示例,距离大致相同。
但是如果我选择这个坐标:
此代码返回距离 = 1926891 米
从网站,距离 = 1,728 公里
相差约200米。我在其他位置进行了测试,结果更糟
文章中有评论://不同的数据需要不同的坐标系。
这是什么意思?我应该使用 2855 以外的其他坐标系吗?哪一个?