本文摘自PHP中文网,作者黄舟,侵删。
HTML5提供了Geolocation-API允许我们获取地理位置坐标不过只有针对特定的需求才会用到
比如说地图应用
一般还是很少用到的
Geolocation-API
使用的方法也很简单
API都存在于navigator.geolocation对象的原型上
核心的方法就是getCurrentPostion和watchPosition
getCurrentPosition
navigator.geolocation.getCurrentPosition方法有三个参数
success 获取位置信息成功的回调函数(必须)
error 获取位置信息失败的回调函数
options 配置信息参数对象
1 2 |
|
这时浏览器就会发起询问
因为毕竟位置信息也算是隐私信息
这里我们点击允许共享位置信息就可以了
然后Chrome就会向Google位置服务发送本地网络信息
(由于国内封杀了谷歌,所以我们只有翻墙才能获取到位置信息???)
可以在控制台内给我们返回的位置信息
coord 坐标
accuracy 定位精准度(单位m)
altitude 海拔
altitudeAccuracy 海拔精准度(单位m)
heading 方向
latitude 纬度
longitude 经度
speed 速度
timestamp 时间戳
1
<
br
>
不过这个坐标并不是十分精确(特别是PC端)
它可能源于IP地址、GPS、Wifi定位等等
navigator.geolocation.getCurrentPosition(function(pos){ console.log(pos); },function(err){ console.log(err); });
我们可以设置第二个参数当获取地理位置信息错误时做出一些处理
1 2 3 4 |
|
比如我现在拒绝共享位置信息
code = 1 表示用户拒绝
code = 2 表示无法获取
code = 3 表示连接超时
第三个参数用于设置配置信息
1 2 3 4 5 6 7 8 |
|
enableHighAccuracy 是否需要高精度位置 默认false
timeout 设置请求超时时间(单位ms) 默认infinity不限时
maximumAge 位置信息过期时间(单位ms) 默认0:无条件获取新的地理位置信息
在重复获取地理位置watchPosition时,该参数指定多久再次获取位置
watchPosition
watchPosition与getCurrentPosition参数都是一样的
区别在于watchPosition是不停的获取位置信息
比如我们使用的定位软件
我们在跑步时位置不断变更,就需要不断的重绘定位
这样每当坐标发生变化,就会调用success回调函数
相关阅读 >>
HTML5之pushstate和popstate操作history无刷新改变当前url的详细介绍
HTML5+css3实现无插件拖拽上传图片(支持预览与批量)的详情介绍
更多相关阅读请进入《HTML5》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者