您的位置:首页 > 其它

百度地图开放平台 Web服务API --Geocoding API (地理编码和逆地理编码)

2017-02-16 15:08 741 查看
   百度地图开放平台地理编码服务和逆地理编码服务的api文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

     Geocoding API 是一类接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# 、C++、Java等开发语言发送请求且接收JSON、XML的返回数据。

     Geocoding API 已全面支持HTTP/HTTPS两种请求形式。

地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。

逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。

  以下是用来测试的PHP代码:

<?php
header("Content-type:text/html;charset=utf-8");
// 百度地理编码服务
$ak="SlKGotyLwOjjBUR2ZGb7uKAlO59FqHVY";
$output="json";
$callback="showLocation";
$address="南宁市兴宁区朝阳广场";
$city="南宁市";
$url="http://api.map.baidu.com/geocoder/v2/?output=$output&address=$address&city=$city&ak=$ak";
$res=getData($url);
$res=json_decode($res,true);
echo "<pre>";
print_r($res);
if($res['status']==0){
// 经纬度
$lng=$res['result']['location']['lng'];
$lat=$res['result']['location']['lat'];
}else{
exit("百度地理编码服务出错,获取不到经纬度!");
}

// 百度逆地理编码服务
$ak="SlKGotyLwOjjBUR2ZGb7uKAlO59FqHVY";
$location=$lat.",".$lng;
$output="json";
$url="http://api.map.baidu.com/geocoder/v2/?location=$location&output=$output&ak=$ak";
$data=getData($url);
$data=json_decode($data,true);
print_r($data);

/*
* 用GET方式获取指定URL的数据
*/
function getData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
?>
网页输出结果如下:
Array
(
[status] => 0
[result] => Array
(
[location] => Array
(
[lng] => 108.32766625111
[lat] => 22.825109768923
)

[precise] => 1
[confidence] => 80
[level] => UNKNOWN
)

)

Array
(
[status] => 0
[result] => Array
(
[location] => Array
(
[lng] => 108.32766625111
[lat] => 22.825109774287
)

[formatted_address] => 广西壮族自治区南宁市兴宁区人民东路236号
[business] => 朝阳,区工商局,龙腾路
[addressComponent] => Array
(
[country] => 中国
[country_code] => 0
[province] => 广西壮族自治区
[city] => 南宁市
[district] => 兴宁区

a190
[adcode] => 450102
[street] => 人民东路
[street_number] => 236号
[direction] => 东
[distance] => 75
)

[pois] => Array
(
)

[poiRegions] => Array
(
[0] => Array
(
[direction_desc] => 内
[name] => 朝阳广场
[tag] => 休闲娱乐
)

)

[sematic_description] => 朝阳广场内
[cityCode] => 261
)

)


 

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: