计算两经纬度间的距离
来源:互联网 发布:淘宝账号修改用户名 编辑:程序博客网 时间:2024/06/05 06:14
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;
}
}
/*********************用例2********************************/
private static double EARTH_RADIUS = 6378.137;
public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
double radLat1 = getRadian(lat1);
double radLat2 = getRadian(lat2);
double a = radLat1 - radLat2;// 两点纬度差
double b = getRadian(lng1) - getRadian(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;
return s * 1000;
}
private static double getRadian(double degree) {
return degree * Math.PI / 180.0;
}
- 计算两经纬度间的距离
- 计算两经纬度的距离
- 两经纬度之间的距离计算
- 计算两经纬度之间的距离
- sql 计算两经纬度之间的距离
- 两经纬度间的距离
- java通过经纬度计算两坐标点之间的距离
- java通过经纬度计算两坐标点之间的距离
- java版谷歌地图计算两经纬度坐标点的距离
- 计算两个经纬度点间的距离
- 计算两个经纬度间的距离(c++)
- 根据两点间的经纬度计算距离
- 根据经纬度计算两点间的距离
- 根据两点间的经纬度计算距离
- 根据经纬度计算两点间的距离
- 经纬度距离的简化计算
- 计算两个经纬度的距离
- 计算两个经纬度的距离
- html 导出到 excel
- 企服三会·PPT | 智简信息孟伟: 新零售消费者运营
- 两个数最大公约数几种算法
- 企服三会·PPT | 华夏基石谭长春: 技术+营销,迎接企业经营新时代
- 数据中心云化将是大势所趋 | 工信部称1亿以上用户信息泄露为特大网络安全事件
- 计算两经纬度间的距离
- 企服三会·PPT | 神州云动 CloudCC 孙满弟:打造中国的首款CRM生态
- Python NLTK结合stanford NLP工具包进行文本处理
- LeetCode-55. Jump Game
- AJAX请求action返回JSON并进行渲染
- JSON传值与PHP接收的几种情况
- hadoop-3.0.0-beta1运维手册(002):安装Guest操作系统
- java语言程序设计-基础篇(第八版)第三章课后题答案
- 植物细胞分割的源代码