首页 > 数据库技术 > 详细

ORACLE 根据经纬度 距离排序

时间:2015-01-17 02:11:40      阅读:2137      评论:0      收藏:0      [点我收藏+]

1.获得弧度的函数。========================

CREATE OR REPLACE FUNCTION RAD(d number) RETURN NUMBER
?is
?PI number :=3.141592625;
?
?begin?
?return? d* PI/180.0;
?end ;
?
?select RAD(360) from dual;


2.根据经纬度计算距离。=====================

CREATE OR REPLACE FUNCTION GetDistance(lat1 number,? lng1 number, lat2 number, lng2 number) RETURN NUMBER is
?? earth_padius number := 6378.137;
?? radLat1????? number := rad(lat1);
?? radLat2????? number := rad(lat2);
?? a??????????? number := radLat1 - radLat2;
?? b??????????? number := rad(lng1) - rad(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;


3.===============================================================
select a.*, GetDistance(‘121.506656‘,‘31.245087‘,a.ZUOBIAO_Y,a.ZUOBIAO_X) JULI from JL_KU a where 1=1? ORDER BY JULI

SpringMVC+mybatis HTML5 全新高大尚后台框架_集成代码生成器

ORACLE 根据经纬度 距离排序

原文:http://201501083741.iteye.com/blog/2176396

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!