php根据IP获取经纬度信息--百度地图篇
一、前言
之前一篇写过 php根据IP获取IP所在城市 ,但是还想再精确一点,获取这个IP所在的经纬度信息,该怎么办呢?
百度地图为我提供了一种解决方案(当然还有其他的解决方案)。
先总的来说一下,想使用百度地图的接口,除了你要写一些php(其他代码当然也能实现,本文写的是php实现)代码之外,唯一需要的就是申请一个百度地图的 密钥(免费申请,过程简单)。有了这个密钥,就相当于百度给你了一个访问百度地图api的通行证了。
百度地图的接口也分很多种,我的需求是:打开一个php页面就获取IP以及经纬度。
二、具体过程:
我会从头到尾,一步一步写出开发的过程,好了撸开袖子开干吧:
1.申请密钥(密钥和语言无关):
先访问接口文档 高精度IP定位API·Web服务API ,这个页面有个“产品介绍”小节,里面有个“申请密钥”的超链接:
单击它,跳转到申请蜜钥的页面:
然后单击“创建应用”,到创建页面:
然后填写一个自定义的名称、写一个IP白名单(根据自己需求,可选),然后提交。
TIP:如果是第一次申请的话,百度会发手机验证码进行验证.
2.撸代码
有了密钥,看看接口文档,就开始撸代码吧。
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php header( "Content-type: text/html; charset=utf-8" ); ?> <?php $user_ip = $_SERVER [ "REMOTE_ADDR" ]; //获取客户端IP get_lat_and_lng_ByIP( $user_ip ); //根据IP获取经纬度 function get_lat_and_lng_ByIP( $ip ) { if ( empty ( $ip )) { return 'IP不能为空' ; } $content = file_get_contents ( "http://api.map.baidu.com/highacciploc/v1?qcip=$ip&qterm=pc&ak=请输入您的AK&coord=bd09ll" ); $json = json_decode( $content ); $lng = $json ->{ 'content' }->{ 'location' }->{ 'lng' }; //提取经度数据 $lat = $json ->{ 'content' }->{ 'location' }->{ 'lat' }; //提取纬度数据 echo "当前经度:" . $lng ; echo "<br/>" ; echo "当前纬度:" . $lat ; } |
访问效果:

这个接口电脑端访问的定位还是挺准的;但是手机端访问就不准会差很多,最多只能到城市级别的精确度,请注意,至于原因本人也很困惑,有知道的大侠希望能够指点一下~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)