zoukankan      html  css  js  c++  java
  • 获取目标地与当前地距离

    public static String juli(String latitudee,String longitudee,String ak,String diqu){
    double latitude = Double.parseDouble(latitudee);
    double longitude = Double.parseDouble(longitudee);
    String url1 = "http://api.map.baidu.com/geocoder/v2/?address="+diqu+"&output=json&ak="+ak;
    String json1 = loadJSON(url1);
    JSONObject obj1 = JSONObject.fromObject(json1);
    String juli="";
    if(obj1.get("status").toString().equals("0")){
    double lat1 = (Math.PI/180)*latitude;
    double lon1 = (Math.PI/180)*longitude;
    double lng=obj1.getJSONObject("result").getJSONObject("location").getDouble("lng");
    double lat=obj1.getJSONObject("result").getJSONObject("location").getDouble("lat");
    double lat2 = (Math.PI/180)*lat;
    double lon2 = (Math.PI/180)*lng;
    //地球半径
    double R = 6371.004;
    double dis = Math.acos(Math.sin(lat1)*Math.sin(lat2)+Math.cos(lat1)*Math.cos(lat2)*Math.cos(lon2-lon1))*R;
    NumberFormat nFormat = NumberFormat.getNumberInstance(); //数字格式化对象
    //if(dis < 1){ 当小于1千米的时候用,用米做单位保留一位小数
    //nFormat.setMaximumFractionDigits(1); //已可以设置为0,这样跟百度地图APP中计算的一样
    //dis *= 1000;
    //juli=nFormat.format(dis)+"m";

    nFormat.setMaximumFractionDigits(1); //已可以设置为0,这样跟百度地图APP中计算的一样
    dis *= 1000;
    juli=nFormat.format(dis);


    // }else{
    // nFormat.setMaximumFractionDigits(2);
    // juli=nFormat.format(dis)+"km";
    //
    // }
    }else{
    juli="未找到相匹配的经纬度!";
    }
    return juli;
    }

  • 相关阅读:
    Java并发/多线程-线程池的使用
    pam详解
    chrony时间同步服务
    网站每日UV数据指标去重统计
    阻塞式发送邮件
    待办事项-redis
    解决Windows7、Windows10 ping不通的问题
    redis序列化和反序列化的操作-(以前咋操作我都忘记了)
    秒杀活动下的公平队列抢购机制
    控制某个字段不在页面展示
  • 原文地址:https://www.cnblogs.com/zcy1995/p/9361468.html
Copyright © 2011-2022 走看看