概述
在 Oracle 中根据经纬度计算两地之间的距离
获得弧度的函数:
CREATE OR REPLACE FUNCTION Radian(d number) RETURN NUMBER
is
PI number :=3.141592625;
begin
return d* PI/180.0;
end ;
测试一下这个函数:
根据经纬度计算距离的函数:
CREATE OR REPLACE FUNCTION GetDistance(lat1 number,
lng1 number,
lat2 number,
lng2 number) RETURN NUMBER is
earth_padius number := 6378.137;
radLat1 number := Radian(lat1);
radLat2 number := Radian(lat2);
a number := radLat1 - radLat2;
b number := Radian(lng1) - Radian(lng2);
s number := 0;
begin
s := 2 *
Asin(Sqrt(power(sin(a / 2), 2) +
cos(radLat1) * cos(radLat2) * power(sin(b / 2), 2)));
s := s * earth_padius;
s := Round(s * 10000) / 10000;
return s;
end;
示例,根据城市名计算距离:
东方明珠塔的经纬度是:121.506656,31.245087
陆家嘴地铁站的经纬度是:121.508883,31.243481SQL> select GetDistance('121.506656','31.245087','121.508883','31.243481') from dual;
输出结果是 0.2649 千米
最后
以上就是懦弱灰狼为你收集整理的在 Oracle 中根据经纬度计算两地之间的距离的全部内容,希望文章能够帮你解决在 Oracle 中根据经纬度计算两地之间的距离所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复