2011-07-19 11 views
2

SQL Server 2008データベースにポリゴンを格納していますが、半球の制限を認識しています。SQL Serverの半球の制限を超えるポリゴンのチェック方法

http://blogs.msdn.com/b/isaac/archive/2009/02/06/the-geography-hemisphere-limitation.aspx

それは半球の制限を超えていないポリゴンを編集/挿入する前にチェックする方法はありますか?

このアプリケーションはJavaScriptとC#で書かれているため、チェックはこれらの言語またはSQLのいずれかになります。

答えて

2

あなたがリンクしている記事には、答えが1つあります:EnvelopeAngleを使用して、幾何学的オブジェクトの角度の半分を計算します。結果が> 90の場合、オブジェクトは半球にまたがります。

もう1つのアプローチは、特定のオブジェクトが事前にエラーを引き起こす可能性があるかどうかをチェックするのではなく、エラーが発生した後にエラーを処理することです(例外をキャッチするか、エラーが生成されます)。 - ポリゴンがSqlGeography型に解析されたときにチェックが起こる 上記のコードは、あなたが投稿したリンクで使用したのと同じである(彼らが示す例外をよく見る):

1

何EDIT

try 
{ 
    Microsoft.SqlServer.Types.SqlGeography.Parse(YourPolygon); 
    // everything is ok... 
} 
catch (Microsoft.SqlServer.Types.GLArgumentException _E) 
{ 
    // Polygon not ok 
} 

について。

EDIT 2: 正しい例外タイプが追加されました。

関連する問題