小编jmc*_*twm的帖子

C#SQLGeography:诊断无效的几何

我们在MapInfo表中存储了大量的地理位置,我们现在希望将它们存储在SQL Server中.我们编写了C#实用程序来从MapInfo文件中读取地理位置并将它们导入SQL服务器.在大多数情况下,这是运作良好.然而,在使用我们内部开发的工具进行许多清理过程之后,我们仍然留下了大量被认为无效的地理位置SqlGeography.STIsValid().

对于大多数或所有这些情况,.NET方法SqlGeography.MakeValid()都能够创建有效的地理实例.但是,关于这方面的文档非常糟糕,我们不满足于简单地接受修改MakeValid而不理解地理被视为无效的原因以及MakeValid纠正它们的原因.

通过调用IsValidDetailed,我们得到一个没有详细记录的神秘错误消息.对于许多情况,返回的字符串IsValidDetailed看起来像这样:

24404:无效,因为多边形环(1)与自身或其他环相交.问题出现在几何集合的条目(19)中

我们尝试导入的所有地理对象都是多边形.通过解析此错误消息,我们尝试识别这些多边形中的问题多边形和环.但是,我们发现索引似乎与实际有问题的多边形/环实际不匹配.在许多情况下,索引超出了输入几何的数组范围.

有没有更好的方法来确定几何/地理对象被视为无效的具体原因,并确定哪些多边形,环或点有问题?

c# sql geometry geography

5
推荐指数
1
解决办法
1257
查看次数

标签 统计

c# ×1

geography ×1

geometry ×1

sql ×1