HTML5 GeoLocation API(地理定位API)可以获取用户所在的地理位置。由于安全的原因,在使用HTML5 GeoLocation的时候,会弹出对话框让用户决定是否共享他们所在的位置,只有在用户同意的情况下,应用程序才可以获取用户的所在位置。

HTML5 GeoLocation的应用场景非常多。例如可以为用户提供他们所在地区的商品打折信息,你可以请求用户共享他们的地理位置,如果他们同意,应用程序就可以向他们提供该地区的相关产品的打折信息。

HTML5 GeoLocation的另一个应用场景是构建计算行走路程的应用程序。在用户跑步开始的时候,他可以通过手机浏览器打开应用程序,启动记录功能。在用户移动的过程中,应用程序会记录用户经过的距离,还可以把跑步对应的坐标显示在地图上,甚至可以显示海拔位置。

还有一种HTML5 GeoLocation的应用场景是基于GPS导航的社交网络应用。通过它可以看到好友的所在位置。

访问地理位置

我们可以使用浏览器的navigator.geolocation对象通过javascript来访问地理位置。地理位置对象允许我们使用两个函数来访问地理位置:

getCurrentPosition()

watchPosition()

getCurrentPosition()函数以快照的方式返回访问者的所在位置。watchPosition()返回访问者每一次位置发生改变之后的新位置。这两个函数都有下面的3个参数:

成功时的回调函数

失败时的回调函数(可选)

Geo location参数对象(可选)

下面是一个例子,它可以获取用户的所在位置,在getCurrentPosition()方法的参数中只传入了成功时的回调函数。

navigator.geolocation.getCurrentPosition(

function(position) {

alert("your position is: "

+ position.coords.latitude + ", "

+ position.coords.longitude);

}

);

要体验一下上面代码的效果,请点击这个按钮:

地理位置信息是异步获取的。这意味着你在调用getCurrentPosition()或watchPosition()函数时会立即返回。当浏览器发出获取用户的地理位置请求,并且用户同意了浏览器获取器地理位置,成功回调函数被调用。如果有错误发生,将会调用错误回调函数。

位置定位对象

定位对象传入的成功回调函数类似下面的样子:

double latitude // 只读属性

double longitude // 只读属性

double accuracy // 只读属性

double altitude // 只读属性

double altitudeAccuracy // 只读属性

double heading // 只读属性

double speed // 只读属性

latitude和longitude包含位置的地理坐标。accuracy包含精确到米的位置信息。精度越低,定位越精确。

altitude,altitudeAccuracy,heading和speed属性只有在设备浏览器中嵌入有GPS时才有效。没有的话,这些参数都可以设置为null。

altitude属性包含用户的地理位置的海拔高度信息。altitudeAccuracy属性包含精确到米的海拔高度。heading属性用于指明用户移动的方向。它的值是相对于正北的度数(degrees),范围0-360。speed属性包含用户的运动速度,以每秒多少米计算。

错误回调函数

如果获取用户的地理位置失败,传入到getCurrentPosition()或watchPosition()函数中的错误回调函数就会被调用。获取用户地理位置失败的原因可能有下面的几种:

用户拒绝浏览器访问他的地理位置。

设备浏览器无法获取地理位置。例如:运行浏览器的设置在一个隧道中,或在地底下等等,哪里无法接收到GPS卫星的信号。

设备获取地理位置超时。

错误回调函数接收一个带两个参数的对象:

short code // 无符号只读属性

DOMString message // 只读属性

code属性的值有下面3种可能的取值:

1,表示PERMISSION_DENIED

2,表示POSSITION_UNAVAILABLE

3,表示TIMEOUT

message属性包含错误信息的描述文本。这些错误信息对于开发者来说是有用的,但是它们不应该对浏览者开放。

地理位置选项对象

getCurrentPosition()和watchPosition()函数可以传入一个带3个属性参数的地理位置选项对象。选项对象可以包含下面的3个属性:

enableHighAccuracy // true 或 false

timeout // 毫秒

maximumAge // 毫秒

enableHighAccuracy属性可以设置为true或false。设置为true时,如果设备浏览器中有GPS,它将被启用。需要注意的是,GPS是十分耗电的,所以除非在需要的时候,否则不要打开它。

timeout属性指定在获取地理位置的时候,等待多长时间可以定义为超时。超时时会调用错误回调函数。

maximumAge属性指定浏览器缓存一个地理位置多长时间。将它设置为0时,在每次调用成功回调函数时都会获取新的地理位置。

一个完整的HTML5地理定位的例子

下面是一个完整的获取地理位置的例子,包含成功回调函数和失败回调函数,以及一个选项对象:

