Oracle计算经纬度间的距离

重复投保校验需求,解决方法参考《在oracle中直接计算经纬度距离的方法》

select sdo_geom.sdo_distance(
    mdsys.sdo_geometry(2001, 8307, mdsys.sdo_point_type(经度1, 纬度1, 0), null, null),
    mdsys.sdo_geometry(2001, 8307, mdsys.sdo_point_type(经度2, 纬度2, 0), null, null),
    0.5)
from dual;

其中2001代表位置为单点,8307代表坐标系为WGS84坐标系,即GPS坐标系,0.5为oracle计算时候的误差精度,单位是米,计算结果单位为米,经纬度说明如下:

中文 英文 定义 取值
经度 longitude 地球表面某点随地球自转所形成的轨迹 0-90°,赤道0°,北纬为正数,南纬为负数。
纬度 latitude 地球表面连接南北两极的大圆线上的半圆弧 0-180°,本初子午线0°,东经正数,西经为负数