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

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