1. 程式人生 > >java api從高德地圖獲取某個位置的經緯度

java api從高德地圖獲取某個位置的經緯度


import com.fasterxml.jackson.databind.JsonNode;
import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.AsyncHttpClientConfig;
import com.ning.http.client.ListenableFuture;
import com.ning.http.client.Response;
import com.sun.deploy.net.HttpUtils;
import org.mortbay.util.UrlEncoded;

/**
 * 通過java api從高德地圖獲取經緯度
 *  address 位置
 *  output 返回結果格式
 *  key  高德key值,需申請
 */

public class Distance {
     public static void main(String[] args) {
        //1、通過java api從高德地圖獲取經緯度
        String url = "http://restapi.amap.com/v3/geocode/geo?address=上海市東方明珠&output=JSON&key=xxxxxxxxx";

        AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
        builder.setCompressionEnabled(true).setAllowPoolingConnection(true);
        builder.setRequestTimeoutInMs((int) TimeUnit.MINUTES.toMillis(1));
        builder.setIdleConnectionTimeoutInMs((int) TimeUnit.MINUTES.toMillis(1));

        AsyncHttpClient client = new AsyncHttpClient(builder.build());
        try {
            ListenableFuture<Response> future = client.prepareGet(url).execute();
            String result = future.get().getResponseBody();
            System.out.println(result);
            JsonNode jsonNode = new com.fasterxml.jackson.databind.ObjectMapper().readTree(future.get().getResponseBody());
            if(jsonNode.findValue("status").textValue().equals("1")) {
                JsonNode listSource = jsonNode.findValue("location");
                System.out.println(listSource);
                for(String location : listSource.textValue().split(",")){
                    //得到這個位置的經緯度
                    System.out.println(location);
                    //System.out.println(Double.valueOf(location));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(client != null){
                client.close();
            }
        }
    }

2、詳細請看高德官網api介紹: 
http://lbs.amap.com/api/webservice/reference/georegeo/