地点详情检索
百度地图 官方文档
地点详情检索针对指定POI,检索其相关的详情信息。开发者可以通过三种区域检索(或其他服务)功能,获取POI id。使用“地点详情检索”功能,传入id,即可检索POI详情信息,如评分、营业时间等(不同类型POI对应不同类别详情数据)
基本说明:
接口地址:http://api.map.baidu.com/place/v2/detail
返回格式:json/xml
请求方式:get
请求示例:http://api.map.baidu.com/place/v2/detail?uid=435d7aea036e54355abbbcc8&output=json&scope=2&ak=您的密钥
请求参数说明:
名称 类型 必填 说明
uid string 必填 poi的uid
scope string 必填 检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息
ak string 必填 开发者的访问密钥,必填项。v2之前该属性为key
uids string 选填 uid的集合,最多可以传入10个uid,多个uid之间用英文逗号分隔
output string 选填 请求返回格式
sn string 选填 开发者的权限签名
timestamp string 选填 设置sn后该值必填
返回参数说明:
名称 类型 说明
status int 本次API访问状态,如果成功返回0,如果失败返回其他数字。(见服务状态码)
message string 对API访问状态值的英文说明,如果成功返回"ok",并返回结果字段,如果失败返回错误说明
total int POI检索总数,开发者请求中设置了page_num字段才会出现total字段。出于数据保护目的,单次请求total最多为400
name string poi名称
location object poi经纬度坐标
lat float 纬度值
lng float 经度值
address string poi地址信息
province string 所属省份
city string 所属城市
area string 所属区县
telephone string poi电话信息
uid string poi的唯一标示
street_id string 街景图id
detail string 是否有详情页:1有,0没有
detail_info object poi的扩展信息,仅当scope=2时,显示该字段,不同的poi类型,显示的detail_info字段不同
JSON返回示例:
{
	"status": 0,
	"message": "ok",
	"result": {
		"uid": "435d7aea036e54355abbbcc8",
		"street_id": "435d7aea036e54355abbbcc8",
		"name": "百度大厦",
		"location": {
			"lng": 116.30789936414,
			"lat": 40.05703792689
		},
		"address": "北京市海淀区上地十街10号",
		"province": "北京市",
		"city": "北京市",
		"area": "海淀区",
		"detail_info": {
			"tag": "房地产;写字楼",
			"navi_location": {
				"lng": 116.30695398742,
				"lat": 40.057199045475
			},
			"alias": [
				""
			],
			"detail_url": "http://api.map.baidu.com/place/detail?uid=435d7aea036e54355abbbcc8&output=html&source=placeapi_v2",
			"type": "house",
			"overall_rating": "3.8",
			"image_num": "50",
			"comment_num": "50",
			"content_tag": "位置优越;毗邻地铁;花园景观"
		},
		"detail": 1
	}
}
服务级错误码参照
错误码 说明
0 服务请求正常召回
1 服务器内部错误
2 请求参数非法
3 权限校验失败
4 配额校验失败
5 ak不存在或者非法
102 不通过白名单或者安全码不对
2xx 无权限
3xx 配额错误
完整教学代码示例
<?php
/**
 * Created by PhpStorm.
 * User: FZS
 * Time: 2019/9/3 23:10
 */
//----------------------------------
// 地点详情检索 调用类
//----------------------------------
class freeApi{
    private $ak;
    private $apiUrl;

    public function __construct($ak){
        $this->ak = $ak;
        $this->apiUrl = 'http://api.map.baidu.com/place/v2/detail?uid=435d7aea036e54355abbbcc8&output=json&scope=2&ak='.$this->ak;
    }
    /**
     * 获取结果
     * @return array
     */
    public function getResult(){
        return $this->freeApiCurl($this->apiUrl);
    }
    /**
     * 请求接口返回内容
     * @param  string $url [请求的URL地址]
     * @param  string $params [请求的参数]
     * @param  int $ipost [是否采用POST形式]
     * @return  string
     */
    public function freeApiCurl($url,$params=false,$ispost=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($params){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
            }else{
                curl_setopt( $ch , CURLOPT_URL , $url);
            }
        }
        $response = curl_exec( $ch );
        if ($response === FALSE) {
            return false;
        }
        curl_close( $ch );
        return $response;
    }
}