在HTML5的新标准中,有了用于地图的使用地理位置定位的api,其由geolocation 对象来进行担任相关的使用。
一、简介
首先简单的介绍一下官方对于geolocation 对象的介绍:
geolocation
对象:地理位置 API,通过接口可以使用javascript定位当前用户所在位置,其是window对象中浏览器对象的内置对象(即由navigator.geolocation提供)。其允许用户向 Web 应用程序提供他们的位置。同时出于隐私考虑,报告地理位置前会先请求用户许可。如果该对象存在,那么地理位置服务可用。
下面附上用于判断兼容使用的JS和兼容浏览器:
if ("geolocation" in navigator) {
/* 地理位置服务可用 */
}else{
/* 地理位置服务不可用 */
}
二、使用:
geolocation
对象封装了获取当前用户所在位置的方法和属性,我们可以通过这些方法和属性进行我们需要的操作
(1)获取geolocation 对象方式:
window.navigator.geolocation;
如果不兼容获取的对象为null;
(2)获取当前定位:
可以调用getCurrentPosition()函数获取用户当前定位位置。这会异步地请求获取用户位置,并查询定位硬件来获取最新信息。
语法:navigator.geolocation.getCurrentPosition(success,error,options)
参数:
success:成功得到位置信息时的回调函数,使用Position对象作为唯一的参数。
error:可选,获取位置信息失败时的回调函数,使用PositionError对象作为唯一的参数,这是一个可选项。
options:可选,一个可选的PositionOptions对象。
当定位被确定后,定义的回调函数success
就会被执行。第二个回调函数error
,当有错误时会被执行。第三个参数options
也是可选的,您可以通过该对象参数设定最长可接受的定位返回时间、等待请求的时间和是否获取高精度定位。
window.navigator.geolocation.getCurrentPosition(function (position) {
do_something(position.coords.latitude,position.coords.longitude); // 自定义的一个函数do_something
});
上述示例中,当获取位置后do_something()
函数会被执行。
关于失败的回调函数其是以PositionError
为第一个参数。
functionerrorCallback (error) {
alert('ERROR('+error.code+'): '+error.message);
};
注:目前谷歌提供的js的api无法访问。
(3)监视定位:
可以设定一个回调函数来响应定位数据发生的变更(设备发生了移动,或获取到了更高精度的地理位置信息),通过watchPosition()函数实现该功能(即Geolocation.watchPosition()
用于注册监听器,在设备的地理位置发生改变的时候自动被调用)。它与getCurrentPosition()
接受相同的参数,但回调函数会被