HTML5 地理位置定位API(4)

地理定位(geolocation)是最令人兴奋,而且得到了广泛支持的一个新API。通过这套API,

JavaScript代码能够访问到用户的 当前位置信息。当然,访问之前必须得到用户的明确许可,即同意在页面共享其位置信息。

如果页面尝试访问其地理定位信息,浏览器就会显示一个对话框,请求用 户许可共享其位置信息。

Geolocation API在浏览器中的实现是navigator.geolocation对象,这个对象包含3个方法。第一个是getCurrentPosition(),

调用这个方法就会触发请求用户共享地理定位信息的对话框。这个方法接收3个参数:成功回调函数、可选的失败回调函数和可选的选项对象。

其中,成功返回调用函数会接收到一个Position对象参数,该参数有两个属性:coords和timestamp。而coords对象中将包含下列与位置相关的信息。

  • latitude:以十进制度数表示的纬度。
  • longitude:以十进制度数表示的经度。
  • accuracy:经、纬度坐标的精度,以米为单位。有些浏览器还可能会在coords对象中提供如下属性。
  • altitude:以米为单位的海拔高度,如果没有相关数据则值为null。
  • altitudeAccuracy:海拔高度的精度,以米为单位,数值越大越不精确。
  • heading:指南针的方向,0°表示正北,值为NaN表示没有检测到数据。
  • speed:速度,每秒移动多少米,如果没有相关数据则为null。

在实际开发中,latitude和longitude是大多数Web应用最常用到的属性。例如,以下代码将在地图上绘制用户的位置:

navigator.geolocation.getCurrentPosition(function(position) {
    drawMapCenteredAt(position.coords.latitude, position.coords.longitude);
});

以上介绍的是成功回调函数。 getCurrentPosition()的第二个参数,即失败回调函数,在被调用的时候也会接收到一个参数。

这个参数是一个对象,包含两个属 性:message和code。其中,message属性中保存着给人看的文本消息,解释为什么会出错,

而code属性中保存着一个数值,表示错误的类 型:用于拒绝共享(1)、位置无效(2)或者超时(3)。实际开发中,

大多数Web应用只会将错误消息保存到日志文件中,而不一定会因此修改用户界面。例 如:

navigator.geolocation.getCurrentPosition(function(position){
    drawMapCenteredAt(position.coords.latitude, position.coords.longitude);
}, function(error) {
    console.log("Error code: " + error.code);
    console.log("Error message: " + error.message);
});

getCurrentPosition()的第三个参数是一 个选项对象,用于设定信息的类型。可以设置的选项有三个:

enableHighAccuracy是一个布尔值,表示必须尽可能使用最准确的位置信 息;timeout是以毫秒数表示的等待位置信息的最长时间;

maximumAge表示上一次取得的坐标信息的有效时间,以毫秒表示,如果时间到则重新获 得最新坐标信息。例如:

navigator.geolocation.getCurrentPosition(function(position){
    drawMapCenteredAt(position.coords.latitude, position.coords.longitude);
}, function(error) {
    console.log("Error code: " + error.code);
    console.log("Error message: " + error.message);
}, {
    enableHighAccuracy: true,
    timeout: 5000,
    maximumAge: 25000
});

这三个选项都是可选的,可以单独设置,也可以与其它选项一起 设置。除非确实需要非常精确的信息,

否则建议保持enableHighAccuracy的false值(默认值)。将这个选项设置为ture需要更长的时 候,

而且在移动设备上还会导致消耗更多电量。类似的,如果不需要频繁更新用户的位置信息,那么可以将maximumAge设置为Infinity,

从而始 终都使用上一次的坐标信息。

如果你希望跟踪用户的位置,那么可以使用另一个方法watchPosition()。这个方法接收的参数与 getCurrentPosition()效果相同。

在第一次调用watchPosition()方法后,会取得当前位置,执行成功回调或者错误回调。然 后,watchPosition()就地等待位置已改变的信号(它不会自己轮询位置)。

调用watchPosition()会返回一个数值标识符,用于跟踪监控的操作。基于这个返回值可以取消监控操作,

只要将其传递给clearWatch()方法即可(与使用setTimeout()和clearTimeout()类似)。例如:

var watchId = navigator.geolocation.watchPosition(function(position){
    drawMapCenteredAt(position.coords.latitude, position.coords.longitude);
}, function(error) {
    console.log("Error code: " + error.code);
    console.log("Error message: " + error.message);
});
clearWatch(watchId);

