第十一章 获取地理位置信息-《HTML5+CSS3权威指南》
本章主要是介绍geolocation API来获取用户的地理位置信息。附带页面上使用Google地图的基本方法(这我就不讲了,google有很好的API使用说明书)。
Geolocation是window.navigator对象新增加的属性。Geolocation API存在三个方法。
1.获取地理位置
2.持续监视当前地理位置的信息
3.停止获取用户的地理位置信息
获取当前地理位置信息
1.可是使用getCurrentPosition方法来获取用户地理位置信息,使用方法是:
1 | void getCurrentPosition(onSuccess, onError,options); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* 一个完整的获取地理位置信息代码段 */ navigator.geolocation.getCurrentPosition( /*成功获取片断*/ function (position){ var latitude = position.coords.latitude; //获取当前位置的纬度 var longitude = position.coords.longitude; //获取当前位置的精度 document.getElementById( 'map' ).value = '纬度:' +latitude+ '精度:' +longitude; }, /*获取地质位置错误片断*/ function (error){ var errorType={1: '位置服务器拒绝' ,2: '获取不到位置' ,3: '获取信息超时' }; alert(errorType[error.code]+ ":获取地理位置错误,请检查您的网络是否通畅!" ); }, /* 超时处理*/ { /*设置缓存有效时间是2分钟,单位是毫秒*/ maximumAge:60*1000*2, /*5秒内没有回获取信息视为超时*/ timeout:5000 } ); |
如果获取地理位置成功的话,position有这样几个属性:
latitude 当前地理位置的纬度
longitude 当前地理位置的精度
altitude 当前海拔高度 不能获取时为null
accuracy 获取的纬度或经度的精度(以米为单位)
altitudeAccurancy 获取海拔高度的精度(以米为单位)
heading 设备的前进方向。用面朝正北方的顺时针旋转角度来表示(不能获取时为null)
speed 设备的前进速度(单位:米/秒)
timestamp 获取地理时间
如果获取地理位置失败的话,Error对象有以下属性:
code属性:有三个值(1.用户拒绝了位置服务 2.获取不到位置信息 3.获取信息超时错误)
(还没弄明白,后面是书的原文)message属性:包含了一个字符串,在该字符串中包含了错误信息
再来看看最后一个可以省略参数包含那些属性
enableHighAccuracy 要求高精度的地理位置,这个参数在很多设备上没有用,所以大多数把设为默认
maximumAge 对地理位置的获取操作做一个超时限制(单位毫秒)
持续监视当前地理位置信息
使用watchPosition方法来持续获取用户信息当前地理位置,它会定期自动获取,该方法定义如下:
1 | int watchCurrentPosition(pnSuccess,onError,options); |
该方法三个参数的说明和使用方法和getCurrentPosition方法一样。返回一个数字,这个数字的使用方法与javasctipt脚本中setInterval方法的返回值参数类似。
停止获取用户的地理位置信息
可以使用
1 | vodi clearWatch(watchId); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)