MySQLには多くの空間クエリが実装されていません - 私は含まれているかどうかはわかりませんが、それと他の関数を近似する方法があります。たとえば、指定された矩形内の座標を使用してすべての結果を引っ張り、距離を計算することによって、点間の距離を計算できます。here.contains
問題の近似に長方形を使用することもできます。まず、あなたの選択のためのより一般的なWKTの構文は:select * from table_name where contains(the_polygon, GeomFromText('POINT(12.3 45.6)');
は私がcontains
ためのオープン仕様が実装されていないと思いますが、MySQLの機能は、あなたのポイントがポリゴン内にあるかどうかを近似するminimum bounding rectangleを使用してのためにそこにあります:
select * from table_name where MBRContains(the_polygon, GeomFromText('POINT(12.3 45.6)');
座標セットの外側の境界を計算することは容易であるので、私は、MySQL上で、一般的に長方形の多くを使用して終了しました。全体的なPostGISははるかに優れていますが、必要があればいくつかのクロスデータベースを行うことができます。
更新:この質問の後に、nice summaryがopengeo.orgに投稿されました。それが明らかでないか、MySQLがMBRを使用することが多いとさえ言われています。また、PostGISがどのように動作するのか、なぜ2dフィーチャーの実装者が一般的に短い行を持つのかを理解したい場合は、ネイティブpostgresタイプpoint, lseg, box, path, polygon,
とcircle
を見てください。
ありがとうございます、これは完全に機能しています。あなたの助けと知恵をありがとう! – Petrogad