Android(安卓)计算两个地理坐标之间的距离
16lz
2021-01-24
public class MapHelper { /** * 地球半径,单位:公里/千米 */ private static final double EARTH_RADIUS = 6378.137; /** * 经纬度转化成弧度 * @param d 经度/纬度 * @return 经纬度转化成的弧度 */ private static double radian(double d) { return d * Math.PI / 180.0; } /** * 返回两个地理坐标之间的距离 * @param firsLongitude 第一个坐标的经度 * @param firstLatitude 第一个坐标的纬度 * @param secondLongitude 第二个坐标的经度 * @param secondLatitude 第二个坐标的纬度 * @return 两个坐标之间的距离,单位:公里/千米 */ public static double distance(double firsLongitude, double firstLatitude, double secondLongitude, double secondLatitude) { double firstRadianLongitude = radian(firsLongitude); double firstRadianLatitude = radian(firstLatitude); double secondRadianLongitude = radian(secondLongitude); double secondRadianLatitude = radian(secondLatitude); double a = firstRadianLatitude - secondRadianLatitude; double b = firstRadianLongitude - secondRadianLongitude; double cal = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(firstRadianLatitude) * Math.cos(secondRadianLatitude) * Math.pow(Math.sin(b / 2), 2))); cal = cal * EARTH_RADIUS; return Math.round(cal * 10000d) / 10000d; } /** * 返回两个地理坐标之间的距离 * @param firstPoint 第一个坐标 例如:"23.100919, 113.279868" * @param secondPoint 第二个坐标 例如:"23.149286, 113.347584" * @return 两个坐标之间的距离,单位:公里/千米 */ public static double distance(String firstPoint, String secondPoint){ String[] firstArray = firstPoint.split(","); String[] secondArray = secondPoint.split(","); double firstLatitude = Double.valueOf(firstArray[0].trim()); double firstLongitude = Double.valueOf(firstArray[1].trim()); double secondLatitude = Double.valueOf(secondArray[0].trim()); double secondLongitude = Double.valueOf(secondArray[1].trim()); return distance(firstLatitude, firstLongitude, secondLatitude, secondLongitude); }}
更多相关文章
- Android(安卓)Intent调用大全
- Android(安卓)属性动画实战
- Android(安卓)ImageSpan与TextView中的text居中对齐问题解决(无论
- Android使用Google提供的地图实现定位时LocationListener的各个
- Android进阶(一)View体系
- 【转】Android(安卓)statusBar添加back,home,menu按钮
- 学习Android动画小结
- Android(安卓)Java包
- View基础知识总结