我正在使用新的 Entity-Framework 5,使用 Spatial 数据类型 DbGeography 作为我的模型的一部分,用于在一个实例中存储 POINT,在另一个实例中存储 POLYGON。
当设置我的 POLYGON 的值时,所有保存都没有错误,但是只有当我按顺时针顺序在地图上绘制多边形时才会出现这种情况。如果我以逆时针方向绘制 POLGON,我会在 sql 级别收到错误,指示数据是无效的地理类型。
现在,在对这个问题进行了自己的研究之后,它似乎源于地理数据类型在多边形环方向方面非常严格。最常见的解决方案似乎是将多边形创建为几何图形,然后将其转换为地理类型。
我正在寻找 C# 中的解决方案,可以在数据发送到 sql 之前将其应用于数据。基本上可以自动更正坐标数组的环方向。
我尝试捕获错误,然后通过反转数组来重建字符串。这在某些情况下有效,但首先它不可靠,其次捕获错误会对性能造成很大影响。
谢谢克里斯