package com.haiyisoft.cAssistant;
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;
/** * 获取经纬度 * * @author Sunny * 密钥:f247cdb592eb43ebac6ccd27f796e2d2 */
public class GetLatAndLngByBaidu {
/** * @param addr * 查询的地址 * @return * @throws IOException */
public Object[] getCoordinate(String addr) throws IOException {
String lng = null;//经度
String lat = null;//纬度
String address = null;
try {
address = java.net.URLEncoder.encode(addr, "UTF-8");
}
catch (UnsupportedEncodingException e1)
{
e1.printStackTrace();
}
String key = "qDaws0IfG7VID98VWsDCYZvr8j6fRkGv";
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;
int count = 1;
while((data= br.readLine())!=null){
if(count==5){
lng = (String)data.subSequence(data.indexOf(":")+1, data.indexOf(","));//经度
count++;
}else if(count==6){
lat = data.substring(data.indexOf(":")+1);//
count++;
}
else{
count++;
}
}
}
}
catch (IOException e) {
e.printStackTrace();
} finally {
if(insr!=null){
insr.close();
}
if(br!=null){
br.close();
}
}
return new Object[]{lng,lat};
}
public static void main(String[] args) throws IOException {
GetLatAndLngByBaidu getLatAndLngByBaidu = new GetLatAndLngByBaidu();
Object[] o = getLatAndLngByBaidu.getCoordinate("山东省烟台市机场路2号东方电子");
System.out.println(o[0]);//经度
System.out.println(o[1]);//纬度
}
}
相关文章
- 10-26百度地图获取搜索后获取选中标注的名称、地址、坐标等信息
- 10-26在嵌入式平台上将GPS/北斗模块获取的经纬度转换为百度地图经纬度
- 10-26uniapp 根据给定的经纬度、地址address,调取地图导航
- 10-26百度地图API自动根据点的经纬度来控制地图显示范围
- 10-26[高德地图]------- 高德地图通过经纬度获取地址信息代码
- 10-26百度地图API用法(传地址)
- 10-26百度地图API 模糊搜索、默认定位、双击获取经纬度
- 10-26基于百度地图开放平台Web服务api爬取经纬度并转换为WGS84坐标
- 10-26用高德地图API 通过详细地址获得经纬度
- 10-26微信小程序自动定位,通过百度地图根据经纬度获取该地点所在城市信息