百度地圖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!

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