根據經緯度計算兩點的直線距離

2021-10-13 02:35:18 字數 2704 閱讀 7764

/**

* 高德地圖工具

* * @author henshuia

* */

public class amaputils

double d1 = 0.01745329251994329d;

double d2 = start.longitude;

double d3 = start.latitude;

double d4 = end.longitude;

double d5 = end.latitude;

d2 *= d1;

d3 *= d1;

d4 *= d1;

d5 *= d1;

double d6 = math.sin(d2)

; double d7 = math.sin(d3)

; double d8 = math.cos(d2)

; double d9 = math.cos(d3)

; double d10 = math.sin(d4)

; double d11 = math.sin(d5)

; double d12 = math.cos(d4)

; double d13 = math.cos(d5)

; double[

] arrayofdouble1 = new double[3]

; double[

] arrayofdouble2 = new double[3]

; arrayofdouble1[0]

=(d9 * d8)

; arrayofdouble1[1]

=(d9 * d6)

; arrayofdouble1[2]

= d7;

arrayofdouble2[0]

=(d13 * d12)

; arrayofdouble2[1]

=(d13 * d10)

; arrayofdouble2[2]

= d11;

double d14 = math.sqrt((arrayofdouble1[0] - arrayofdouble2[0])

*(arrayofdouble1[0] - arrayofdouble2[0])

+(arrayofdouble1[1] - arrayofdouble2[1])

*(arrayofdouble1[1] - arrayofdouble2[1])

+(arrayofdouble1[2] - arrayofdouble2[2])

*(arrayofdouble1[2] - arrayofdouble2[2]))

;return

(math.asin(d14 / 2.0d) * 12742001.579854401d);}

}

public final class lnglat implements cloneable

/*** 使用傳入的經緯度構造latlng 物件,一對經緯度值代表地球上乙個地點。

* * @param longitude

* 地點的經度,在-180 與180 之間的double 型數值。

* @param latitude

* 地點的緯度,在-90 與90 之間的double 型數值。

*/public lnglat(double longitude, double latitude)

/*** 使用傳入的經緯度構造latlng 物件,一對經緯度值代表地球上乙個地點

* * @param longitude

* 地點的經度,在-180 與180 之間的double 型數值。

* * @param latitude

* 地點的緯度,在-90 與90 之間的double 型數值。

* @param ischeck

* 是否需要檢查經緯度的合理性,建議填寫true

*/public lnglat(double longitude, double latitude, boolean ischeck)

if ((latitude <

-90.0d)

||(latitude >

90.0d))

this.latitude = latitude;

// this.latitude = parse(math.max(-90.0d, math.min(90.0d, latitude)));

}else

} /**

* 解析

* * @param d

* @return

*/private static double parse(double d)

public lnglat clone(

) @override

public int hashcode(

) @override

public boolean equals(object obj)

public string tostring(

)}

測試類

public class test 

}

根據兩點經緯度計算直線距離

例 某企業銷售儀器,在某使用者要諮詢某儀器問題時,需要使用者提供自己的位置,系統會返回離他最近的代售點或專家。開發這個需求 1.需要將專家或代售點位置做成經緯度,放入資料庫 2.在使用者提交自己位置後,獲取經緯度 3.根據當前位置的經緯度,框定半徑為x的專家所在地範圍的經緯度資料 4.從資料庫中搜尋...

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

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

根據兩點經緯度計算距離

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