天天看点

java计算通过两地经纬度计算距离

1.通过经纬度计算距离

public class CoordCommonUtil
{
	/** 获得球面(地球)上两个点之间的距离(坐标可以为WGS84、GCJ02等任何一种坐标,但两个点的坐标类型必须相同)
	 * @param lon1 起点的经度
	 * @param lat1 起点的纬度
	 * @param lon2 终点的经度
	 * @param lat2 终点的纬度
	 * @return 两点之间的距离,单位是米
	 */
	public static int getDistance(double lon1,double lat1, double lon2,double lat2)
	{
	        double radLat1 = Math.toRadians(lat1);		//计算弧长(d * Math.PI / 180.0)
	        double radLat2 = Math.toRadians(lat2);
	        double a = radLat1 - radLat2;
	        double b = Math.toRadians(lon1) - Math.toRadians(lon2);
	        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 * 6378137.0;		//取WGS84标准参考椭球中的地球长半径(单位:m)
	        //s = Math.round(s * 10000) / 10000;
	        return (int)Math.round(s);
	}

}
           

继续阅读