navigator.geolocation.getCurrentPosition(

function(position) {

alert("your position is: "

+ position.coords.latitude + ", "

+ position.coords.longitude);

}

,

function(errorObject) {

alert("Error obtaining position");

}

,

{

enableHighAccuracy : true,

timeout : 3000,

maximumAge : 60000

}

);

html浏览位置坐标,HTML5教程 | HTML5地理定位(GeoLocation API)相关推荐

  1. html5 地理api,HTML5地理定位-Geolocation API

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

  2. html5 定位 计算距离,HTML5 地理定位+地图 API:计算用户到商家的距离

    背景 最近在做一个类似支付宝口碑商家的功能模块,其中有个功能就是计算出用户与商家的距离,如下图: 支付宝口碑商家页面截图 思路分析 1.商家选取店铺地址,将坐标经纬度存入数据库: 2.移动端定位当前用 ...

  3. 兄弟连html5在线画板,IT兄弟连 HTML5教程 HTML5做到了与之前版本的兼容

    原标题:IT兄弟连 HTML5教程 HTML5做到了与之前版本的兼容 为了保证HTML5能与之前的HTML版本达到最大的兼容,HTML5对一些元素标记的省略.boolean值的属性,以及引号的省略这几 ...

  4. Xamarin Essentials教程地理定位Geolocation

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

  5. html5发展前景-兄弟连,IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生

    原标题:IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生 十年磨一剑,正如我们所看到的一样,HTML5大潮正来势汹汹.但也正如我们所知道的一样,HTML5是一种技术标准,它的语义 ...

  6. 下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

    原标题:IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1 HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证.并不是所有的主浏览器都支持新的input类型,不过我们可 ...

  7. 一个html基本写法,HTML5教程:HTML5的基础写法

    HTML5教程:HTML5的基础写法 对比一下XHTML 1.0 Transitional的规范,html5基本上没有XHTML 1.0 Transitional严格的要求,并且简化了很多东西. •文 ...

  8. linux脚本获取经纬度,我想在命令行上获得linux设备的精确经纬度。就像HTML5中的地理定位。我的眉毛没法接触...

    我想从我的Linux设备发送当前Lat Long的电子邮件.我试过在HTML5浏览器中进行地理定位,效果很好.但我希望它在命令行上.我尝试了很多选项,比如curl,geoip,通过IP访问一些网站,但 ...

  9. HTML5 新特性 - 地理定位(基于高德地图API)

    定位的基础与原理 IP定位 运营商基站定位 GPS定位 地理定位的实现 地理定位API允许用户向web应用程序提供他们的位置(经纬度).但是这个操作需要用户授权. 获取地理定位的相关代码如下: let ...

最新文章

  1. nagios 邮件报警脚本
  2. LINUX不能ping域名, 能ping ip, 添加DNS解析
  3. 3分钟配置好静态路由
  4. linux shell 域名 ip,Shell脚本一种检查Linux中域名和IP地址所有权信息、检查多个域名的到期日期工具...
  5. 一个简单的pygame接金币游戏
  6. 【转载】三极管,场效应管 工作原理小结
  7. 4位先行进位电路 logisim_你真的了解74系列集成电路吗?让我帮你总结一下
  8. 复盘线上的一次OOM和性能优化!
  9. 【转】Django 数据库的操作
  10. Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
  11. idea打开hierarchy面板
  12. 莫比乌斯反演(bzoj 2301: [HAOI2011]Problem b)
  13. 使用NFS搭建WEB服务器集群
  14. win10删除开机密码_教你电脑如何设置开机密码_win10教程
  15. yacc 简易计算机规则,Lex Yacc 学习笔记(2)- 简单计算器
  16. 推荐一个小工具 -- 微信QQ防撤回
  17. 丰厚资本杨守彬:创业就是从地狱到天堂,路过人间而已
  18. ISAC(internet Speech Audio Codec):
  19. 利用网校源码进行网校系统开发可以解决哪些问题
  20. 含并行连结的网络(GoogLeNet)

热门文章

  1. python 连接数据库对中文读取超过_python 处理中文 读取数据库输出全是问号
  2. python递归题目_Python递归的问题?
  3. 高校一副教授2021年全部收入清单来了!对比清华大学教授工资单 ,差距究竟大不大?...
  4. 合种樟子松、云杉和胡杨
  5. 1.4 微生物对人类社会的影响
  6. 随机森林RandomForest挖掘生物标记预测分类
  7. 微生物组——宏基因组分析专题培训开课啦!!!
  8. makefile经验笔记
  9. python使用np.argsort对一维numpy概率值数据排序获取倒序索引、获取的top索引(例如top2、top5、top10)索引二维numpy数组中对应的原始数据:原始数据概率最大的头部数据
  10. R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_ellipse函数在数据簇或数据分组的数据点周围添加椭圆(ellipse)进行注释(对椭圆包围的区域进行着色为阴影区域)