矩形区域检索
百度地图 官方文档
开发者可设置检索区域左下角和右上角坐标,检索坐标对应矩形内的地点信息(常用于手机或PC端地图视野内检索)
基本说明:
接口地址:http://api.map.baidu.com/place/v2/search
返回格式:json/xml
请求方式:get
请求示例:http://api.map.baidu.com/place/v2/search?query=银行&bounds=39.915,116.404,39.975,116.414&ak={您的密钥}
请求参数说明:
名称 类型 必填 说明
ak string 必填 开发者的访问密钥
query string 必填 检索关键字,圆形区域检索和矩形区域内检索支持多个关键字并集检索,不同关键字间以$符号分隔,最多支持10个关键字检索
bounds string 必填 检索矩形区域,多组坐标间以","分隔
tag string 选填 检索分类偏好,与q组合进行检索,多个分类以","分隔POI分类
radius string 选填 圆形区域检索半径,单位为米
output string 选填 输出格式为json或者xml
scope string 选填 检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息
filter string 选填 检索过滤条件
coord_type int 选填 坐标类型,1(wgs84ll即GPS经纬度),2(gcj02ll即国测局经纬度坐标),3(bd09ll即百度经纬度坐标),4(bd09mc即百度米制坐标)
ret_coordtype string 选填 添加后POI返回国测局经纬度坐标
page_size int 选填 单次召回POI数量,默认为10条记录,最大返回20条。多关键字检索时,返回的记录数为关键字个数*page_size
page_num int 选填 分页页码,默认为0,0代表第一页,1代表第二页,以此类推。
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字段不同。
distance int 距离中心点的距离,圆形区域检索时返回
type string 所属分类,如’hotel’、’cater’。
tag string 标签
navi_location string POI对应的导航引导点坐标。大型面状POI的导航引导点,一般为各类出入口,方便结合导航、路线规划等服务使用
lng float 导航引导点经度
lat float 导航引导点纬度
alias string poi别名
detail_url string poi的详情页
children string poi子点数据,若某poi无子点,该字段为空
uid string poi子点的唯一标示,可用于详情检索
name string poi子点名称
show_name string poi子点简要名称
tag string poi子点类别
location string poi子点坐标
lat float poi子点纬度
lng float poi子点经度
address string poi子点地址
price string poi商户的价格
shop_hours string 营业时间
overall_rating string 总体评分
taste_rating string 口味评分
service_rating string 服务评分
environment_rating string 环境评分
facility_rating string 星级(设备)评分
hygiene_rating string 卫生评分
technology_rating string 技术评分
image_num string 图片数
groupon_num int 团购数
discount_num int 优惠数
comment_num string 评论数
favorite_num string 收藏数
checkin_num string 签到数
brand string poi对应的品牌(如加油站中的『中石油』、『中石化』)
content_tag string poi标签信息
JSON返回示例:
{
	"status": 0,
	"message": "ok",
	"results": [{
			"name": "中国民生银行(安定门支行)",
			"location": {
				"lat": 39.971315,
				"lng": 116.413576
			},
			"address": "北京市朝阳区安定门外大街1号",
			"province": "北京市",
			"city": "北京市",
			"area": "朝阳区",
			"street_id": "53cebd509fbca9612a02e14c",
			"telephone": "(010)58295666",
			"detail": 1,
			"uid": "53cebd509fbca9612a02e14c"
		},
		{
			"name": "北京银行(中轴路支行)",
			"location": {
				"lat": 39.957382,
				"lng": 116.404191
			},
			"address": "北京市东城区安德路16号(洲际大厦首层)",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "33ddf832c2d7244952e5c51e",
			"telephone": "95526",
			"detail": 1,
			"uid": "33ddf832c2d7244952e5c51e"
		},
		{
			"name": "交通银行(北京和平里支行)",
			"location": {
				"lat": 39.968787,
				"lng": 116.410049
			},
			"address": "北京市朝阳区外馆东街51号",
			"province": "北京市",
			"city": "北京市",
			"area": "朝阳区",
			"street_id": "e56bf5e3064b7b440782c2ff",
			"telephone": "(010)64408115",
			"detail": 1,
			"uid": "e56bf5e3064b7b440782c2ff"
		},
		{
			"name": "中国进出口银行(北京分行)",
			"location": {
				"lat": 39.934898,
				"lng": 116.411758
			},
			"address": "北京市东城区北河沿大街77号",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "6334ddeb6a99710bfea77863",
			"telephone": "(010)64099688",
			"detail": 1,
			"uid": "6334ddeb6a99710bfea77863"
		},
		{
			"name": "中国工商银行(北京地坛支行)",
			"location": {
				"lat": 39.966786,
				"lng": 116.413857
			},
			"address": "安定门外大街9号",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "50f7d1461f0208c472210bff",
			"telephone": "(010)84122100",
			"detail": 1,
			"uid": "50f7d1461f0208c472210bff"
		},
		{
			"name": "北京银行(沙滩支行)",
			"location": {
				"lat": 39.929203,
				"lng": 116.412428
			},
			"address": "北京市东城区北河沿大街95号6层97号一层",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "9ca676f2a814373a43e19275",
			"telephone": "(010)65220219",
			"detail": 1,
			"uid": "9ca676f2a814373a43e19275"
		},
		{
			"name": "中国银行(安定门外支行)",
			"location": {
				"lat": 39.958051,
				"lng": 116.413457
			},
			"address": "北京市东城区安定门外大街191号",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "f4460918f2b3296ab11e36ff",
			"telephone": "(010)64400221",
			"detail": 1,
			"uid": "f4460918f2b3296ab11e36ff"
		},
		{
			"name": "中国工商银行(北京和平里支行安德公路储蓄所)",
			"location": {
				"lat": 39.958072,
				"lng": 116.407072
			},
			"address": "北京市东城区安德路47-5号",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "cc788fde07292f8a88fc06ff",
			"telephone": "(010)84124439,(010)84124438",
			"detail": 1,
			"uid": "cc788fde07292f8a88fc06ff"
		},
		{
			"name": "中国工商银行(北京东华门支行)",
			"location": {
				"lat": 39.921373,
				"lng": 116.411402
			},
			"address": "东华门大街20号",
			"province": "北京市",
			"city": "北京市",
			"area": "东城区",
			"street_id": "dbf4d6eee23caa546ea3cc87",
			"telephone": "(010)65125921",
			"detail": 1,
			"uid": "dbf4d6eee23caa546ea3cc87"
		},
		{
			"name": "中国工商银行(北京和平北路东口支行)",
			"location": {
				"lat": 39.968629,
				"lng": 116.410245
			},
			"address": "北京市朝阳区外馆东街51号凯景铭座一层",
			"province": "北京市",
			"city": "北京市",
			"area": "朝阳区",
			"telephone": "(010)84123118",
			"detail": 1,
			"uid": "4482d48423f9a3b33fe23125"
		}
	]
}
服务级错误码参照
错误码 说明
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/search?query=银行&bounds=39.915,116.404,39.975,116.414&output=json&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;
    }
}