百度地图转高德地图(火星坐标)高德地图(火星坐标)转百度地图

申请百度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','失败');
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值