计算半径
来源:互联网 发布:金庸 古龙 知乎 编辑:程序博客网 时间:2024/04/30 11:48
public class EarthLongLatiCalculator {
private static final double EARTH_RADIUS = 6378137;// 赤道半径(单位m)
/**
* 转化为弧度(rad)
* */
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 基于googleMap中的算法得到两经纬度之间的距离,计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下
*
* @param lon1
* 第一点的精度
* @param lat1
* 第一点的纬度
* @param lon2
* 第二点的精度
* @param lat3
* 第二点的纬度
* @return 返回的距离,单位km
* */
public static double getDistance(double lon1, double lat1, double lon2,
double lat2) {
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double a = radLat1 - radLat2;
double b = rad(lon1) - rad(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 * EARTH_RADIUS;
// s = Math.round(s * 10000) / 10000;
return s;
}
public static void main(String[] args) {
double long1 = 116.392456;
double lati1 = 40.003906;
double long2 = 116.413899;
double lati2= 39.994869;
double dis = EarthLongLatiCalculator.getDistance(long1, lati1, long2, lati2);
System.out.println(dis);
}
}
private static final double EARTH_RADIUS = 6378137;// 赤道半径(单位m)
/**
* 转化为弧度(rad)
* */
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 基于googleMap中的算法得到两经纬度之间的距离,计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下
*
* @param lon1
* 第一点的精度
* @param lat1
* 第一点的纬度
* @param lon2
* 第二点的精度
* @param lat3
* 第二点的纬度
* @return 返回的距离,单位km
* */
public static double getDistance(double lon1, double lat1, double lon2,
double lat2) {
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double a = radLat1 - radLat2;
double b = rad(lon1) - rad(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 * EARTH_RADIUS;
// s = Math.round(s * 10000) / 10000;
return s;
}
public static void main(String[] args) {
double long1 = 116.392456;
double lati1 = 40.003906;
double long2 = 116.413899;
double lati2= 39.994869;
double dis = EarthLongLatiCalculator.getDistance(long1, lati1, long2, lati2);
System.out.println(dis);
}
}
0 0
- 计算半径
- PAT1063_计算谱半径
- 1063. 计算谱半径
- PAT1063 计算谱半径
- 1063. 计算谱半径
- 17230 计算轴承半径[C]
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- PAT1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- PAT 1063 计算谱半径
- 1063. 计算谱半径(20)
- 1063. 计算谱半径(20)
- 1063.计算谱半径(20)
- 人生是一场相逢,人生又是一场遗忘
- Mahout0.9—Hadoop2.20—FPG关联规则算法
- ListView详解
- 第16周项目4-为动态数组扩容
- Unity中NGUI点击事件委托的应用
- 计算半径
- ZigZag Conversion
- 我的第一篇
- 简单编程(二十)将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出
- 有关phpmyadmin无法打开index.php,只能打开目录的问题
- 整数数组,一个数字出现了半数以上次,找出这个数字
- uml图符号解析--工欲善其事必先利其器
- 物理层 总结
- 我来教你如何寻找XSS漏洞