首页 > 技术分享 > 原生PHP
收藏

PHP根据腾讯地图经纬度获取当前地址

05/17 11:06
大潇博客 原创文章,转载请标明出处

有这种需求,大多是在移动端开发,所以就以微信返回的经纬度做基础,api采用腾讯地图


首先到腾讯位置服务平台,创建应用,平台地址:https://lbs.qq.com/


首先创建应用,然后再添加key

QQ图片20220517111742.png


添加key时,对于通过api直接获取地址的,要选中“WebServiceApi”,并配置下白名单或授权id等

腾讯地图创建应用.png


创建完成,即可看到key的值,拿此值就可以进行下一步,请求的接口为:https://apis.map.qq.com/ws/geocoder/v1/?location=latitude(纬度),longitude(经度)&key=key&get_poi=0


参考微信小程序返回的经纬度,假设有下面参数(小程序获取位置对行业有要求,比如教育行业无法使用)

小程序返回经纬度.png


接口实际为:https://apis.map.qq.com/ws/geocoder/v1/?location=39.85856,116.28616&key=key&get_poi=0,如图:

QQ图片20220517112618.png


返回的结果还是挺详细的

腾讯地图返回信息.png


有的经纬度超出范围,会返回“中国区域”,有的还会返回“大海”(英文)等


下面为参考代码:

function getAddressInfo($location,$key){

//$location     要获取地址的经纬度     格式"39.071510,117.190091"即纬度与经度用逗号隔开

//$key          腾讯地图开发者秘钥,   自己申请

//get_poi       是否返回周边地址列表   1是 0否

$url = 'https://apis.map.qq.com/ws/geocoder/v1/?location='.$location.'&key='.$key.'&get_poi=0';

$info = file_get_contents($url); //请求API接口

$info = json_decode($info,true); //返回JSON数据转数组

print_r($info);

}


附行政区划分数组:

$province=array("河北省","山西省","辽宁省","吉林省","黑龙江省","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","海南省","四川省","贵州省","云南省","陕西省","甘肃省","青海省","台湾省","内蒙古自治区","广西壮族自治区","西藏自治区","宁夏回族自治区","新疆维吾尔自治区","北京市","天津市","上海市","重庆市","香港特别行政区","澳门特别行政区");


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311