Geolocation API
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的更多相关文章
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
		
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是c ...
 - Geolocation API JavaScript访问用户的当前位置信息
		
Geolocation API在浏览器中的实现是navigator.geolocation对象,常用的有以下方法. 1.第一个方法是getCurrentPosition() 调用这个方法就会触发请求用 ...
 - Geolocation API 原理及方法
		
使用IP地址:基于Web的数据库:无线网络连接定位:三角测量:GPS技术:来测量经度和纬度.(综合了所有技术)地理定位的精确度,有很多方法可以定位用户的地理位置,并且每种方法都有不同的精度.桌面浏览器 ...
 - html5 geolocation API
		
清单 1. 检查浏览器支持性if (navigator.geolocation) 清单 2. 单次定位请求 API void getCurrentPosition(updateLocation, op ...
 - HTML5 Geolocation API工作原理[转载]
		
大家都知道,HTML5 Geolocation 可以使用 IP 地址.基于 Web 的数据库.无线网络连接和三角测量或 GPS 技术来确定经度和纬度. 问题: 在一个基于地理位置服务的个人业余项目(小 ...
 - HTML5 Geolocation API地理定位整理(二)
		
Geolocation 实例demo 1.使用watchPosition()监听客户端位置 var watchOne=null; if (navigator.geolocation) { //watc ...
 - HTML5 Geolocation API地理定位整理(一)
		
HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Internet Explorer 9+, ...
 - HTML5地理定位-Geolocation API
		
HTML5提供了一组Geolocation API,来自navigator定位对象的子对象,获取用户的地理位置信息Geolocation API使用方法:1.判断是否支持 navigator.geol ...
 - 如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介
		
如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介 一.总结 一句话总结:Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法 ...
 
随机推荐
- iOS--各种bug详解
			
1.为什么传的参数都对,但是就是请求不下来数据. 答:检查下传的字符串中,是不是有多的空格. 例如: 错误:{"startIndex":"1","en ...
 - 手推SVM
			
推不动了,改日再更!
 - System.Threading.ThreadAbortException: 正在中止线程
			
症状 如果使用 Response.End.Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常.您可以使用 try-ca ...
 - webstorm引用ESLint进行静态代码检查
			
安装 ESLint 基于 Node 平台,所以 Nodejs 是必须安装的,然后通过 npm 安装 ESLint 包,至于全局安装还是作为开发依赖安装,取决于个人. 然后在 WebStorm 中,打开 ...
 - 使用 Scrapyd 管理部署 Scrapy 的一些问题
			
环境:Ubuntu Xenial (16.04) Scrapy 是一个不错的爬虫框架,但是不支持定时执行,常规的做法是使用 crontab 的方式进行定时执行 shell ,当爬虫数量多的时候,管理起 ...
 - Android之密码的显示与隐藏
			
很多应用都是显示与隐藏密码的功能. 之前的项目都没这个功能要求,也没有专门研究这个.最近项目有加这个功能,我这里也刚好整理一下. 我的思路是设置EditText的InputType.代码如下: if ...
 - 一道JS面试题引发的血案
			
刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时. BI项目组长给我看了一道面试别人的JS面试题. 虽然答对了,但把理由说错了,照样不及格. 话不多说,直接上题: var a = 1; s ...
 - 磁盘分区以及Linux目录挂载详解
			
一.背景 一直以来,对于磁盘的分区以及Linux目录挂载的概念都不是很清晰,现在趁着春暖花开周末在家没事就研究了下它们,现在来分享我的理解. 二.概念详解 1.磁盘分区 磁盘分区是把物理的磁盘空间按照 ...
 - wordpress谷歌字体
			
wordpress插件:disable google fonts wordpress插件:Remove Open Sans font from WP core 在主题的functions.php添加 ...
 - Python -- 多媒体编程 -- 音乐播放
			
使用win32库的WMPlayer.OCX开发一个简易的音乐播放器 import sys from PyQt4 import QtGui, QtCore from win32com.client im ...