java 根据经纬度获取地址实现代码
实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public class GetLocation {
public static void main(String[] args) {
// lat 39.97646
//log 116.3039
String add = getAdd( "116.3039" , "39.97646" );
JSONObject jsonObject = JSONObject.fromObject(add);
JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString( "addrList" ));
JSONObject j_2 = JSONObject.fromObject(jsonArray.get( 0 ));
String allAdd = j_2.getString( "admName" );
String arr[] = allAdd.split( "," );
System.out.println( "省:" +arr[ 0 ]+ "\n市:" +arr[ 1 ]+ "\n区:" +arr[ 2 ]);
}
public static String getAdd(String log, String lat ){
//lat 小 log 大
//参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)
String urlString = "http://gc.ditu.aliyun.com/regeocoding?l=" +lat+ "," +log+ "&type=010" ;
String res = "" ;
try {
URL url = new URL(urlString);
java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection();
conn.setDoOutput( true );
conn.setRequestMethod( "POST" );
java.io.BufferedReader in = new java.io.BufferedReader( new java.io.InputStreamReader(conn.getInputStream(), "UTF-8" ));
String line;
while ((line = in.readLine()) != null ) {
res += line+ "\n" ;
}
in.close();
} catch (Exception e) {
System.out.println( "error in wapaction,and e is " + e.getMessage());
}
System.out.println(res);
return res;
}
}
|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/u011072139/article/details/46428065