基于PHP如何实现获取当前经纬度,代码是什么
Admin 2022-08-04 群英技术资讯 1336 次浏览
在这篇文章中,我们来学习一下“基于PHP如何实现获取当前经纬度,代码是什么”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。今天心血来潮脑海忽出一个想法,即打算写出来玩耍一下。
其中涉及几个关键功能
1.获取用户当前经纬度、地址、地域信息;
2.计算用户与用户之间的距离、路线。
3.其他,与今天的文章没有关系就不废话啦。
大概翻阅了一下资料,方法有很多,今天主要介绍一下腾讯地图的方法吧
废话不多说直接上码;
PHP求请求方法:
function getLocationInfo($ip,$key){
//$ip 用户的当前IP地址
//$key 腾讯地图开发者需要的KEY秘钥,自己去注册一下吧
//$url 腾讯地图API请求接口地址
$url = 'https://apis.map.qq.com/ws/location/v1/ip?ip='.$ip.'&key='.$key;
$info = file_get_contents($url); //GET请求,记住这里必须要用GET哦
$info = json_decode($info, true); //将返回数据转JSON
return $info; //返回请求结果
}
返回结果:
array(3) {
["ip"]=>
string(12) "0.0.0.0" //IP地址
["location"]=>
array(2) {
["lat"]=>
float(00.0000) //纬度
["lng"]=>
float(000.00000) //经度
}
["ad_info"]=>
array(5) {
["nation"]=>
string(6) "中国" //国家
["province"]=>
string(12) "黑龙江省" //省
["city"]=>
string(12) "哈尔滨市" //市
["district"]=>
string(9) "道里区" //区
["adcode"]=>
int(000000) //地址码
}
}
就这样么简单,已经拿到经纬度啦!
至于计算距离或者根据经纬度获取当前详细地址就都不是问题啦~!
php根据IP获取IP所在城市
//根据现有IP地址获取其地理位置(省份,城市等)的方法
function GetIpLookup($ip = ''){
if(empty($ip)){
return '请输入IP地址';
}
$res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);
if(empty($res)){ return false; }
$jsonMatches = array();
preg_match('#\{.+?\}#', $res, $jsonMatches);
if(!isset($jsonMatches[0])){ return false; }
$json = json_decode($jsonMatches[0], true);
if(isset($json['ret']) && $json['ret'] == 1){
$json['ip'] = $ip;
unset($json['ret']);
}else{
return false;
}
return $json;
}
$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址 //ipInfos 是一个数组
var_dump($ipInfos);
总结
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在php5的对象编程经常提到的一个关键点是“默认情况下对象是通过引用传递的”。但其实这不是完全正确的。下面通过一些例子来说明。php的引用是别名,就是两个不同的变量...
这篇文章给大家分享的是有关Laravel 框架Contracts契约的内容,很多新手学习Laravel 框架时,对于为何要Laravel 的契约以及怎么样定义和使用契约不是很了解,因此分享给大家做个参考,希望大家阅读完这篇文章能有所收获。
本文将继续给大家介PHP算法系列知识,正如标题所述,这次则是教大家怎么通过给定的三个数来判断能不能构成直角三角形,我可以肯定至少百分之99的小伙伴,在学生时代都做过这类数学题目!!!
workerman无法监听的解决办法:首先删除掉“workerman/workerman”;然后使用命令“workerman/workerman-for-win”;接着重新启动监听即可。
方法:1、将“.env”文件中的“APP_DEBUG”项内容修改为false;2、将Laravel服务重新启动即可。“.env”文件中的“APP_DEBUG”设置为false时,表示关闭debug模式,true就表示开启debug模式。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008