Android根据经纬度计算距离
Android提供LocationManager和Location,可以方便的获得经纬度、海拔等位置。使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变化的监听注册;使用Location来获得具体的位置信息
操作方法
- 01
实现根据经纬度计算距离 利用google map的经纬度到距离计算的js脚本,将球面弧长的公式给还原出来(估计这个公式是经过部分修正的),还原出来的公式如图1 : 对图1的公式解释如下: 公式中经纬度均用弧度表示,角度到弧度的转化应该是很简单的了吧,若不会,依然请参考这个这个经纬度算距离的工具; Lat1 Lng1 表示A点纬度和经度,Lat2 Lng2 表示B点纬度和经度(不要弄错顺序); a = Lat1 – Lat2 为两点纬度之差 b = Lng1 -Lng2 为两点经度之差; 6378.137为地球半径,单位为公里; 计算出来的结果单位为公里; matlab实现 function d = distance(lat1, lng1, lat2, lng2) EARTH_RADIUS = 6378.137; a = lat1*pi/180 - lat2*pi/180; b = lng1*pi/180 - lng2*pi/180; d = EARTH_RADIUS*2*asin(sqrt(sin(a/2)^2) + cos(lat1*pi/180)*cos(lat2*pi/180)*sin(b/2)^2);
赞 (0)