2011-01-05 10 views
4

を使用して多角形の内部にある場合はどのように見つけますか。ジオフェンス:ポイントや形状がポイントまたはポリゴンが他のポリゴンの内側にここではOracle SpatialのSQLクエリ</p> <p>を使用するシナリオである場合、私は見つけるにはどうすればよいOracle Spatialの

ポリゴン(状態)の空間タイプ(sdo_geometry)を含むテーブル(STATE_TABLE)、空間データ(sdo_geometry)(ポイント/ポリゴン)を含む別のテーブル(UNIVERSITY_TABLE)があります。大学を含む。

ここで、SQL select文を使用して、選択した大学が特定の州にいるかどうかを確認します。

主に、私はジオフェンスで指定されたオブジェクトの存在を探したいと思います。

ありがとうございました。あなたがのマスクでSDO_CONTAINSまたはSDO_RELATEのいずれかを使用する必要があるとしている

答えて

6

または

SDO_RELATEため

SDO_CONTAINS http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064にあるドキュメントを参照してください '含みます' http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531

あなたは(あなたの空間情報は、空間的に索引付けされる「GEOM」と呼ばれる列に含まれていると仮定した場合)、次のような何かしたいこれらのいずれかを1:あなたは私ドンとして私を許しする必要があります

select 
    ST.NAME, UT.UNIVERSITY_NAME 
from 
    STATE_TABLE ST 
    INNER JOIN UNIVERSITY_TABLE UT 
     ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE' 

をこのための正しい構文を特に覚えておいてください。上記の結合が正しく機能するかどうかはわかりません。しかし、これは正しい方向にあなたを指すのに十分なはずです。

+0

Dave!お返事をありがとうございます;それは確かに私が問題を解決するために取り組むべき方向を築いた。私は他の問題を解決するために同じ時間をかけて時間を取っていました。すぐに対応します。 – Abdul

+0

うれしいです。昨夜遅くに起きて、これを見た。 –

+0

これについては、SDO_CONTAINS(A、B)が次のように見えるようにする必要があると思われますが、この操作が本当に何をしているかについてのドキュメントは多少曖昧でした。 BはAに含まれています。大学のジオメトリが州の境界に触れたり、境界を超えたりするなど、国境を越える問題が発生する可能性があります。そのためには、SDO_RELATEをfilterまたはmaskパラメータで異なるオプションで使用する必要があります。 –

関連する問題