在 Oracle 中根據經緯度計算兩地之間的距離

2021-06-21 13:24:16 字數 1123 閱讀 9689

在 oracle 中根據經緯度計算兩地之間的距離

獲得弧度的函式:

create or replace function radian(d number) return number

ispi number :=3.141592625;

begin

return  d* pi/180.0;

end ;

測試一下這個函式:

select radian(360) from dual;

根據經緯度計算距離的函式:

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.243481

sql> select getdistance('121.506656','31.245087','121.508883','31.243481') from dual;

輸出結果是 0.2649 千公尺

根據經緯度計算距離 Java

根據兩個位置的經緯度,來計算兩地的距離 單位為km 引數為double型別 long1 位置1經度 lat1 位置1緯度 long2 位置2經度 lat2 位置2緯度 public class distanceutils 根據兩個位置的經緯度,來計算兩地的距離 param longitudeuser...

經緯度計算

define earth radius,6371 地球半徑,平均半徑為6371km 計算某個經緯度的周圍某段距離的正方形的四個點 param lng float 經度 param lat float 緯度 param distance float 該點所在圓的半徑,該圓與此正方形內切,預設值為0.5...

給定經緯度計算距離 根據兩點經緯度計算距離

根據兩點經緯度計算距離 這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉 地軸是一根通過地 球南北兩極和地球中心的 假想線 在地球中腰畫乙個與地軸垂直的大圓圈,使圈上的每一點都和南北兩 極的距離相等,這個圓圈 就叫作 赤道 在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是 緯 圈 構成這些圓圈的...