NetTopologySuite 6 和 8 创建的几何图形之间的差异

问题描述 投票:0回答:1

我有一个 EF Core

DbContext
,它曾经将 EF Core 6 与 NetTopologySuite 结合使用。 我使用它来编辑由我无法控制的不同 C# .NET 应用程序使用的数据库。 当我插入该版本的几何图形时,它们与该应用程序兼容。

现在我已将 EF Core 更新到版本 8(以及 NetTopologySuite),但现在我的代码创建的几何图形有些不同,但我在 NetTopologySuite 中找不到任何更改的文档。

这就是 SSMS 中的差异:

“旧”-几何二进制:

0x00000000010D00000000806DD4C000000000605D14410000000000308140

“旧”-几何WKT:
POINT (-20918 333656)

“新”-几何二进制:

0x00000000010F00000000806DD4C000000000605D14410000000000308140000000000000F8FF

“新”-几何WKT:
POINT (-20918 333656)

这 2 个几何图形代表相同的 WKT,但不知何故具有完全不同的二进制。

我的目标是用我的代码创建“旧式”二进制文件,但我不知道要更改什么。

c# entity-framework-core nettopologysuite
1个回答
0
投票

我现在发现了差异:“新”二进制文件末尾有一个 M 值。

解决方案是给我的

NetTopologySuite.NtsGeometryServices.Instance
一个
DotSpatialAffineCoordinateSequenceFactory
,并以
Ordinates.XYZ
作为参数。

然后没有 M 值被写入二进制表示中,另一个程序就满意了。

© www.soinside.com 2019 - 2024. All rights reserved.