我将多边形存储在SQL Server 2008数据库中,我知道半球限制。
http://blogs.msdn.com/b/isaac/archive/2009/02/06/the-geography-hemisphere-limitation.aspx
在插入/编辑多边形之前是否有办法检查它是否超出了半球限制?
使用它的应用程序是用JavaScript和C#编写的,因此检查可以使用这些语言或sql。
答案 0 :(得分:2)
您链接的文章给出了一个答案:使用EnvelopeAngle
计算几何对象所对应的角度的一半。如果结果为> = 90,则对象跨越半球。
另一种方法是在错误发生后处理错误(通过捕获异常,或者生成错误),而不是事先检查特定对象是否可能导致错误。
答案 1 :(得分:1)
怎么样
try
{
Microsoft.SqlServer.Types.SqlGeography.Parse(YourPolygon);
// everything is ok...
}
catch (Microsoft.SqlServer.Types.GLArgumentException _E)
{
// Polygon not ok
}
编辑: 上面的代码与您发布的链接中使用的代码相同(仔细查看它们显示的异常) - 当多边形被解析为SqlGeography类型时会发生检查。
编辑2: 添加了正确的异常类型。