HTML5技术

HTML5 基础 - 彼岸时光(8)

字号+ 作者:H5之家 来源:H5之家 2016-03-08 17:00 我要评论( )

地理定位点击按钮获取当前位置坐标:获取位置 ); 12 function getLocation(){ 13 if (navigator.geolocation){ 14 navigator.geolocation.getCurrentPosition(showPosition); { ; 17 } 18 } 19 function showPositi

地理定位点击按钮获取当前位置坐标:获取位置); 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 的数据存储。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • vue全局配置----小白基础篇 - 星光笔

    vue全局配置----小白基础篇 - 星光笔

    2017-04-28 08:04

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

网友点评
"