0

多くの多角形と多くの点があり、その点と多角形の間に線を引いたときに他の多角形と交差しないような点を見つけたいと考えています。したがって、基本的には、ポリゴンに非常に近く、その間に他のポリゴンがないポイントが必要です。

次のクエリを試してみましたが、ポリゴンと交差しているかどうかに関係なく、すべてのポイントが得られます。

SELECT P.POINTLOC from pointTable P WHERE NOT MDSYS.SDO_OVERLAPBDYINTERSECT(P.POINTLOC," +
            "MDSYS.SDO_GEOMETRY(2003,null,null,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1)," +
"MDSYS.SDO_ORDINATE_ARRAY(4, 226, 150, 254, 164, 240, 191, 212, 176,4,226)))    = 'TRUE'";

Then I tried this query and it gives some correct points but miss a few correct points:

SELECT P.POINTLOC from pointTable P WHERE MDSYS.SDO_WITHIN_DISTANCE(P.POINTLOC," +
            "MDSYS.SDO_GEOMETRY(2003,null,null,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1)," +
"MDSYS.SDO_ORDINATE_ARRAY(4, 226, 150, 254, 164, 240, 191, 212, 176,4,226)),'distance = 40')    = 'TRUE'";

この状況に最適な Oracle 空間演算子を指摘できますか?

4

1 に答える 1