请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

//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;
}


正在回答 回答被采纳积分+3

1回答

WL伟霖 2018-02-18 15:01:22

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

1 回复 有任何疑惑可以回复我~
  • singwa #1
    赞赞赞
    回复 有任何疑惑可以回复我~ 2018-02-22 23:27:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信