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/