定位和地址相互转换(腾讯地图)
2022-08-06
if (!function_exists('get_adcode_r')) {
    function get_adcode_r($lat,$lng ,$key){
        $ch = curl_init();
        try {
            curl_setopt($ch, CURLOPT_URL, "https://apis.map.qq.com/ws/geocoder/v1/?location=$lat,$lng&key=$key");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
            $contents = curl_exec($ch);
            curl_close($ch);
            $contents = json_decode($contents,true);
            $rt = ['adcode'=>'','district'=>'','city'=>'','province'=>'','lng'=>'','lat'=>'' ];
            if(isset($contents['result']) && isset($contents['result']['ad_info'])&& isset($contents['result']['ad_info']['adcode'])) {
                $rt['adcode'] = $contents['result']['ad_info']['adcode'];
            }
            if(isset($contents['result']) && isset($contents['result']['address_component']) && $contents['result']['address_component']) {
                $rt['district'] = $contents['result']['address_component']['district'];
                $rt['city'] = $contents['result']['address_component']['city'];
                $rt['province'] = $contents['result']['address_component']['province'];
            }
            if(isset($contents['result']) && isset($contents['result']['location'])&&  $contents['result']['location']  ) {
                $rt['lng'] = $contents['result']['location'] ['lng'];
                $rt['lat'] = $contents['result']['location'] ['lat'];
            }


        } catch (Exception $e) {
        }
        return  $rt;
    }
}

if (!function_exists('get_adcode')) {
    function get_adcode($addr ,$key){
        $ch = curl_init();
        try {
            curl_setopt($ch, CURLOPT_URL, "https://apis.map.qq.com/ws/geocoder/v1/?address=$addr&key=$key");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
            $contents = curl_exec($ch);
            curl_close($ch);
            $contents = json_decode($contents,true);
            $rt = ['adcode'=>'','district'=>'','city'=>'','province'=>'','lng'=>'','lat'=>'' ];
            if(isset($contents['result']) && isset($contents['result']['ad_info'])&& isset($contents['result']['ad_info']['adcode'])) {
                $rt['adcode'] = $contents['result']['ad_info']['adcode'];
            }
            if(isset($contents['result']) && isset($contents['result']['address_components']) && $contents['result']['address_components']) {
                $rt['district'] = $contents['result']['address_components']['district'];
                $rt['city'] = $contents['result']['address_components']['city'];
                $rt['province'] = $contents['result']['address_components']['province'];
            }
            if(isset($contents['result']) && isset($contents['result']['location'])&&  $contents['result']['location']  ) {
                $rt['lng'] = $contents['result']['location'] ['lng'];
                $rt['lat'] = $contents['result']['location'] ['lat'];
            }
        } catch (Exception $e) {
        }
        return  $rt;
    }
}