Geolocation API——地理定位

navigator.geolocation

  • getCurrentPosition() 触发请求用户共享地理定位信息的对话框

    • 接收3个参数:
    • 1.成功回调函数
      • 会接收到一个Position对象参数,该对象有两个属性:
      • coords(对象)包含下列与位置相关信息:
        • latitude (最常用)以十进制度数表示的纬度
        • longtitude (最常用)以十进制数表示的经度
        • accuracy 经、纬度坐标的精度,以m为单位
        • 部分浏览器还提供如下属性:
        • altitude 以m为单位的海拔高度,无相关数据则值为null
        • altitudeAccuracy 海拔高度的精度,以m为单位
        • heading 指南针的方向,0°表示正北,值为NaN表示没有检测到数据
        • speed 速度m/s,无相关数据则值为null
      • timestamp
    • 2.可选的失败回调函数
      • 接收1个参数,该对象有两个属性:
      • message 保存文本细腻下,解释出错原因
      • code 保存一个数值,表示错误类型:
        • 用户拒绝共享(1)
        • 位置无效(2)
        • 超时(3)
    • 3.可选的选项参数
      • 用于设定信息的类型,可设置选项有3个:
      • enableHighAccuracy 布尔值,表示必须尽可能使用最准确的位置信息
      • timeout 以ms表示的等待位置信息的最长时间
      • maximumAge 表示上一次取得的坐标信息的有效时间(ms),如果时间到则重新取得新坐标信息
// 在地图上绘制用户的位置
navigator.geolocation.getCurrentPosition(function(position){ // 1.成功回调函数
drawMapCenteredAt(position.coords.latitude, positions.coords.longtitude);
}, function(error){ // 2.可选的失败回调函数
// 实际开发中大多数Web应用只会将错误消息保存到日志文件中,而不一定会因此修改用户界面
console.log("Error code: " + error.code);
console.log("Error message: " + error.message);
}, { // 3.可选的选项参数
enableHighAccuracy: true, // 除非确实需要非常精确的信息,否则建议保持false(默认值),电量消耗性能消耗
timeout: 5000,
maximumAge: 25000 // 如果不需要频繁更新用户位置信息,可以设为Infinity,保持使用上一次的坐标信息
});

watchPosition

watchPosition()方法,跟踪用户的位置,它接收的参数与getCurrentPosition()完全相同

它与定时调用getCurrentPosition()效果相同。

第一次调用watchPosition()后会取得当前位置,执行成功回调或错误回调,然后函数等待系统发出位置已改变的信号(不会自己轮询位置)

调用watchPosition()会返回一个数值标识符用于跟踪监控的操作。基于这个返回值可以随时取消监控操作,只要将其传递给clearWatch()方法即可(与使用setTimeout和clearTimeout类似):

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

Geolocation API的更多相关文章

  1. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

    1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是c ...

  2. Geolocation API JavaScript访问用户的当前位置信息

    Geolocation API在浏览器中的实现是navigator.geolocation对象,常用的有以下方法. 1.第一个方法是getCurrentPosition() 调用这个方法就会触发请求用 ...

  3. Geolocation API 原理及方法

    使用IP地址:基于Web的数据库:无线网络连接定位:三角测量:GPS技术:来测量经度和纬度.(综合了所有技术)地理定位的精确度,有很多方法可以定位用户的地理位置,并且每种方法都有不同的精度.桌面浏览器 ...

  4. html5 geolocation API

    清单 1. 检查浏览器支持性if (navigator.geolocation) 清单 2. 单次定位请求 API void getCurrentPosition(updateLocation, op ...

  5. HTML5 Geolocation API工作原理[转载]

    大家都知道,HTML5 Geolocation 可以使用 IP 地址.基于 Web 的数据库.无线网络连接和三角测量或 GPS 技术来确定经度和纬度. 问题: 在一个基于地理位置服务的个人业余项目(小 ...

  6. HTML5 Geolocation API地理定位整理(二)

    Geolocation 实例demo 1.使用watchPosition()监听客户端位置 var watchOne=null; if (navigator.geolocation) { //watc ...

  7. HTML5 Geolocation API地理定位整理(一)

    HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Internet Explorer 9+, ...

  8. HTML5地理定位-Geolocation API

    HTML5提供了一组Geolocation API,来自navigator定位对象的子对象,获取用户的地理位置信息Geolocation API使用方法:1.判断是否支持 navigator.geol ...

  9. 如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介

    如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介 一.总结 一句话总结:Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法 ...

随机推荐

  1. Oracle11g手动创建数据库方法

    Oracle11g手动创建数据库方法 参考网页http://www.th7.cn/db/Oracle/201311/36926.shtml 安装路径 我的安装路径是:E:\app\admin\prod ...

  2. css经典布局—Sticky footers布局

    参考:http://www.w3cplus.com/CSS3/css-secrets/sticky-footers.html 效果:将footer固定到底部.文章内容不足满屏时 footer在底部,超 ...

  3. Mac 安装mongodb

    http://blog.csdn.net/u010311313/article/details/46948995 1.前往官网下载MongoDB压缩包 2.将下载好的压缩包解压,将解压出的文件夹下的内 ...

  4. String.format(String format,Object... args)的用法

    String.format(String format, Object... args)方法详解 以前也看到过很多次这个用法,一直记不牢靠,今天整理一下.   我仅仅举几个例子稍做说明: String ...

  5. Ubuntu 16.04 安装 python3.7 && 修复安装后无法打开 Terminal 的问题

    安装 python3.7 下载安装包 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 解压 tar -xvzf Python ...

  6. puppet的使用:依赖关系整理

    title: date: 2016-05-08 21:45:33 tags: puppet categories: 技术 puppet中的依赖关系整理. 概述 puppet中的依赖关系大概有如下几个: ...

  7. ASP.NET MVC 与NLog的使用

    NLog是一个.NET 下一个完善的日志工具,个人已经在项目中使用很久,与ELMAH相比,可能EAMAH更侧重 APS.NET MVC 包括调试路由,性能等方面,而NLog则更简洁. github: ...

  8. [原] ubuntu 13.10 安装 winqq2013

    安装及下载地址:http://www.longene.org/forum/viewtopic.php?t=4700 ubuntu 13.10 64位系统安装后无法启动qq,因为缺少程序包.解决方案: ...

  9. 前端通信:ajax设计方案(七)--- 增加请求错误监控、前端负载均衡以、请求宕机切换以及迭代问题修复

    距离上个迭代过了很长时间,中间经历了很多事情,也在每个空余时间构思了这个迭代的东西以及下个迭代要做的东西.时间周期稍微长了,望见谅. 而且,至今这个开源库的start也已经到了165个了,会支持关注和 ...

  10. 对html中iframe的研究

    虽然平时不怎么用iframe,但经常在网上听一些前辈说iframe怎样怎样,今天索性对iframe来个大研究,那样就不必去记那些条条框框了,自己体验一遍比看什么都好. 创建两个文件一个index.ht ...