6-1根据地址获取经纬度类的封装,完全按老师的要求写了代码,没有报错,也没有结果,一片空白?

来源:6-1 根据地址获取经纬度类的封装

davidKing2018

2017-10-03

http://szimg.mukewang.com/59d3a7cb0001374d19201080.jpg

 public function test()

    {

        return \Map::getLngLat('广东广州');

        //return $this->fetch();

    }

   

<?php

/*

 * 地图相关配置文件

 * */

return [

    'ak'=>'0CYehHNnctaQFGPM3ciBVvjWqwG4n22j',

    'baidu_map_url'=>'http://api.map.baidu.com',

    'geocoder'=>'geocoder/v2/',

    'width'=>400,

    'height'=>300,

    'staticimage'=>'staticimage/v2/',

];


public static function getLngLat($address){

        //http://api.map.baidu.com/geocoder/v2/?callback=renderOption&output=json&address=北京市海淀区上地10街10号&city=北京市&ak=您的ak

        if (!$address){

            return '';

        }

        $data=[

            'address'=>$address,

            'ak'=>config('map.ak'),

            'output'=>'json',

        ];

        $url=config('map.baidu_map_url').config('map.geocoder').'?'.http_build_query($data);

        //tp有两种方式获取url的内容

        //1 file_get_contents($url);

        //2 curl的方式

        $result= doCurl($url);

        return $result;

    }


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);//0,则HEADER头不输出;

    

    if ($type==1){

        //post方式

        curl_setopt($ch, CURLOPT_POST,1);

        curl_setopt($ch,CURLOPT_POSTFIELDS, $data);

    }

    

    //执行并获取内容

    $output=curl_exec($ch);

    //释放url句柄

    curl_close($ch);

    //输出结果

    return $output;

    

}


写回答

2回答

davidKing2018

提问者

2017-10-04

已解决,与AK有关!

0
2
旭来哥
回复
qq_我拉紧你i_0
你好,最后解决了嘛,怎么处理的呀
2019-11-28
共2条回复

davidKing2018

提问者

2017-10-03

请老师或知道的同学指点迷津,谢谢!

0
0

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

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

2439 学习 · 1712 问题

查看课程