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