私は、各エントリが緯度/経度座標を持つドットとしてマークされているリレーショナルデータベースを持っています。私はユーザーにマップ上の任意のポリゴンをマークする機能を与え、多角形の中にあるすべてのエントリを返すようにしたい。任意の多角形領域の座標値データのデータベースを検索する
これを達成するにはどうすればよいでしょうか?
また、小さなエラーは問題ありません(つまり、ポリゴンを矩形のセットに変える効果的な方法がある場合は問題ありません)。
私は、各エントリが緯度/経度座標を持つドットとしてマークされているリレーショナルデータベースを持っています。私はユーザーにマップ上の任意のポリゴンをマークする機能を与え、多角形の中にあるすべてのエントリを返すようにしたい。任意の多角形領域の座標値データのデータベースを検索する
これを達成するにはどうすればよいでしょうか?
また、小さなエラーは問題ありません(つまり、ポリゴンを矩形のセットに変える効果的な方法がある場合は問題ありません)。
利用空間の拡張機能であることを意味し、多角形の外であることを意味し、ほとんどのデータベースはこれを持っています。 MySqlでは、トランザクションではないMyISAMテーブルでのみ使用できます。
http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html
組み込みのサポートを使用していますか?それは不正行為をしなければならない! +1 – dmckee
一つの方法は、迅速に考慮すべきポイントの数を削減することがポリゴンの境界長方形(のすなわちちょうど分-X、最小Y、最大-X、MAX-Yを計算することですポリゴン内の点)を選択し、境界矩形内の点を選択します(つまり、xはmin-xとmax-xの間、yと同じです)。
もちろん、これらの点のすべてが必然的にポリゴンの内側にあるわけではありませんが、コードでそれを磨くことができます。
BTW--これはなぜコミュニティWikiですか?細かい技術的質問のように、よく定義された技術的な答えがあります。 – dmckee
私はそれに害を見ることはありません、私は最悪の場合それがそのまま残るだろうと思う。 –