位置: 编程技术 - 正文
推荐整理分享计算两个GPS坐标的距离 方法四 - Java语言(计算两gps坐标之间距离),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:两点gps坐标算出实际方位,计算gps两点之间的距离,计算两个gps坐标的距离,gps坐标计算距离公式工具,gps坐标计算距离公式工具,计算两个gps坐标的距离,计算gps两点之间的距离,计算两gps坐标之间距离,内容如对您有帮助,希望把文章链接给更多的朋友!
Java 计算两个GPS坐标点之间的距离
1. Lat1 Lung1 表示A点经纬度,Lat2 Lung2 表示B点经纬度;
2. a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点经度之差;
3. .为地球半径,单位为千米;
计算出来的结果单位为千米。
从google maps的脚本里扒了段代码,是用来计算两点间经纬度距离
private const double EARTH_RADIUS = .;private static double rad(double d){ return d * Math.PI / .0;}public static double GetDistance(double lat1, double lng1, double lat2, double lng2){ double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2; double b = rad(lng1) - rad(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; s = Math.Round(s * ) / ; return s;}在android中可采用如下代码获取距离
public double getDistance(double lat1, double lon1, double lat2, double lon2) { float[] results=new float[1]; Location.distanceBetween(lat1, lon1, lat2, lon2, results); return results[0];}在其他设备若没有类android的Location的distanceBetween方法开采用如下代码获取
这个计算得出的结果是英里,如果要转换成公里,需要乘以1.,若是海里需要乘以0.
double distance(double lat1, double lon1, double lat2, double lon2) { double theta = lon1 - lon2; double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta)); dist = Math.acos(dist); dist = rad2deg(dist); double miles = dist * * 1.; return miles;}//将角度转换为弧度static double deg2rad(double degree) { return degree / * Math.PI;}//将弧度转换为角度static double rad2deg(double radian) { return radian * / Math.PI;}计算方位角pab,其中lat_a, lng_a是A的纬度和经度; lat_b, lng_b是B的纬度和经度。代码如下:
private double gps2d(double lat_a, double lng_a, double lat_b, double lng_b){ double d = 0; lat_a=lat_a*Math.PI/; lng_a=lng_a*Math.PI/; lat_b=lat_b*Math.PI/; lng_b=lng_b*Math.PI/; d=Math.sin(lat_a)*Math.sin(lat_b)Math.cos(lat_a)*Math.cos(lat_b)*Math.cos(lng_b-lng_a); d=Math.sqrt(1-d*d); d=Math.cos(lat_b)*Math.sin(lng_b-lng_a)/d; d=Math.asin(d)*/Math.PI;//d = Math.round(d*); return d;}地图应用接口中使用的经纬度单位是NTU,您需要把其它单位的经纬度转化过来,以下为常用的转换关系:基本转换:NTU = 度*度 = NTU/例如:经度 = .°纬度 = .°NTU经度:. * = (NTU)NTU纬度:.*=(NTU)度分转换:将度分单位数据转换为度单位数据度=度分/例如:经度 = °.’纬度 = °.’经度 = . / = .°纬度 = . / = .°NTU经度 = . * = (NTU)NTU纬度 = . * = (NTU)度分秒转换:将度分秒单位数据转换为度单位数据度 = 度 分 / 秒 / / 例如:经度 = °’”纬度 = °’”经度 = / / / = .°纬度 = / / / = .°NTU经度 = . * = (NTU)NTU纬度 = . * = (NTU)其式的经纬先转换度,再采用上面的运算。与经纬度有关的基础知识:NTU 相当于十万分之一度。如何计算经度方向距离比如: 点A的纬度为,点B的纬度为,则这两个点在沿着纬线的方向相差米。点A的经度为,点B的经度为,则这两个点在沿着经线的方向相差大约为米, 该的计算方法可以用近公式:经度方向距离 = 经度差 * cos(纬度) = * cos() = 米。
如何计算两点间距离比如:点A的经度为,纬度为。点B的经度为,纬度为。公式:两点间距离 = [ (A点经度 - B点经度)^2 (A点纬度 - B点纬度)^2 ] ^ (1/2) = [ ( - )^2 ( - )^2 ] ^(1/2) =() ^ (1/2) =米
GPS经纬度查询,直线距离计算:
计算汽车行驶的方向 1.场景:已知汽车行驶过程中的2个GPS坐标点A(n1,e1),B(e),计算它行驶的方向。2.分析:如上图所示,知道了两个点A、B,可以假设一个C点,让三个点
Android大图片裁剪终极解决方案(中:从相册截图) 转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激!:-)
Android判断用户2G/3G/4G移动数据网络 在做AndroidApp的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在App的
标签: 计算两gps坐标之间距离
本文链接地址:https://www.jiuchutong.com/biancheng/386008.html 转载请保留说明!友情链接: 武汉网站建设