输入地址,查询经纬度坐标
首先需要去百度地图api申请秘钥 http://developer.baidu.com/map/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
/**
* <p>
* 前端控制器
* </p>
*
* @author
* @since 2021/7/20
*/
public class T {
public static void main(String[] args) throws IOException {
T t = new T();
Object[] objects = t.getCoordinate("上海市宝山区杨泰路386号B-906");
System.out.println("经度:"+objects[0]);
System.out.println("纬度:"+objects[1]);
}
public Object[] getCoordinate(String addr) throws IOException {
String address = null;
String lat = null; //经度
String lng = null;//纬度
try {
address= URLEncoder.encode(addr,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String key = "b823ffcfdefb488***************";//百度地图申请ak
String url = String .format("http://api.map.baidu.com/geocoder?address=%s&output=json&key=%s", address, key);
URL myURL=null;
URLConnection httpsConn=null;
try {
myURL=new URL(url);//创建URL对象
} catch (MalformedURLException e) {
e.printStackTrace();
}
InputStreamReader instr=null;
BufferedReader br=null;
try {
httpsConn=(URLConnection) myURL.openConnection(); //URL调用openConnection()方法从它创建一个URLConnection对象,会抛出IOException异常
if (httpsConn !=null){
instr=new InputStreamReader(httpsConn.getInputStream(),"UTF-8");//获取输入流
br=new BufferedReader(instr);//从字符流中读取文本并缓冲字符
String data=null;
int count = 1;
while((