oracle数据库根据经纬度空间查询范围内的点集

匿名 (未验证) 提交于 2019-12-03 00:38:01

矩形和多边形区域:

select * from tableName a where 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'

圆形区域:

select * from tableName A where SQRT(POWER(A.LONGITUDE(这里是经度) - 116.3676095557983, 2) +             POWER(A.LATITUDE(这里是纬度) - 39.913205912837014, 2)) <=             0.039790863734664776(这里是圆形区域)

线性区域:

select * from tableName where 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'";  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!