百度地图开放平台 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;
}
?>
网页输出结果如下:
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 ) )
相关文章推荐
- java调用百度地图web服务api-----该方法可用在js跨域请求上
- C#封装百度Web服务API处理包含(Geocoding API,坐标转换API)
- java调用百度地图web服务api-----该方法可用在js跨域请求上
- 百度Geocoding接口(可用于地理编码和逆地理编码)
- Python Web中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- c#调用百度地图web服务api-----该方法可用在js跨域请求上
- Google Geocoding API 免费版和商业版(地理编码逆地址)
- 高德地图-web端根据地理编码和逆地理编码
- 联合使用 HTML 5、地理定位 API 和 Web 服务来创建移动混搭程序
- Alexa开放Web搜索数据库 API服务效果超Google
- c#调用百度地图web服务api-----该方法可用在js跨域请求上
- Google Geocoding API---地理编码与反向地理编码
- 用HTML5、地理定位API和Web服务来开发移动应用
- c#封装百度web服务geocoding api 、百度坐标转换示例
- Web开放趋势代表:无所不在的Google API
- (六)Java Ee平台上实现Web服务及多种客户端实例-小结
- Java SE 6 新特性: XML API 与 Web 服务
- (六)Java Ee平台上实现Web服务及多种客户端实例-小结
- (六)Java Ee平台上实现Web服务及多种客户端实例-小结
- 如何在 Web 服务中使用 Service Data Objects 2.1 的动态数据 API