Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> sdo_within_distance and sdo_distance differ
I tried some spatial query with sdo_within_distance and I checked with sdo_distance:
set pagesize 0
set linesize 1000
set trimspool on
whenever sqlerror continue
drop table ppp;
drop table rrr;
drop INDEX ppp_i; drop INDEX ppp_k; drop INDEX rrr_i;
whenever sqlerror exit failure rollback
delete from user_sdo_geom_metadata;
CREATE TABLE "PPP" ("FFF" "MDSYS"."SDO_GEOMETRY", "TTT" "MDSYS"."SDO_GEOMETRY") ;
CREATE TABLE "RRR" ("OOO" "MDSYS"."SDO_GEOMETRY") ;
INSERT INTO USER_SDO_GEOM_METADATA values ('PPP','FFF'
,mdsys.SDO_dim_array(MDSYS.SDO_DIM_ELEMENT('X',-180,180,.001)
,MDSYS.SDO_DIM_ELEMENT('Y',-90,90,.001)), 1);
CREATE INDEX ppp_i ON "PPP" ("FFF" ) INDEXTYPE IS "MDSYS"."SPATIAL_INDEX"
PARAMETERS ('SDO_LEVEL=12 SDO_NUMTILES=4 SDO_MAXLEVEL=32 SDO_COMMIT_INTERVAL=-1
TABLESPACE="DRSYS"') ;
INSERT INTO USER_SDO_GEOM_METADATA values ('PPP','TTT'
,mdsys.SDO_dim_array(MDSYS.SDO_DIM_ELEMENT('X',-180,180,.001)
,MDSYS.SDO_DIM_ELEMENT('Y',-90,90,.001)),1);
CREATE INDEX ppp_k ON "PPP" ("TTT" ) INDEXTYPE IS "MDSYS"."SPATIAL_INDEX"
PARAMETERS ('SDO_LEVEL=12 SDO_NUMTILES=4 SDO_MAXLEVEL=32 SDO_COMMIT_INTERVAL=-1
TABLESPACE="DRSYS"') ;
INSERT INTO USER_SDO_GEOM_METADATA values ('RRR','OOO'
,mdsys.SDO_dim_array(MDSYS.SDO_DIM_ELEMENT('X',-180,180,.001)
,MDSYS.SDO_DIM_ELEMENT('Y',-90,90,.001)),1);
CREATE INDEX rrr_i ON "RRR" ("OOO" ) INDEXTYPE IS "MDSYS"."SPATIAL_INDEX"
PARAMETERS ('SDO_LEVEL=9 SDO_NUMTILES=4 SDO_MAXLEVEL=32 SDO_COMMIT_INTERVAL=-1
TABLESPACE="DRSYS"') ;
insert into PPP (fff, ttt) values (mdsys.SDO_GEOMETRY(2001, NULL, NULL
, mdsys.SDO_ELEM_INFO_ARRAY(1, 1, 1)
, mdsys.SDO_ORDINATE_ARRAY(-1.98544, 52.98456))
, mdsys.SDO_GEOMETRY(2001, NULL, NULL, mdsys.SDO_ELEM_INFO_ARRAY(1, 1, 1)
, mdsys.SDO_ORDINATE_ARRAY(-2.92611, 53.45176)));
insert into rrr (OOO) values (mdsys.SDO_GEOMETRY(2002, NULL, NULL
, mdsys.SDO_ELEM_INFO_ARRAY(1, 2, 1)
, mdsys.SDO_ORDINATE_ARRAY(-1.86136, 52.44386, -1.86136, 52.44386)));
commit;
select OOO,fff,ttt
, sdo_within_distance(OOO,fff,'distance=4.49907961')
, sdo_within_distance(OOO,ttt,'distance=4.49907961')
, mdsys.SDO_GEOM.SDO_DISTANCE(OOO ,fff , 0.001 )
, mdsys.SDO_GEOM.SDO_DISTANCE(OOO ,ttt , 0.001 )
from ppp, rrr
/
The reported distances are well below the select criterion. Why do I get FALSE for the sdo_within_distance functions?
Any help appreciated.
Martin Received on Tue Jan 23 2001 - 21:34:09 CST