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 相关文章推荐
js函数般调用正则
Apr 08 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
jquery右下角弹出提示框示例代码
Oct 08 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
vue.js绑定class和style样式(6)
Dec 09 Javascript
Javascript的this用法
Jan 16 Javascript
用move.js库实现百叶窗特效
Feb 08 Javascript
AngularJS  ng-repeat遍历输出的用法
Jun 19 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
js实现抽奖的两种方法
Mar 19 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 jQuery
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
php5.2时间相差8小时
2007/01/15 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
javascript闭包的理解和实例
2010/08/12 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
Python的时间模块datetime详解
2017/04/17 Python
python中使用print输出中文的方法
2018/07/16 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
tensorflow常用函数API介绍
2020/04/19 Python
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
大专生自荐信
2013/10/04 职场文书
函授本科自我鉴定
2014/02/04 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
就业意向协议书
2015/01/29 职场文书
员工工作表现自我评价
2015/03/06 职场文书
客户付款通知书
2015/04/23 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技