根据两点经纬坐标计算两点间的距离[JAVA]
来源:互联网 发布:原材料追溯软件 编辑:程序博客网 时间:2024/04/29 06:21
解决此问题的关键是要理解空间几何模型,在理解空间几何模型的基础上再利用数学公式求取两点之间的值。其解决步骤如下:
1、设两点分别为P1、P2,如果其值是用度分秒形式表示,则需将其转换成十进制度的形式,如P1点纬度为23度30分,则其纬度值转换成十进制度的形式为23.5度。如果值为十进制度的形式,则直接进入第二步。
2、分别将两点的经度、纬度值转换成弧度制形式,如P1纬度为23.5度,转换成弧度制则为:23.5*PI / 180。分别用 P1latInRad、P1LongInRad、P2latInRad、P2LongInRad表示。
3、分别求取两点间的纬度差(dlat)与经度差(dlon);
4、求取两点间的正弦与余弦值,公式如下:
A=sin2(dlat/2) + cos(P1LatInRad)*cos(P2LatInRad)*Sin2(dlon/2) (1)
5、求取两点的正切值,公式如下:
C=2*Math.Atan2(Math.Sqrt(A), Math.Sqrt(1-A)) (2)
6、返回两点间的距离:公式如下:
D=EarthRadiusKm * C (3)
public class distCnvter {
private final static double PI = 3.14159265358979323; // 圆周率
private final static double R = 6371229; // 地球的半径
public static double getDistance(double longt1, double lat1, double longt2,double lat2) {
double x, y, distance;
x = (longt2 - longt1) * PI * R
* Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
y = (lat2 - lat1) * PI * R / 180;
distance = Math.hypot(x, y);
return distance;
}
}
private final static double PI = 3.14159265358979323; // 圆周率
private final static double R = 6371229; // 地球的半径
public static double getDistance(double longt1, double lat1, double longt2,double lat2) {
double x, y, distance;
x = (longt2 - longt1) * PI * R
* Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
y = (lat2 - lat1) * PI * R / 180;
distance = Math.hypot(x, y);
return distance;
}
}
0 0
- 根据两点经纬坐标计算两点间的距离[JAVA]
- 根据两点经纬坐标计算两点间的距离[JAVA](转载)
- java 根据经纬度 坐标 计算两点之间的距离
- java根据GPS经纬度坐标计算两点的距离算法
- java根据经纬度坐标计算两点的距离算法
- java根据GPS经纬度坐标计算两点的距离算法
- java根据经纬度坐标计算两点的距离算法
- java根据经纬度坐标计算两点的距离算法
- java根据经纬度坐标计算两点的距离算法
- java根据经纬度坐标计算两点的距离算法
- 利用php 计算两点地理经纬坐标之间的距离
- PHP根据两点间的坐标计算距离
- PHP根据两点间的坐标计算距离
- 根据两点经纬度计算地球表面两点间的距离
- 根据两点经纬度计算两点间的距离图
- 根据两点经纬度计算地球表面两点间的距离
- 根据坐标计算两点之间距离
- 根据两点经纬度坐标计算距离
- 成为核心程序员的一些建议
- 如何在lua中打印一个数组(table)
- PHP CLI 模式详解
- nodeJs mongodb凭据验证
- LintCode: 最大子数组
- 根据两点经纬坐标计算两点间的距离[JAVA]
- JAVA模拟微信消息发送请求
- c++类中静态函数不能调用类中的非静态函数原因
- MFC中两个对话框之间数据传递
- 工作总结-Xcode7中使用静态库环境配置手册
- Android解耦库EventBus的使用和源码分析
- Android VelocityTracker与GestureDetector使用简介
- Auto layout: Hundreds of warning and several errors
- ListView 里面的checkBox,当其中一个被选中,其余全不被选中