JAVA計算兩個經緯度之間的距離

public class MapUtils {
//private static double EARTH_RADIUS = 6378.137;
private static double EARTH_RADIUS = 6371.393;
private static double rad(double d)
{
return d * Math.PI / 180.0;
}

/**
 * 計算兩個經緯度之間的距離
 * @param lat1
 * @param lng1
 * @param lat2
 * @param lng2
 * @return
 */
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
   double radLat1 = rad(lat1);
   double radLat2 = rad(lat2);
   double a = radLat1 - radLat2;	
   double b = rad(lng1) - rad(lng2);
   double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + 
    Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
   s = s * EARTH_RADIUS;
   s = Math.round(s * 1000);
   return s;
}



public static void main(String[] args) {
	System.out.println(MapUtils.GetDistance(29.490295,106.486654,29.615467,106.581515));
}

}

2、順帶提一下百度地圖提供的計算兩地經緯度的方法,很簡單的一句話調用,可以自行去看百度地圖API試試,計算結果單位:米

var map = new BMap.Map(“allmap”);
var pointA = new BMap.Point(106.486654,29.490295); // 點座標A
var pointB = new BMap.Point(106.581515,29.615467); // 點座標B
alert(map.getDistance(pointA,pointB)).toFixed(2)); //toFixed(2)意思爲保留小數點後兩位

發佈了64 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章