mySQLの空間関数に問題があります。私の目標は、LINESTRINGオブジェクトがPOLYGONオブジェクトを通過しているかどうかを調べることです。私が2つのLINESTRINGオブジェクトを試して、交差するかどうかを判断しようとしていることを確認します。私はそれが境界の比較やSTHの問題があるが、そこにある道(または関数、または単純なことを理解しMySQLの線ストリングと線ストリングまたはポリゴンの交差
SELECT crosses(GeomFromText(@ls), GeomFromText(@lx)); -- crossing linestrings
returns 0;
SELECT intersects(GeomFromText(@ls), GeomFromText(@lp)); -- parallel linestrings
returns 1;
SELECT overlaps(GeomFromText(@ls), GeomFromText(@lp)); -- parallel linestrings
returns 1;
:
SET @ls='LINESTRING (0 0, 1 1, 2 2, 3 3)'; -- original linestring
SET @lp='LINESTRING (0 1, 1 2, 2 3, 3 4)'; -- parallel linestring
SET @lx='LINESTRING (0 3, 1 2, 2 1, 3 0)'; -- crossed linestring
は、私は私の目標を達成するためにいくつかの機能を試してみましたソリューション)私の目標に到達する方法?他の可能性は、LINESTRINGのPOINTがPOLYGONの範囲内にあるかどうかをチェックすることですが、これを行う別の方法があるかどうか疑問に思っていましたか? 5.6.1で'Functions That Test Spatial Relationships Between Geometries'用のMySQLのドキュメントから
MySQL Great Circle intersection (do two roads cross?)に提供される解決策は、残念ながら私を助けていません。..
はい、私にとっては幸運なことに、新しいバージョンはST_接頭辞をサポートしています。私はそれをもう一度修正しましたが、ここのスレッドを忘れました。 :) お返事をありがとうございます。 – Tiit