class Map{
//可以获取经纬度
public static function getLngLat($address){
// 百度地图地理编码API "http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation
if(!$address){
return '';
}
$data = [
'address'=>$address,
'ak'=>config('map.ak'),
'output'=>'json',
];
$url=config('map.baidu_map_url').config('map.geocoding').'?'.http_build_query($data);
//$res = file_get_contents($url); 通过这个方法也能读取url的内容
return $res=doCurl($url);
}
/**
* 根据经纬度或者地址获取地图
*/
public static function staticImage($center){
if(!$center){
return '';
}
$data = [
'width'=>config('map.width'),
'height' =>config('map.height'),
'ak'=>config('map.ak'),
'center' =>$center,
'markers'=>$center,
];
$url=config('map.baidu_map_url').config('map.staticimage').'?'.http_build_query($data);
//$res = file_get_contents($url); 通过这个方法也能读取url的内容
return $res=doCurl($url);
}
}
配置文件
return [
'ak'=>'Nm7A28So1*******ndkKCducME0n0nVr',
'baidu_map_url'=>'http://api.map.baidu.com/',
'geocoding'=>'geocoding/v3/',
'width' => 400,
'height' => 300,
'staticimage'=>'staticimage/v2'
];
封装CURL的方法,用来读取url的内容
/**
* @param $url
* @param int $type get 0;post 1
* @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){
curl_setopt($ch,CURLOPT_PORT,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
//执行并获取内容
$output = curl_exec($ch);
curl_close($ch);
return $output;
网友评论