百度地图api-全球逆地理编码
全球逆地理编码服务 (⼜名Geocoder)是⼀类Web API接⼝服务;
逆地理编码服务提供将坐标点(经纬度)转换为对应位置信息(如所在⾏政区划,周边地标点分布)功能。
服务同时⽀持全球⾏政区划位置描述及周边地标POI数据召回(包括中国在内的全球200多个国家地区);
若需访问POI,需申请「逆地理编码POI」服务权限,请申请开通服务权限。
⽤户可通过该功能,将位置坐标解析成对应的⾏政区划数据以及周边⾼权重地标地点分布情况,整体描述坐标所在的位置。附:百度api官⽅⽂档地址:
接⼝: //GET请求
注:⽼版本⾏政区划数据已不再维护,为确保您的⾏政区划数据正确,请务必将latest_admin设置为1
接⼝传参和返回数据接⼝含义请查看官⽹⽂档描述,在这就不做介绍了。
* -逆地理编码—百度接⼝根据经纬度解析地址
*
* @param lat_lng
* @return
* @throws IOException
*/
public static Map<String, String> geocoder(String lat_lng) throws IOException {
URL url = new URL("api.map.baidu/geocoder/v2/?callback=renderReverse&language=zh-CN&location=" + lat_lng + "&output=json&pois=1&ak=你的ak");
URLConnection connection = url.openConnection();
/**
* 然后把连接设为输出模式。URLConnection通常作为输⼊来使⽤,⽐如下载⼀个Web页。
* 通过把URLConnection设为输出,你可以把数据向你个Web页传送。下⾯是如何做:
*/
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStream(), "utf-8");
out.flush();
out.close();
// ⼀旦发送成功,⽤以下⽅法就可以得到服务器的回应:
String res;
InputStream l_urlStream;
l_urlStream = InputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(l_urlStream, "UTF-8"));
StringBuilder sb = new StringBuilder("");
while ((res = in.readLine()) != null) {
sb.im());
}
百度api接口String str = sb.toString();
Map<String, String> map = new HashMap<String, String>();
if (str != null && str != "") {
int addss = str.indexOf("country\":");
int added = str.indexOf("\",\"country_code");
if (addss > 0 && added > 0) {
String country = str.substring(addss + 10, added);
System.out.println("国家:" + country);
map.put("country", country);
}
int addss1 = str.indexOf("province\":");
int added1 = str.indexOf("\",\"city");
if (addss1 > 0 && added1 > 0) {
String province = str.substring(addss1 + 11, added1);
System.out.println("州市:" + province);
map.put("province", province);
}
int addss2 = str.indexOf("city\":");
int added2 = str.indexOf("\",\"city_level");
if (addss2 > 0 && added2 > 0) {
String city = str.substring(addss2 + 7, added2);
System.out.println("城市:" + city);
map.put("city", city);
}
return map;
}
return null;
下⾯进⾏接⼝的测试:
public static void main(String[] args) throws IOException {
Map map = testPost("48.845289,2.392104");
System.out.println(map);
}
输出结果
"status":0,
"result":{
"location":{
"lng":2.392103999999888,
"lat":48.845289591136705
},
"formatted_address":"25 Rue du Sergent Bauchat, Paris, Ile-de-France, France", "business":"",
"addressComponent":{
"country":"France",
"country_code":49841,
"country_code_iso":"FRA",
"country_code_iso2":"FR",
"province":"Ile-de-France",
"city":"Paris",
"city_level":2,
"district":"",
"town":"",
"adcode":"0",
"street":"Rue du Sergent Bauchat",
"street_number":"25",
"direction":"附近",
"distance":"10"
},
"pois":[
],
"roads":[
],
"poiRegions":[
],
"sematic_description":"",
"cityCode":49872
}
}
国家:France
州市:Ile-de-France
城市:Paris
{country=France, province=Ile-de-France, city=Paris}可以通过百度地图 拾取坐标系统 查看输⼊的经纬度地点信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论