public class Distance {
/** 地球半径,以千米(km)为计算单位 */
private final static double EARTH_RADIUS = 6378.137;
/** 求弧度大小 */
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 根据地球上两点间的经纬度求距离
*
* @param lat1
* @param lng1
* @param lat2
* @param lng2
* @return 两点间的距离千米数(km)
*/
public static double getDistance(double lng1, double lat1, double lng2,double lat2) {
double radLng1 = rad(lng1);
double radLng2 = rad(lng2);
double a = radLng1 - radLng2;
double b = rad(lat1) - rad(lat2);
double dis = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)+
Math.cos(radLng1) * Math.cos(radLng2)* Math.pow(Math.sin(b / 2), 2)));
dis = dis * EARTH_RADIUS;
dis = Math.round(dis * 10000) / 10000.0;//除数写成10000.0减小误差
return dis;
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("地球周长:"+2*Math.PI*EARTH_RADIUS);
System.out.println("90度:"+getDistance(0,0,90,0));
System.out.println("180度:"+getDistance(0,0,180,0));
}
}
分享到:
相关推荐
通过经纬度获取两地直线距离。运行环境vs2010
根据经纬度算距离 含c#版和vb版 另外根据地址获取经纬度可以利用百度提供的 “Geocoding API”,可以直接百度:“ 百度Geocoding ”,参考地址:...
根据经纬度计算两地距离小程序
计算公式从google地球抠出的代码,计算精度可以保证
通过两地的经纬度计算两地距离适用于android初学者
根据网上给出的代码,增加了批量功能。计算一批经纬度的平均经度与平均纬度,然后各经纬度与平均值之间的距离
【Python应用实战案例】Python实现经纬度换算+计算两地距离+地理可视化(代码)
上一个版本有点问题,界面中将经度和纬度搞混了,此版本纠正了这个错误。
PHP获取经纬度两点间距离,筛选,排序,多用于APP中用户与用户或用户与商家之间,进行距离筛选,排序
JavaScript应用实例-高德地图经纬度求实际距离.js
由两点经纬度计算距离的源码,用C#编写,在arcgis server 可以实现
通过两地的经度和纬度来计算两地之间的实际距离,实现是通过谷歌地图的API函数实现。
根据两点经纬度求距离
基于Windows 下的qt开发程序,可以根据两地经纬度,计算出两点间的距离
这个是在开发APP常用的计算方法,根据经纬度计算两地距离。
查询经纬度,python实现经纬度换算+计算两地距离+地理可视化
flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离
三种方法计算两地间(需知道两地的经纬度)的距离
通过两点经纬度坐标,得到两点的距离和角度。进行高斯转化。
已知地图上两点的坐标经纬度,求出第二个坐标相对于第一个坐标的方向和角度