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 相关文章推荐
JQuery this 和 $(this) 的区别
Aug 23 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
jQuery中insertAfter()方法用法实例
Jan 08 Javascript
简介JavaScript中Boolean.toSource()方法的使用
Jun 05 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP的FTP学习(一)
2006/10/09 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
php设计模式之委托模式
2016/02/13 PHP
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
学习心得体会
2014/01/01 职场文书
医院工作检讨书范文
2014/02/10 职场文书
房产协议书范本
2014/10/18 职场文书
社区母亲节活动总结
2015/02/10 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
python中redis包操作数据库的教程
2022/04/19 Python