百度地圖API計算經緯度
註冊百度地圖開發者
註冊地址:http://lbsyun.baidu.com/apiconsole/key
申請應用的APKEY
控制檯->我的應用->查看應用->創建應用
設置白名單
IP白名單配置爲:0.0.0.0/0
代碼實現
對應JSONObject解析,再對下面代碼進行優化。
package com.baidu.map;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.*;
import java.util.HashMap;
import java.util.Map;
import com.sun.deploy.net.proxy.*;
public class MyTest {
public static void main(String[] args) throws Exception{
String address="上海市浦東新區唐鎮";
System.out.println(caculate(address).get("target"));
}
/**
* 1.Map caculate(String addr)
* lng 121.524
* lat 31.249
*/
public static Map<String,Object> caculate(String address) throws Exception{
Map<String,Object> target = new HashMap<>();
//定義訪問應用AK
//String passport="HslLfeBEGF6o2dhNTTq7lMWXD3nnKYER";
//String passport="8Nxnu6vC6XBuIflEhWWQ6aWQY66vO8Rg";
String passport="UUIFlBS4ezhHIqnGPU0PHbF0I3sWBGfb";
//封裝請求
String uri = "http://api.map.baidu.com/geocoding/v3/?address="+address+"&output=json&ak="+passport;
URL url = new URL(uri);
try {
//設置代理模式訪問
Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("172.16.1.245",8080));
HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
connection.setDoOutput(true); // 設置該連接是可以輸出的
connection.setRequestMethod("GET"); // 設置請求方式
int responseCode = connection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
String line;
StringBuilder result= new StringBuilder();
while ((line = br.readLine()) != null) { // 讀取數據
result.append(line + "\n");
}
target.put("target",result.toString());
}
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return target;
}
}
學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:543120397 我們一起學Java!