/**
* 百度地图地址解析
* @param string $address 地址
* @param string $ak 百度开放平台key
* @param string $ret_coordtype gcj02ll(国测局坐标)bd09mc(百度墨卡托坐标)bd09ll(百度经纬度坐标)
* */
function adddresToCoordinates($address,$ak,$ret_coordtype='gcj02ll')
{
$url='https://api.map.baidu.com/geocoding/v3/?address='.$address.'&output=json&ak='.$ak.'&callback=showLocation&ret_coordtype='.$ret_coordtype;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
$output = curl_exec($ch);
curl_close($ch);
$output=substr(substr($output,strpos($output,'('),strrpos($output,')')),1,-1);
$output=json_decode($output, true);
return $output;
}
调用方法
public function toToCoordinates(){
$Coordinates=adddresToCoordinates('河北省石家庄市裕华区方村镇方兴路88号河北化工医药职业技术学院宿舍楼','keyxxxxxx');
if ($Coordinates['status']==0){
$lng=$Coordinates['result']['location']['lng'];
$lat=$Coordinates['result']['location']['lat'];
echo json_encode(['code'=>200,'msg'=>'获取成功!','data'=>['lng'=>$lng,'lat'=>$lat]]);
exit;
}else{
echo json_encode(['code'=>202,'msg'=>'获取失败!']);
exit;
}
}
返回结果
{"code":200,"msg":"\u83b7\u53d6\u6210\u529f\uff01","data":{"lng":114.60333972446658,"lat":37.989505231245545}}