JavaScript地理位置信息API


Posted in Javascript onJune 11, 2016

对于一个Web开发程序员来说,开发工作中一个最有意思的方面就是获取地理位置信息;试想一下,浏览你的网页的用户是在什么地方?程序员可以根据用户的地理位置信息来调整网站的语言、特定产品介绍等。下面我们将要演示的就是通过浏览器里JavaScript地理位置信息API来获取详细地理信息!

检查你的浏览器是否支持地理位置信息API

目前主流的浏览器都已经对JavaScript地理位置信息API有了较好的支持。但如果你还不放心,那么,确认地理位置信息API支持情况最好的方式是浏览器的功能特征测试。

if("geolocation" in navigator) {
 //w00t!
}
else {
 alert("很不幸!你的浏览器并不支持Geolocation API功能");
}

对于判断浏览器是否支持地理位置API,最主要的就是看看navigator.geolocation这个对象,使用in,而不是简单的使用if(navigator.geolocation),这一点非常重要,因为后者有可能会因此初始化地理位置信息对象,从而占用/锁定了设备资源。

查询地理位置信息

这个navigator.geolocation.getCurrentPosition方法是获取详细位置信息最关键的一个接口:

if("geolocation" in navigator) {
 navigator.geolocation.getCurrentPosition(function(position) {
 console.log(position);
 });
}

一旦你调用了这个方法(如果请求成功,它会执行你在参数里提供的回调方法),浏览器会询问用户是否允许程序获取他们的地理位置信息。

当用户运行网页获取他们的位置信息后,浏览器就可以开始读取地理信息,它会返回给你一个位置信息对象,对象的结构基本是这样的:

// "Position" object
{
 coords: { "Coordinates" object
 accuracy: 65,
 altitude: 294.4074401855469,
 altitudeAccuracy: 10,
 heading: -1,
 latitude: 43.01256284360166,
 longitude: -89.44531987692744,
 speed: -1
 },

 timestamp: 1429722992094269
}

如果你觉得这些地理位置信息(地理经纬度坐标)还不够充足,还想要这些地理坐标属于哪个国家、城市,则你需要再调用其它的第三方数据库——这里我们就不细述了。
这个地理位置信息API在很多移动应用里是最常见的API运用,作为Web程序员,它应该是你必须具备的一项知识技巧。幸运的是,目前所有流行的浏览器都支持了这种技术。

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
网页中CDATA标记的说明
Sep 12 Javascript
js内置对象 学习笔记
Aug 01 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 Javascript
jQuery中mouseover事件用法实例
Dec 26 Javascript
javascript中indexOf技术详解
May 07 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 #Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 #Javascript
javaScript知识点总结(必看篇)
Jun 10 #Javascript
浅谈javascript基础之客户端事件驱动
Jun 10 #Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 #Javascript
老生常谈JavaScript数组的用法
Jun 10 #Javascript
jquery输入数字随机抽奖特效的简单实现代码
Jun 10 #Javascript
You might like
牡丹941资料
2021/03/01 无线电
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
利用Python进行异常值分析实例代码
2017/12/07 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python字符串的一些操作方法总结
2019/06/10 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
小学教师培训方案
2014/06/09 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
入党政审材料范文
2014/12/24 职场文书
给老婆的保证书
2015/01/16 职场文书
指导老师鉴定意见
2015/06/05 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript