HTML5增加的新功能,获取地理位置信息,如果浏览器支持且设备有定位功能,就能够直接使用这组API来获取当前信息位置。该Geolocation API可以应用于移动设备中的地理位置。

  • Geolocation API的基础知识

  在HTML5中,为window.navigator对象新增了一个geolocaation属性,可以使用Geolocation API来对该属性进行访问。window.navigator对象的geolocation属性存在以下三个方法。

  1 .取得当前地理位置 getCurrentPositon(onsuccess,onError,options)

  其中第一个参数为获取当前地理位置信息成功时所执行的回调函数,第二个参数为获取当前地理位置信        息失败时所执行的回调函数,第三个参数为一些可选属性的列表。其中第二,第三个参数为可选属性。

  • 1.1 getCurrentPosition方法中的第一个参数为获取当前地理位置信息成功时所执行的回调函数。该参数的        使用方法如下。在获取地理位置信息成功时执行的回调函数中,用到了一个参数position,它代表一个position对象。

    navigator.geolocation.getCurrentPosition(function(position){

      //获取成功时的处理

    })

  • 1.2 getCurrentPosition方法中的第二个参数为获取当前地理位置信息失败时所执行的回调函数。该回调函        数使用一个error对象作为参考,该对象具有以下两个属性:

  code属性:用户拒绝了位置服务(属性值为1)

      获取不到位置信息(属性值为2)

       获取信息超时错误(属性值为3)

      message属性:message属性为一个字符串,在该字符串中包含了错误信息,这个错误在开发和调试时              将很有用。

  在getCurrentPosition方法中使用第二个参数来捕获错误信息的具体使用方法如下: 

 navigator.geolocation.getCurrentPosition(function(position){
var coords = position.coords;
showMap(coords.latitude,coords.longitude,coords.accuracy);
},
//捕获错误信息
function(error){
var errorTypes = {
1:'位置服务被拒绝',
2:'获取不到位置信息',
3:'获取信息超时',
};
alert(errorTypes[error.code] + ": 不能确定你的当前地理位置");
}
)
  • 1.3 getCurrentPosition方法中的第三个参数可以省略,它是一些可选属性的列表,这些可选属性如下:

  enableHighAccuracy:是否要求高精度的地理位置信息

  timeout:对地理位置信息的获取操作做一个超时限制(单位为毫秒)

  maximumAge:对地理位置信息进行缓存的有效时间(单位为毫秒)

  对于这些可选属性的具体位置方法如下:

 navigator.geolocation.getCurrentPositon(function(position){
},
function(error){
},
//以下为可选属性
{
//设置缓存有效时间为2分钟
maximumAge:60*1000*2,
//5秒钟内未获取到地理位置信息则返回错误
timeout:5000
)

  2.持续监视当前地理位置的信息 watchCurrentPositon(onsuccess,onError,options)

  该方法三个参数的说明与使用方法和getCurrentPosition方法的参数说明与使用方法相同。该方法返回一个数字,这个数字的使用方法与Javascript脚本中setInterval方法的返回参数的使用方法类似,可以被clearWath方法使用,停止对当前地理位置信息的监视。

  3.停止获取当前用户的地理位置信息 clearWatch(watchId)

  使用该方法可以停止对当前用户的地理信息的监视。该方法的参数为调用watchCurrentPosition方法监视地理位置信息时的返回参数。

  • position对象

  如果获取地理位置信息成功,则可以在获取成功后的回调函数中通过访问position对象的属性来得到这些地理位置信息。position对象具有如下这些属性:

  latitude:当前地理位置的纬度。

  longitude:当前地理位置的经度。

  altitude:当前地理位置的海拔高度(不能获取时为null)

  accuracy:获取到的纬度或经度的精度

  altitudeAccuracy:获取到的海拔高度的精度

  heading:设备的前进方面。用面朝正北方向的顺时针旋转角度来表示(不能获取时为null)

  speed:设备的前进速度

  timestamp:获取地理位置信息时的时间。

下面用getCurrentPositon方法获取当前位置的地理信息

  

  function showObject(obj, k) {
//递归显示object
if (!obj) {
return;
}
for (var i in obj) {
if (typeof(obj[i]) != "object" || obj[i] == null) {
for (var j = 0; j < k; j++){
document.write('&nbsp;&nbsp;&nbsp;&nbsp;');
}
document.write(i + " : " + obj[i] + "<br />");
} else {
document.write(i + " : " + "<br />");
showObject(obj[i],k+1);
}
}
}
function get_location(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(show_map,handle_error,{enableHighAccuracy:true,maximumAge:1000})
} else {
alert('你的浏览器不支持使用HTML 5来获取地理位置信息。');
}
} function handle_error(err){
//错误处理
switch(err.code){
case 1:
alert('位置服务被拒绝');
break;
case 2:
alert('暂时获取不到位置信息');
break;
case 3:
alert('获取信息超时');
break;
default:
alert('未知错误');
break;
}
} function show_map(position){
//显示地理信息
var latitude = position.coords.latitude;
var longititude = position.coords.longititude;
showObject(position,0);
} get_location();

HTML5 获取地理位置信息的更多相关文章

  1. html5获取地理位置信息API

    html5获取地理位置信息API 在HTML5中,可以看下如何使用Geolocation API来获得用户的地理位置信息,如果该浏览器支持的话,且设备具有定位功能,就能够直接使用这组API来获取当前位 ...

  2. HTML5获取地理位置信息

    <!DOCTYPE html> <html> <head> <title>Location</title> <meta charset ...

  3. HTML5获取地理位置信息并在Google Maps上显示

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  4. jQuery Mobile + HTML5 获取地理位置信息

      这个代码也非常简单,核心是HTML5中GeoLocation API,函数原型定义如下: void getCurrentPosition(in PositionCallback successCa ...

  5. Html5 Geolocation获取地理位置信息

    Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置.基于此特性可以开发基于位置的服务应用.在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用. ...

  6. Html5 Geolocation获取地理位置信息(转)

    Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置.基于此特性可以开发基于位置的服务应用.在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用. ...

  7. AngularJS进阶(二十)HTML5实现获取地理位置信息并定位功能

    HTML5实现获取地理位置信息并定位功能 注:请点击此处进行充电! 前言 这篇文章主要介绍了HTML5实现获取地理位置信息并定位功能,本文讲解了原生HTML5.百度地图.谷歌地图等三种获取理位置信息并 ...

  8. html5实现获取地理位置信息并定位

    这里主要讲h5实现获取地理位置信息并定位功能,本文讲解了原生h5,百度地图,谷歌地图等三种获取地理信息并定位的方法,需要的朋友可以参考下: h5提供了地理位置功能(Geolocation API),能 ...

  9. 【Demo】HTML5获取地理位置

    HTML5获取地理位置简单实例 实例1--获取地理位置的经纬度: <!DOCTYPE html> <html> <head>  <meta charset=& ...

随机推荐

  1. 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"

    [深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...

  2. 感恩回馈,新鲜出炉的《ASP.NET MVC 5框架揭秘》免费赠送

    上次针对<ASP.NET Web API 2框架揭秘>举办了一次评论赠书活动,很多人问我相同的活动要不要针对<ASP.NET MVC 5框架揭秘>(阅读样章)再来一次,为此我向 ...

  3. Util应用程序框架公共操作类(九):Lambda表达式扩展

    上一篇对Lambda表达式公共操作类进行了一些增强,本篇使用扩展方法对Lambda表达式进行扩展. 修改Util项目的Extensions.Expression.cs文件,代码如下. using Sy ...

  4. ANNOTATION PROCESSING 101 by Hannes Dorfmann — 10 Jan 2015

    原文地址:http://hannesdorfmann.com/annotation-processing/annotationprocessing101 In this blog entry I wo ...

  5. .NET 中Barcode Library的应用二

    .NET中Barcode Library的应用二 介绍 在上一篇中我已经简单介绍了这个函数库(条形码应用之一------------函数库的简介).在这一篇中我将使用这个库提供更多的操作,希望对大家有 ...

  6. java 中多线程之间的通讯之等待唤醒机制

    wait notify () nitifyAll () 都使用在同步中,因为要对持有监视器(锁)的线程操作 所以要使用在同步中,因为只有同步才具有锁 为什么这些操作线程的方法要定义object类中呢 ...

  7. Web接口测试工具---Poster与Postman

    工作当中有不少时间在编写和维护接口自动化测试用例.打算先整理一些接口相关工具的使用. 简单对接Web口测试的相关工具/技术做个划分. HTTP/SOAP协议接口的功能测试: 1.浏览器URL(GET请 ...

  8. [Java 基础]基础语法

    Java代码基本规范 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应 ...

  9. 将Json数据转换为ADO.NET DataSet对象

    Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据.但是有些情况下DataSet Conver ...

  10. iframe在iphone6 plus的safari下子页面的宽度不受父页面控制的bug

    这是想要的效果: 样式设置是iframe外面的宽度为100%,iframe的宽度为父元素的90%,高度为宽度 除以1.6,固定比例, 正常显示就是上面的样子,但是,问题出现在iphone特定手机特定版 ...