以上例子调用了watchPosition()方法,将返回的标识符保存在了watchId中。然后,又将watchId传给了clearWatch(),取消了监控操作。

支持地理定位的浏览器有IE9+、Firefox 3.5+、Opeara 10.6+、Safari 5+、Chrome、iOS版Safari、Android版WebKit。

时间: 2024-08-06 00:59:26

HTML5 地理位置定位API(4)的相关文章

HTML5 地理位置定位API(3)

HTML5 地理位置定位实例 这篇文章主要为大家介绍了HTML5地理定位的方法,实例讲述了html5获取坐标完整实现过程, 并对比不同浏览器运行效果给出参考结果,需要的朋友可以参考下 本文实例讲述了html5获取地理定位的方法,分享给大家供大家参考.具体方法如下: html5 获取坐标代码如下: 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <title>test1.html</title> <meta

HTML5 地理位置定位API(2)

HTML5 Geolocation API (地理位置应用程序接口) 目前PC浏览器支持情况: Firefox 3.5+Chrome 5.0+Safari 5.0+Opera 10.60+Internet Explorer 9.0+ 手机支持情况: Android 2.0+iPhone 3.0+Opera Mobile 10.1+Symbian (S60 3rd & 5th generation)Blackberry OS 6Maemo 检测浏览器是否支持: if (navigator.geol

HTML5 地理位置定位(HTML5 Geolocation)原理及应用

地理位置(Geolocation)是 HTML5 的重要特性之中的一个,提供了确定用户位置的功能,借助这个特性可以开发基于位置信息的应用. 今天这篇文章向大家介绍一下HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况. 在訪问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,假设您同意 Chrome 浏览器与站点共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,预计您所在的位置. 然后,浏览器会与请求使用您位置的站点共享您的位

HTML5 地理位置定位(1)

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况. 在访问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,如果您允许 Chrome 浏览器与网站共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,估计您所在的位置.然后,浏览器会与请求使用您位置的网站共享您的位置. H

关于HTML5 地理位置geolocation API 的一些事

大学毕业,到进入这个行业也已经有5个多月了,接触HTML5 Webapp开发也有5个多月了,趁着周末写一些关于在开发过程中使用HTML5 Geolocation API的一些心得. 一.浏览器支持 Internet Explorer 9+, Firefox, Chrome, Safari 和 Opera 支持Geolocation(地理定位). 移动端:Android 2.0+,iPhone 3.0+,Opera Mobile 10.1+,Symbian,Blackberry OS 6,Maem

HTML5获取地理位置定位信息

HTML5提供了地理位置定位功能(Geolocation API),能确定用户位置,我们可以借助HTML5的该特性开发基于地理位置信息的应用.本文结合实例给大家分享如何使用HTML5,借助百度.谷歌地图接口来获取用户准确的地理位置信息. 如何使用HTML5地理位置定位功能 定位功能(Geolocation)是HTML5的新特性,因此只有在支持HTML5的现代浏览器上运行,特别是手持设备如iphone,地理定位更加精确.首先我们要检测用户设备浏览器是否支持地理定位,如果支持则获取地理信息.注意这个

Javascript学习总结 - html5实现定位地理位置

简述 最近在苦逼学习Javascript,并且是有任务需要去完成的,因此就有一个想法要总结记录一下自己的学习成果.这次的总结主题是html5实现定位地理位置的任务,结合原生的Javascript实现此功能. html5 什么是html5? 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改版本,2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成,命名为html5. HTML5草案的前身名为 Web Applications

基于浏览器的HTML5地理定位

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理和一个基于浏览器的HTML5地理定位的小demo,获取浏览器经纬度,并用腾讯地图(大家可以选择自己喜欢的地图)显示出来,实现的最终效果如下图所示: 一.检测浏览器是否支持: if (navigator.geolocation) { //console.log("浏览器支持!"); } else

html5 Geolocation(地理位置定位)学习

1.html5 Geolocation html5 Geolocation API 使用很简单,请求一个位置信息,如果用户同意,浏览器会返回一个位置信息,该位置是通过用户的底层设备(手机,电脑) 提供给浏览器.位置信息一般包括经度和纬度信息! 经度和纬度坐标信息一般由两种方式表示 a.十进制表示:39.17222 b.DMS角度格式表示:39°10'20" 2.位置从哪里来 html5 Geolocation API不指定设备使用哪种底层技术来定位应用程序的用户,相反,它只是用于检索位置信息的A