{"message":"无法通过center得到地理位置","status":"504"}

来源:6-2 根据经纬度或者地址调取百度地图

迎风向上乀

2018-02-16

//http://api.map.baidu.com/staticimage/v2
/**
 * 根据经纬度或者地址来获取百度地图
 * @param $center
 */
public static function staticimage($center) {
    if(!$center) {
        return '';
    }
    $data = [
        'ak' => config('map.ak'),
        'width' => config('map.width'),
        'height' => config('map.height'),
        'center' => $center,
        'markers' => $center,
    ];
    $url = config('map.baidu_map_url').config('map.staticimage').'?'.http_build_query($data);
    // 1 file_get_contents($url);
    // 2 curl
    $result = doCurl($url);
    return $result;
}
<?php
/**
 * Created by PhpStorm.
 * User: chenshu
 * Date: 2018/2/16
 * Time: 下午1:07
 */

return [
    'ak' => 'RCqr5risuryquwlO8FINvNVwzYMRpbsq',
    'baidu_map_url' => 'http://api.map.baidu.com/',
    'geocoder' => 'geocoder/v2/',
    'width' => 400,
    'height' => 300,
    'staticimage' => 'staticimage/v2',
];
public function map(){
    return \Map::staticimage('北京昌平河沙地铁');
}
/**
 * @param $url
 * @param int $type 0 get  1 post
 * @param array $data
 */
function doCurl($url, $type=0, $data=[]) {
    $ch = curl_init(); // 初始化
    // 设置选项
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER,0);

    if($type == 1) {
        // post
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }

    //执行并获取内容
    $output = curl_exec($ch);
    // 释放curl句柄
    curl_close($ch);
    return $output;
}


写回答

1回答

WL伟霖

2018-02-18

你代码中地址写错了。。。视频中的地址是:“北京昌平沙河地铁”,你的是:“北京昌平河沙地铁”。如果输入的地址是不存在的话,api是返回状态码504

1
1
singwa
赞赞赞
2018-02-22
共1条回复

Thinkphp5.0仿百度糯米开发多商家电商平台

【毕设】BAT大牛亲授ThinkPHP 5.0,实战中学透新技能,应用于工作

2439 学习 · 1711 问题

查看课程