私はOracle Spatialを初めて使用します。地図から座標を取得し、データベースを検索してその地図ビューと交差するジオメトリを見つけるサービスを実装しようとしています。ほとんどの場合は問題なく動作しますが、マップをズームアウトして世界全体を表示すると、Oracle 検索でレコードがまったく返されません。ジオメトリ テーブルに 20 を超えるレコードがある場合に、次の sql が 0 レコードを返す理由を誰かが理解できますか。
select g.id, g.name, SDO_UTIL.to_kmlgeometry(g.geom) as kml from geography g
where SDO_RELATE(g.geom,
SDO_GEOMETRY(2003,8307,NULL,SDO_ELEM_INFO_ARRAY(1,1003,1),
SDO_ORDINATE_ARRAY(
-180,-90,
180,-90,
180,90,
-180,90
)),
'mask=ANYINTERACT') = 'TRUE';
データベースに挿入されたいくつかのサンプル レコード:
INSERT INTO geography VALUES(
GEOGRAPHY_ID_SEQ.nextVal,
'd2',
SDO_GEOMETRY(
2003, -- 2d poly
8307,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,1), -- polygon
SDO_ORDINATE_ARRAY(-77.01204711074818,38.88772105792418,
-77.01200419540395,38.89196328335449,
-77.00831347579947,38.89249647861828,
-77.00827056045522,38.88768765356904,
-77.01204711074818,38.88772105792418)
)
);
INSERT INTO geography VALUES(
GEOGRAPHY_ID_SEQ.nextVal,
'd3',
SDO_GEOMETRY(
2003, -- 2d poly
8307,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,1), -- polygon
SDO_ORDINATE_ARRAY(-77.05552889816111,38.86892085934577,
-77.05329022237119,38.87065233921285,
-77.05467677541158,38.87288138804671,
-77.05786820241124,38.87248696633578,
-77.05840989692072,38.87006762135151,
-77.05552889816111,38.86892085934577)
)
);
どんな助けでも大歓迎です。ありがとうございました!