Board logo

标题: 使用 HTML5 Geolocation 构建基于地理位置的 Web 应用(2)HTML5 Geolocation API更新 [打印本页]

作者: look_w    时间: 2018-10-17 18:56     标题: 使用 HTML5 Geolocation 构建基于地理位置的 Web 应用(2)HTML5 Geolocation API更新

位置请求在 HTML5 Geolocation 功能中,位置请求有两种:
单次位置请求
在许多应用中,只检索或请求一次用户位置即可。例如前面提到的,午餐时间到了,要查询用户附近餐馆的特色菜及其价格和评论,就可以使用清单 2 所示的 HTML5 Geolocation API。
清单 2. 单词定位请求 API
1
void getCurrentPosition(updateLocation, optional handleLocationError, optional options);




这个函数接受一个必选参数和两个可选参数。
重复性位置更新请求
有时候,仅获取一次用户位置信息是不够的。比如用户正在移动,随着用户的移动,页面应该能够不断更新显示附近的餐馆信息,这样,所显示的餐馆信息才对用户有意义。幸运的是,HTML5 Geolocation 服务的设计者已经考虑到了这一点,应用程序可以使用如下 API 进行重复性位置更新请求,当监控到用户的位置发生变化时,HTML5 Geolocation 服务就会重新获取用户的位置信息,并调用 updateLocation() 函数处理新的数据,及时通知用户。
清单 6. 重复性位置更新请求 API
1
void watchPosition(updateLocation, optional handleLocationError, optional options);




这个函数的参数跟前面提到的 getCurrentPosition 函数的参数一样,不再累赘介绍。
关闭更新也很简单,如果应用程序不需要再接收用户的位置更新消息,只需要使用 clearWatch() 函数。参照清单 7 给的例子。
清单 7. watchPosition 和 clearWatch 的使用
1
2
3
4
var watchId = navigator.geolocation.watchPosition(updateLocation, handleLocationError);
// 基于持续更新的位置信息实现一些功能…
// 停止接收位置更新消息
navigator.geolocation.clearWatch(watchId);






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0