java根据百度地图获取经纬度

来源:互联网 发布:2017大数据就业前景 编辑:程序博客网 时间:2024/04/29 12:37

百度地图根据地址获取经纬度


package com.jueyue;

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.util.HashMap;
import java.util.Map;

/**
* 获取经纬度通过
*
* @author jueyue 返回格式:Map<String,Object> map map.put("status",
* reader.nextString());//状态 map.put("result", list);//查询结果
* list<map<String,String>>
* 密钥:f247cdb592eb43ebac6ccd27f796e2d2
*/
public class GetLatAndLngByBaidu {

/**
* @param addr
* 查询的地址
* @return
* @throws IOException
*/
public Map<String, Object> getCoordinate(String addr) throws IOException {
String address = null;
Map<String, Object> map = new HashMap<String, Object>();
try {
address = java.net.URLEncoder.encode(addr, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
String key = "f247cdb592eb43ebac6ccd27f796e2d2";
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);
} catch (MalformedURLException e) {
e.printStackTrace();
}
InputStreamReader insr = null;
BufferedReader br = null;
try {
httpsConn = (URLConnection) myURL.openConnection();// 不使用代理
if (httpsConn != null) {
insr = new InputStreamReader(
httpsConn.getInputStream(), "UTF-8");
br = new BufferedReader(insr);
String data = null;
while((data= br.readLine())!=null){
System.out.println(data);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(insr!=null){
insr.close();
}
if(br!=null){
br.close();
}
}
return map;
}




public static void main(String[] args) throws IOException {
GetLatAndLngByBaidu getLatAndLngByBaidu = new GetLatAndLngByBaidu();
Map<String, Object> map = getLatAndLngByBaidu.getCoordinate("上海市黄浦区建国中路29号");
System.out.println(map);


}



}

0 0
原创粉丝点击