<HeadFirst_HTML5> O’REILLY_Chap.5_实现HTML位置感知
本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容.
FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性.
FollowMeReading系列的博客标题格式为: <书名> 出版社章节数章节名, 方便大家在纸质版书籍中查找.
FollowMeReading系列博文中的内容大部分是原文, 非原文部分前面将有’博主’字样提醒.
感谢<HeadFirst_HTML5>作者 Eric Freeman & Elisabeth Robson
感谢<HeadFirst_HTML5>翻译 林琪 张伶
正文
原文
BULLTE POINTS(要点):
地理位置并不”正式”算是HTML5规范的一部分, 不过可以认为它属于HTML5规范”家族”.
有很多方法来确定你的位置, 这取决于你的设备.
与蜂窝基站三角定位或网络IP相比, GPS是获得位置的一种更为精确的方法.
没有GPS的移动设备可以使用蜂窝基站三角定位来确定位置.
地理定位API有3个方法和一些属性.
地理定位API中的主要方法
getCurrentPosition
, 这是navigator.geolocation
对象的一个方法.getCurrentPosition
有一个必要参数, 即成功处理程序, 还有两个可选的参数, 分别是错误处理程序和选项.positon
对象传递到成功处理程序, 其中包含位置的信息, 包括纬度和经度.position
对象包含一个coords
属性, 这是一个coordinates
对象.coordinates
对象的属性包括纬度(latitude
), 经度(longitude
)和精度(accuracy
).有些设备可能还支持其他
coordinates
属性: 高度(altitude
), 高度精度(altitudeAccuracy
), 朝向(heading
)和速度(speed
).使用
accuracy
属性来确定位置的精确度(单位是米).调用
getCurrentPosition
时, 浏览器必须验证你允许共享你的位置.watchPosition
是geolocation
对象的一个方法, 会监视你的位置, 并在位置改变时调用一个成功处理程序.类似于
getCurrentPosition
,watchPosition
有一个必要参数, 即成功处理程序, 还有两个可选的参数, 分别是错误处理程序和选项.使用
clearWatch
停止监视位置.使用
watchPosition
时, 设备需要更多能量, 所以可能会缩短你的电池寿命.getCurrentPosition
和watchPosition
的第三个参数option
对象有一些属性, 可以设置这些属性来控制地理定位API的行为.maximumAge
属性确定getCurrentPosition
是否使用一个缓存位置, 如果是, 它指定了请求一个全新位置之前这个位置的最大年龄.timeout
属性确定调用错误处理程序之前getCurrentPosition
可以有多长时间来得到一个全新的位置 .enableHighAccuracy
属相向设备提供一个提示, 如果可以得到一个高精度的位置, 需要更多能量.可以使用地理定位API并结合Google Maps API在地图上显示你的位置.