点是否在圆内:
select *
from table a
where SQRT(power(a.LONGITUDE - 116.3676095557983, 2) +
power(a.LATITUDE - 39.913205912837014, 2)) <=
0.039790863734664776
点是否在多边形内:
select *
from table a,
(select MDSYS.SDO_GEOMETRY(2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,
1003,
1),
MDSYS.SDO_ORDINATE_ARRAY(116.32538033694757,
39.906350079429856,
116.33095311487795,
39.87091007279355,
116.39480688269283,
39.85758832979095,
116.4214463155306,
39.89240348162625,
116.3783335525407,
39.9799055395663,
116.28691483413509,
39.97172243440462,
116.28958264221046,
39.919422096307414,
116.33388775596742,
39.92787481642996,
116.33047452402171,
39.92786278190348,
116.29558151638385,
39.90043630083025,
116.32538033694757,
39.906350079429856)) as geom
from dual) c
where a.LONGITUDE > 0
and a.LATITUDE > 0
and (1 = 2 or sdo_Geom.Relate(c.geom,
'Anyinteract',
mdsys.sdo_geometry(2001,
null,
mdsys.sdo_point_type(a.LONGITUDE,
a.LATITUDE,
null),
null,
null),
0.000001) = 'TRUE')
判断点是否在线的缓冲范围内
sdo_Geom.within_distance(MDSYS.SDO_GEOMETRY(2002,4326,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1),MDSYS.SDO_ORDINATE_ARRAY("+ lnglat+ ")),"+size+",mdsys.sdo_geometry(2001,4326,mdsys.sdo_point_type("+lng+","+lat+",null),null,null),0.000001,'unit=m') = 'TRUE'";
判断点是否在圆的范围内
SELECT * FROM ZNJTRESOURCE.T_DEVICE_VIDEO A WHERE SQRT(POWER(A.LONGITUDE - 116.3676095557983, 2) +
POWER(A.LATITUDE - 39.913205912837014, 2)) <=
0.039790863734664776
判断点是否在面的范围内
sdo_geom.Relate(mdsys.sdo_geometry(2003, 4326, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array( points)), 'ANYINTERACT', mdsys.sdo_geometry(2001,4326,mdsys.sdo_point_type(a.latitude ,a.longitude ,null),null,null),0.001)= 'TRUE'