java根据经纬度计算距离

Posted 萌的一波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java根据经纬度计算距离相关的知识,希望对你有一定的参考价值。

   在实际地图项目中会碰见距离的计算,这里写出来,以后参考:

  

/**
* @author 作者 :zhaoliang
* @version : v1.0
*创建时间:2018年6月26日 下午3:32:30
* 类说明 :根据经纬度计算距离
*/
public class DistanceUtil {

private static double EARTH_RADIUS = 6378.137; //地球半径
/**
* 谷歌地图计算两个坐标点的距离
* @param latitude 页面传递过来的经度
* @param longitude 页面传递过来的纬度
* @param gaode_lng 数据库中停车场的经度
* @param gaode_lat 数据库中停车场的纬度
* @return 距离(千米)
*/
public static double getDistance(double latitude, double longitude, double gaodeLng, double gaodeLat) {
double radLat1 = Math.toRadians(longitude);
double radLat2 = Math.toRadians(gaodeLat);
double a = radLat1 - radLat2;
double b = Math.toRadians(latitude) - Math.toRadians(gaodeLng);
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 * 10000) / 10000;
return s;
}

public static void main(String[] args) {
long b = System.currentTimeMillis();
for(int i=0; i<1000000; i++){
getDistance(116.403933,39.914147, 116.403237,39.927919);
}
System.out.println("耗时:"+(System.currentTimeMillis()-b)+"毫秒"); //耗时:461毫秒
double dist = getDistance(116.403933,39.914147, 116.403237,39.927919);
System.out.println("两点相距:" + dist + "千米"); //两点相距:1.0千米

}
}








































以上是关于java根据经纬度计算距离的主要内容,如果未能解决你的问题,请参考以下文章

java工具类 六 根据经纬度计算距离

mysql中怎么根据经纬度计算距离

(转)根据经纬度计算方位距离

根据经纬度和半径计算经纬度范围,根据两点经纬度计算距离

根据两地点经纬度如何计算两地之间的距离?用啥方式计算

数据分析系列 之根据经纬度计算两点之间的距离