博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5知识点补充—GeoLocation API位置感知
阅读量:6612 次
发布时间:2019-06-24

本文共 1546 字,大约阅读时间需要 5 分钟。

简单使用getCurrentPosition获取当前位置

Geolocation API的基本功能是查询浏览器当前所处的位置。getCurrentPosition方法能够通过JavaScript异步调用为你提供这样的信息。已通常JavaScript的同步运行或程序流程不同的是,这里的调用从本质来说就是异步的。通过异步函数的调用,JavaScript在后台运行该调用,并在完成时返回给某个函数。异步调用的形式能使查询不阻塞页面其他部分的运行。

getCurrentPosition方法获取浏览器的当前位置。它接受一个必须参数(一个成功时的回调函数)和两个可选参数(一个错误回调函数和一个位置选项对象):

getCurrentPositon(successCallback [,errorCallback] [,positionOptions])

getCurrentPosition包括下列参数。

  • successCallback: 处理返回坐标的回调

  • errorCallback: (可选) 处理任何错误的函数

  • options: (可选) options对象用来处理如何获取位置

因为getCurrentPosition是异步的,所以它需要知道成功返回时运行哪个函数并为潜在的错误准备处理函数。示例如下所示:

    
Geolocation

点击这个按钮,获得您的坐标:

使用PositionOptions确定距离

为了更好控制位置信息,你需要使用getCurrentPosition方法的第三个参数PositionOptions

PositionOptions做为一个对象传递给getCurrentPosition方法,它允许你对该方法的行为进行一定的控制。对于此应用类型,该参数能够有一定的帮助作用。例如,如果应用为基于位置的餐厅移动应用,那么通常返回的位置精确范围太大、无法满足需求。getCurrentPositionPositionOptions能够设置三种选项,如下所示:

  • enableHighAccuracy: 布尔值,为真时告诉浏览器希望得到设备能够提供的最精确的wehi只。默认不开启。

  • maximunAge: 浏览器会缓存最近获取的的位置以节约电量。此项定义缓存的最长时限。以毫秒为单位,默认为0。

  • timeout: 浏览器返回位置信息的最大超时,以毫秒为单位。默认值为0。

使用watchPositon跟随移动中的位置

watchPosition方法与getCurrentPositon雷同,接受同样的参数。在调用watchPosition后,浏览器会创建一个后台任务并返回一个引用ID用于监视进程。后台任务会获取当前位置、将位置发送给成功回调函数、设置定时器监视位置。定时器每次触发都会获取一个新的位置,并且对位置进行比较确认是否存在“重大”区别。如果新位置与上次位置差别很大,则会使用新位置信息调用成功函数。该进程将一直运行知道使用监视ID调用clearWatch,或者窗口关闭。下面分别是wathcPositionclearWatch方法的接口。

long watchPosition(successCallback [, errorCallback] [, positionOptions])

参数介绍如下:

  • successCallback: 浏览器确定新位置后,传入位置对象并调用的函数。

  • errorCallback: (可选) 用于处理任何错误的函数。

  • options: (可选) 处理如何获取位置的选项对象。

    void clearWatch(watchID)

参数介绍如下:

  • watchId : 需要终止的监视进程的长整形ID。

转载地址:http://xyoso.baihongyu.com/

你可能感兴趣的文章
Tair学习小记
查看>>
web网站加速之CDN(Content Delivery Network)技术原理
查看>>
sed的基本用法
查看>>
ansible模块批量管理
查看>>
RHEL/Centos7新功能
查看>>
DBA日常工作职责
查看>>
Planner .NET日历日程控件能给你的应用程序提供多种日历日程功能
查看>>
JAVA中的线程机制(二)
查看>>
nginx安装与配置2(转载)
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
【DM642】ICELL Interface—Cells as Algorithm Containers
查看>>
svs 在创建的时候 上传文件夹 bin obj 这些不要提交
查看>>
Tinkphp
查看>>
细说浏览器特性检测(1)-jQuery1.4添加部分
查看>>
Java基础-算术运算符(Arithmetic Operators)
查看>>
C#编程(四十七)----------集合接口和类型
查看>>
【转】关于大型网站技术演进的思考(十二)--网站静态化处理—缓存(4)
查看>>
积跬步,聚小流------Bootstrap学习记录(1)
查看>>
Android官方架构组件LiveData: 观察者模式领域二三事
查看>>
你必须知道的HTTP基本概念
查看>>