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);    }}

 

更多相关文章

  1. Android(安卓)Intent调用大全
  2. Android(安卓)属性动画实战
  3. Android(安卓)ImageSpan与TextView中的text居中对齐问题解决(无论
  4. Android使用Google提供的地图实现定位时LocationListener的各个
  5. Android进阶(一)View体系
  6. 【转】Android(安卓)statusBar添加back,home,menu按钮
  7. 学习Android动画小结
  8. Android(安卓)Java包
  9. View基础知识总结

随机推荐

  1. Android中Selector的用法
  2. android自定义view属性
  3. Android(Lollipop/5.0) Material Design(
  4. Android(安卓)使用Android(安卓)Studio +
  5. android ellipsize 属性详解
  6. android中用Spannable在TextView中设置超
  7. android ui界面设计参数讲解
  8. Android(安卓)TextView常用属性介绍Andro
  9. Android(安卓)数据的读取与写入2
  10. Android之screenOrientation属性