申请百度api就不多说了记得配置好环境
//百度转高德
function bd_decrypt($bd_lon,$bd_lat)
{
$x_pi = 3.14159265358979324 * 3000.0 / 180.0;
$x = $bd_lon - 0.0065;
$y = $bd_lat - 0.006;
$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);
$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);
$data['gg_lon'] = $z * cos($theta);
$data['gg_lat'] = $z * sin($theta);
return $data;
}
//高德转百度
function bd_encrypt($gg_lon,$gg_lat)
{
$x_pi = 3.14159265358979324 * 3000.0 / 180.0;
$x = $gg_lon;
$y = $gg_lat;
$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);
$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);
$data['bd_lon'] = $z * cos($theta) + 0.0065;
$data['bd_lat'] = $z * sin($theta) + 0.006;
return $data;
}
这个是根据坐标转为详细地址的
/**
* 定位转详细地址
*/
public function transformation(){
$array=input('coordinate');
$array=explode(',',$array);
$array=bd_encrypt($array[1],$array[0]);
// 请求百度接口
$url = 'http://api.map.baidu.com/reverse_geocoding/v3/?ak=填申请的key&output=json&coordtype=wgs84ll&location='.$array['bd_lat'].','.$array['bd_lon'];
$result = http_curl($url);
$result = $result['result'];
$result['addressComponent']['city'];
$city=str_replace('市','',$result['addressComponent']['city']);
$where=array('area_name'=>$city,
'area_type'=>2);
$data=Db::name('areas')->where($where)->field('area_id,area_name')->find();
if ($data) {
Common::outJson('200','成功',$data);
}else{
Common::outJson('401','失败');
}
}