java獲取兩個高德地圖座標之間的距離

目的:根據高德地圖獲取的經緯度座標,使用高德api中的路徑規劃接口來獲取兩個經緯度之間的距離,單位爲米。

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import com.panpass.common.constants.CommonConstants;
 
public class GetDistance {
	public static Long getDistance(String startLonLat, String endLonLat,String key){
		//返回起始地startAddr與目的地endAddr之間的距離,單位:米
		Long result = 0L;
		String queryUrl = "http://restapi.amap.com/v3/distance?key="+key+"&origins="+startLonLat+"&destination="+endLonLat;
		String queryResult = getResponse(queryUrl);
		JSONObject jo = JSONObject.fromObject(queryResult);
		JSONArray ja = jo.getJSONArray("results");
		Object obj=JSONObject.fromObject(ja.getString(0)).get("distance");
		if(obj==null){
			return result;
		}
		result = Long.parseLong(obj.toString());
		return result;
	}
 
    private static String getResponse(String serverUrl){
        //用JAVA發起http請求,並返回json格式的結果
        StringBuffer result = new StringBuffer();
        try {
            URL url = new URL(serverUrl);
            URLConnection conn = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
 
            String line;
            while((line = in.readLine()) != null){
                result.append(line);
            }
            in.close();
 
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result.toString();
    }
    
    public static void main(String[] args){
        String startLonLat="116.413731,39.979324";
        String endLonLat="116.417537,39.97722";
        String key="xxxxxxxxxxxxx";
 
        System.out.println(startLonLat);
        System.out.println(endLonLat);
        Long dis = getDistance(startLonLat,endLonLat,key);
        System.out.println(dis);
    }
}

運行結果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章