获取目标地与当前地距离

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

posted @ 2018-07-24 17:41  zcy1995  阅读(139)  评论(0编辑  收藏  举报