zoukankan      html  css  js  c++  java
  • Android计算地图上两点距离

    Java代码

      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方法开采用如下代码获取:

      Java代码

      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 * 60 * 1.1515;

      return miles;

      }

      //将角度转换为弧度

      static double deg2rad(double degree) {

      return degree / 180 * Math.PI;

      }

      //将弧度转换为角度

      static double rad2deg(double radian) {

      return radian * 180 / Math.PI;

      }

      这个计算得出的结果是英里,如果要转换成公里,需要乘以1.609344,若是海里需要乘以0.8684

  • 相关阅读:
    bzoj 4911: [Sdoi2017]切树游戏
    bzoj 2654: tree
    bzoj 3240: [Noi2013]矩阵游戏
    有标号的DAG计数 III
    有标号的DAG计数 II
    bzoj 3512: DZY Loves Math IV
    bzoj 4480: [Jsoi2013]快乐的jyy
    bzoj 5323: [Jxoi2018]游戏
    codeforces412A
    7.6 T1 深度优先搜索(dfs)
  • 原文地址:https://www.cnblogs.com/weixing/p/2362717.html
Copyright © 2011-2022 走看看