HTML5提供了一组Geolocation API,来自navigator定位对象的子对象,获取用户的地理位置信息
Geolocation API使用方法:
1.判断是否支持 navigator.geolocation
2.调用getCurrentPosition(successCallback, errorCallback, options),返回定位数据
参数说明:
参数1:successCallback 成功的回调函数,把position对象作为参数传入,position对象包含定位的相关信息


latitude 纬度数值
longitude 经度数值
speed 运动的速度(假设你在地平线上运动),单位米/秒。
accuracy 精确度单位米
altitude 高度,单位米
altitudeAccuracy 高度的精确地,单位米
heading 运动的方向,相对于正北方向的角度。

参数2:errorCallback 出错的回调函数


error.PERMISSION_DENIED: 用户拒绝对获取地理位置的请求。
error.POSITION_UNAVAILABLE: 位置信息是不可用的。
error.TIMEOUT: 请求用户地理位置超时。
error.UNKNOWN_ERROR: 未知错误。

参数3:options 选项配置


enableHighAccuracy: true 指示浏览器获取高精度的位置
timeout: 5000 指定获取地理位置的超时时间,默认不限时,单位为毫秒
maximumAge: 3000 最长有效期,即位置缓存

代码示例:


<script type="text/javascript">
//支持html5的浏览器才可以使用Geolocation API
//console.log(navigator.geolocation);
if(navigator.geolocation){
//console.log("支持!");
//参数1:
function successFn(position) {
//latitude 纬度
//longitude 经度
console.log("position",position);
console.log(position.coords);
console.log("纬度 ",position.coords.latitude,"经度 ",position.coords.longitude);
} //参数2:
function errorFn(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
console.log("用户拒绝对获取地理位置的请求User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
console.log("位置信息是不可用Location information is unavailable.");
break;
case error.TIMEOUT:
console.log("用户的请求超时The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
console.log("未知错误An unknown error occurred.");
break;
}
} //参数3:
var options = {
// 指示浏览器获取高精度的位置
enableHighAccuracy: true,
// 指定获取地理位置的超时时间,默认不限时,单位为毫秒
timeout: 5000,
// 最长有效期,即位置缓存
maximumAge: 3000
} //返回定位数据,如果出错返回错误信息,链接超时的配置
navigator.geolocation.getCurrentPosition(successFn,errorFn,options);
}
else{
console.log("不支持! Geolocation is not supported by this browser.");
}
</script>

注意:google浏览器在国内无法直接定位

原文地址:https://segmentfault.com/a/1190000014939935

HTML5地理定位-Geolocation API的更多相关文章

  1. 基于浏览器的HTML5地理定位

    基于浏览器的HTML5地理定位 地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML ...

  2. HTML5地理定位(已知经纬度,计算两个坐标点之间的距离)

    事实上,地球上任意两个坐标点在地平线上的距离并不是直线,而是球面的弧线. 下面介绍如何利用正矢公式计算已知经纬度数据的两个坐标点之间的距离.半正矢公式也成为Haversine公式,它最早时航海学中的重 ...

  3. Xamarin Essentials教程地理定位Geolocation

    Xamarin Essentials教程地理定位Geolocation   通过地理定位功能,应用程序可以获取用户的当前地理位置,如经纬度值.利用地理位置,可以在地图上定位,也可以转化物理位置,划分用 ...

  4. HTML5地理定位,百度地图API,知识点熟悉

    推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位  if (navigator.geolocation) {        alert('支持地理定位');   } e ...

  5. 小强的HTML5移动开发之路(18)——HTML5地理定位

    来自:http://blog.csdn.net/dawanganban/article/details/18192091 在前面的<小强的HTML5移动开发之路(2)--HTML5的新特性> ...

  6. HTML5 — 地理定位

    Geolocation:地理定位,获取当前浏览器所在的地理坐标信息(包括经度.纬度.海拔高度.移动速度),实现LBS应用(Location Based Service)——基于定位的服务,如订   餐 ...

  7. 手机端网页使用html5地理定位获取位置失败的解决办法

    网上有很多关于html5 geolocation 获取地理定位的方法,我试了下,只有在IE edge浏览器可以成功获取到,在chrome,firefox,手机端的safari,QQ浏览器,微信浏览器, ...

  8. 第182天:HTML5——地理定位

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

  9. HTML5地理定位API在chrome中不能正常使用

    navigator.geolocation.getCurrentPosition在chrome中不能正常使用. 经测试发现,FQ后就能正常使用,估计是因为chrome 对这个API的实现使用了goog ...

随机推荐

  1. bzoj 2986: Non-Squarefree Numbers【容斥+莫比乌斯函数】

    看到\( 10^10 \)的范围首先想到二分,然后把问题转化为判断\( [1,n] \)内有多少个是某个质数的平方和的数. 所以应该是加上是一个质数的平方的个数减去是两个质数的平方的个数加上是三个质数 ...

  2. bzoj 1625: [Usaco2007 Dec]宝石手镯【背包】

    裸的01背包 #include<iostream> #include<cstdio> using namespace std; int c,n,w,v,f[20001]; in ...

  3. bzoj 4070: [Apio2015]雅加达的摩天楼【spfa】

    明明是个最短路却有网络流一样的神建图= A = 首先要是暴力建图的话最坏有O(nm)条边.所以优化建图. 考虑分块思想,设bs=sqrt(n),对于p大于bs的,直接连边即可,最多有sqrt(n)条, ...

  4. spring 获取配置文件的值

    Spring 获取配置文件的值 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ...

  5. SQL 初级教程学习(三)

    1.SQL JOIN  NNER JOIN:如果表中有至少一个匹配,则返回行 LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的 ...

  6. VK Cup 2018 - Round 1 A. Primal Sport

    A. Primal Sport time limit per test 1.5 seconds memory limit per test 256 megabytes input standard i ...

  7. SQL Server Management Studio 手动导入Excel文件

    SQL Server Management Studio(企业管理器) 手动导入Excel文件,有时间还是非常方便的,省去了写代码的麻烦. 具体步骤如下: 下面附上 创建游标的方法(用于循环读取临时表 ...

  8. Oracle中的表空间

    表空间是什么? Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构是指构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念及它们之间的关系. 表空间是数据库数据 ...

  9. spring实现模板文件下载

    前台 <form id="batchModel0" method="post" action="/common/download-file&qu ...

  10. java数据结构和算法05(二叉树)

    对于树这个数据结构,第一次看到这个树肯定是一脸蒙逼,玛德,树?种树的那个树么?哈哈哈,当然不是,前面我们说过数组添加.删除数据很慢,查询数据很快:而链表添加.删除数据很快,但是查找数据很慢,我们就想啊 ...