地理定位点击按钮获取当前位置坐标:获取位置); 12 function getLocation(){ 13 if(navigator.geolocation){ 14 navigator.geolocation.getCurrentPosition(showPosition); { ; 17 } 18 } 19 function showPosition(position){ position.coords.longitude; 21 }
代码解析:
①、检测是否支持地理定位,使用 navigator.geolocation 进行判断。
②、如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户提示一段消息。
③、如果 getCurrentPosition() 运行成功,则向参数 showPosition 中规定的函数返回一个 coordinates 对象。
④、showPosition() 函数获得并显示经度和纬度。
上面的例子是一个非常基础的地理定位脚本,不含错误处理。
(2)、处理错误和拒绝
getCurrentPosition() 方法的第二个参数可用于处理错误,它规定当获取用户位置失败时运行的函数:
错误处理点击按钮获取当前位置坐标:获取位置); 12 function getLocation(){ 13 if(navigator.geolocation){ 14 navigator.geolocation.getCurrentPosition(showPosition,showError); { ; 17 } 18 } 19 function showPosition(position){ position.coords.longitude; 21 } 22 function showError(error){ 23 switch(error.code){ 24 case error.PERMISSION_DENIED: ; 27 case error.POSITION_UNAVAILABLE: ; 30 case error.TIMEOUT: ; 33 case error.UNKNOWN_ERROR: ; 36 } 37 }
错误代码:
①、Permission denied 用户不允许地理定位。
②、Position unavailable 无法获取当前位置。
③、Timeout 操作超时。
④、UNKNOWN_ERROR 未知错误。
在浏览器中打开上面的例子,Chrome 在地址栏中提示系统已阻止此网页跟踪位置,在实际网站中,会弹出提示该网页想要获取位置,可以点击允许或者禁止。在 Firefox 中弹出提示是否允许与此文件共享位置信息,可以点击共享位置信息或者关闭,在实际网站中,弹出是否与此网站共享信息,可以点击共享位置信息或者关闭。IE 默认限制网页运行 ActiveX 控件,该控件主要用于页面中的多媒体资源,用户可以在浏览器中自行设置是否启用该控件,或者提示。点击允许阻止内容后,点击获取位置,在页面底部提示想要跟踪实际位置,可以选择允许一次或者关闭,在实际网站中,则可以选择允许一次,或者点击用于此站点的选项,选择总是允许或者总是拒绝无需通知。
注意:在本地测试,点击按钮后需要较长时间获取当前位置信息,尤其是在 Firefox 中,在 IE 中获取速度比较快,而且位置相对准确,Chrome 和 Firefox 则提示位置信息不可用。
(3)、地理定位其他妙用
①、在地图中显示结果
如需在地图中显示结果,需要访问可使用经纬度的地图服务,比如:百度地图或谷歌地图。
并且使用脚本还可以显示带有标记、缩放和拖曳选项的交互式地图。
②、给定位置的信息
使用地理定位可以在地图上显示用户的位置,地理定位对于给定位置的信息同样很有用处。
比如:更新本地信息、显示用户周围的兴趣点、交互式车载导航系统 (GPS)。
③、实时位置
watchPosition() 方法可以返回用户的当前位置,并继续返回用户移动时的更新位置,这就像汽车上的 GPS。
clearWatch() 用于停止 watchPosition() 方法。
如果需要获取用户事实位置,设备必须支持 GPS 功能,可用于移动设备。
(4)、getCurrentPosition() 方法 - 返回数据
该方法用于获取用户的位置,若成功,则 getCurrentPosition() 方法返回对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回其他下面的属性:
属性 说明
coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米/每秒计
timestamp 响应的日期/时间
7、HTML5 Web 存储
HTML5 Web 存储,即客户端存储数据,他是比 cookie 更好的本地存储方式。
使用 HTML5 可以在本地存储用户的浏览数据,提供了两种在客户端存储数据的新方法:
①、localStorage 没有时间限制的数据存储。
②、sessionStorage 针对一个 session 的数据存储。