2016-06-30 9 views
0

データベースにポリゴンの頂点を保持するテーブルがあります。このテーブルは、IdPolygon(int)、緯度(実数)、経度(実数)。ポイントが2Dポリゴンの内側にあるかどうかを検出するためのベストプラクティス(ポリゴンの頂点がテーブル上にある)

ポイントが登録されているポリゴンの中にあるかどうかを確認するには、緯度と経度の範囲で 'IdPolygon'を探しています。次に、このポリゴンのリストをループして、そのうちの 。

ポイントが銀行に登録されているいずれかのポリゴンの内側にあるかどうかを確認するために、パフォーマンスが向上するベストプラクティスは何ですか?

+0

検索アルゴリズムを調べて、ニーズに合ったアルゴリズムを見つけることができます。 –

+0

実際、頂点のリストは十分な情報ではありません。あなたは彼らが互いにどのような順序でつながっているかを知る必要があります。それ以外の場合、たとえば、五角形から正五角形を伝えることはできません(同じ頂点のセットから構築することは可能です)。頂点のシーケンスがある場合は、巻線番号アルゴリズムを使用して、ポイントがポリゴン内にあるかどうかを判断できます。 –

+0

ありがとう@JuanTomas。頂点はあなたのヒントの後に並べられます。 – Alvimar

答えて

0

空間型のサポートを使用することをお勧めします。ジオメトリ、ジオスペース。それは、サポートインデックスと空間クエリを持っています。詳細はこちらhttps://msdn.microsoft.com/en-us/library/bb933991.aspx

+0

ありがとうございます。データタイプと初期戦略を変更します。 – Alvimar

関連する問題