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 ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
判定是否原生方法的JS代码
Nov 12 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
8个超实用的jQuery功能代码分享
Jan 08 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
JavaScript必知必会(七)js对象继承
Jun 08 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
AngularJS 控制器 controller的详解
Oct 17 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
一个用php3编写的简单计数器
2006/10/09 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP的拦截器实例分析
2014/11/03 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
javascript折半查找详解
2015/01/26 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
Python中bisect的用法
2014/09/23 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Python中包的用法及安装
2020/02/11 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
运动会稿件100字
2014/02/21 职场文书
党务公开方案
2014/05/06 职场文书
绿色小区申报材料
2014/08/22 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
检讨书范文300字
2015/01/28 职场文书