Baidu
sogou

因为Geolocation获取当前定位除了浏览器的支持,还需要硬件设备的支持,上述代码在不支持该操作的设备上运行的结果如图3-8和图3-9。

普通PC提示对话框
图3-8普通PC提示对话框1
普通PC提示对话框2
图3-9普通PC提示对话框2

现在我们在Mac电脑上用浏览器打开demo3-6,结果如图3-10和图3-11所示。

Mac提示对话框
图3-10Mac提示对话框1
Mac提示对话框
图3-11Mac提示对话框2

在移动端用浏览器打开demo3-6,结果如图3-12和图3-13所示。

Geolocation API移动提示对话框
图3-12移动提示对话框1

图3-13移动提示对话框2

以上内容演示了Geolocation获取当前位置的过程,值得一提的是,该案例获取的是当前位置的地理坐标,所以位置变化会导致坐标变化。

多学一招:监视移动设备的位置变化

接下来要介绍一个名词LBS,LBS是基于位置的服务,它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标)。

在正文中演示的getCurrentPosition()方法只在调用时会得到位置信息,在LBS应用中,检测用户位置变化是非常常见的需求。一个做法是通过循环调用的方式去检测位置变化。

例如,设置了一个10秒作为获取位置的间隔,这样做的缺点是:编程人员无法知道用户当前的速度,如果在飞机高铁上,10秒可能已经走了很长一段距离,这样提供给用户的位置信息可能是延迟的,如果将间隔设置的很短,又会非常耗电耗能,如果用户长时间没动,那这些查询都是无用的。

为了解决这个问题,Geolocation还提供了watchPosition()方法,可以让系统通知编程人员用户的位置发生了变化。

watchPosition()方法和getCurrentPosition方法在调用上类似,但方法功能与getCurrentPosition的区别是非常明显的。调用该函数时会返回一个watch ID,这个ID和setInterval()函数返回的ID类似,可以用于清除此次的监视操作。

watchPosition()方法也接受相同的三个参数,success、error回调以及一个PositionOptions对象。





猜你喜欢:

HTTP模块常用的API有几个?

matplotlib是什么?matplotib的3中API介绍

Web API和API有什么关系?

API服务网关实现之APISIX安装和部署

大阳城app官网入口前端与移动开发培训课程

最新资讯

相关阅读

0 分享到:

Java高级软件工程师课程javaee

Python大数据课程python

web前端课程全薪升级V8.5web

AI+设计课程design

大数据培训班cloud

软件测试培训课程test

c

新媒体运营培训课程netmarket

产品经理培训课程pm

linux培训班Linux

影视制作培训movies

智能机器人开发robot

电商视觉设计uids

人工智能培训课程Python

集成电路应用开发(嵌入式)培训课程jdbc

北京校区

    在线咨询 我要报名
    和我们在线交谈!
    Baidu
    sogou