我正在將多邊形存儲在SQL Server 2008數據庫中,並且我知道半球限制。如何檢查多邊形是否超過SQL Server中的半球限制
http://blogs.msdn.com/b/isaac/archive/2009/02/06/the-geography-hemisphere-limitation.aspx
有沒有辦法插入/編輯,它不超過半球限制多邊形前檢查?
此應用程序使用的是用JavaScript和C#編寫的,因此可以使用這些語言或sql中的任何一種。
我正在將多邊形存儲在SQL Server 2008數據庫中,並且我知道半球限制。如何檢查多邊形是否超過SQL Server中的半球限制
http://blogs.msdn.com/b/isaac/archive/2009/02/06/the-geography-hemisphere-limitation.aspx
有沒有辦法插入/編輯,它不超過半球限制多邊形前檢查?
此應用程序使用的是用JavaScript和C#編寫的,因此可以使用這些語言或sql中的任何一種。
您鏈接到的文章給出了一個答案:使用EnvelopeAngle
來計算幾何對象所對着的角度的一半。如果結果是> = 90,則該對象橫跨半球。
另一種方法是在發生錯誤後(通過捕獲異常,或者生成錯誤)處理錯誤,而不是檢查特定對象是否可能導致錯誤。
怎麼樣
try
{
Microsoft.SqlServer.Types.SqlGeography.Parse(YourPolygon);
// everything is ok...
}
catch (Microsoft.SqlServer.Types.GLArgumentException _E)
{
// Polygon not ok
}
編輯: 上面的代碼是在你發佈的鏈接所使用的相同(在異常密切關注他們展示) - 當多邊形被解析爲SqlGeography類型的檢查情況。
編輯2: 添加了正確的異常類型。