/**
* 高德地圖工具
* * @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.從資料庫中搜尋...
給定經緯度計算距離 根據兩點經緯度計算距離
根據兩點經緯度計算距離 這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉 地軸是一根通過地 球南北兩極和地球中心的 假想線 在地球中腰畫乙個與地軸垂直的大圓圈,使圈上的每一點都和南北兩 極的距離相等,這個圓圈 就叫作 赤道 在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是 緯 圈 構成這些圓圈的...
根據兩點經緯度計算距離
這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉 地軸是一根通過地球南北兩極和地球中心的 假想線 在地球中腰畫乙個與地軸垂直的大圓圈,使圈上的每一點都和南北兩極的距離相等,這個圓圈 就叫作 赤道 在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是 緯圈 構成這些圓圈的線段,叫做緯線。我們把赤道定為...