现在的位置: 首页 > 综合 > 正文

Oracle空间分析SQL语句

2013年08月19日 ⁄ 综合 ⁄ 共 1986字 ⁄ 字号 评论关闭

点是否在圆内:

 

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')

抱歉!评论已关闭.