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 同步异步的执行示例代码
Jun 23 Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
AngularJS指令用法详解
Nov 02 Javascript
BootStrap组件之进度条的基本用法
Jan 19 Javascript
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 Javascript
浅谈Angularjs中不同类型的双向数据绑定
Jul 16 Javascript
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
ES6的异步终极解决方案分享
Jul 11 Javascript
JS 5种遍历对象的方式
Jun 16 Javascript
JavaScript实现矩形块大小任意缩放
Aug 25 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
php 购物车的例子
2009/05/04 PHP
php 面向对象的一个例子
2011/04/12 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
Python 实现随机数详解及实例代码
2017/04/15 Python
python主线程捕获子线程的方法
2018/06/17 Python
python3个性签名设计实现代码
2018/06/19 Python
django主动抛出403异常的方法详解
2019/01/04 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
python找出因数与质因数的方法
2019/07/25 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python如何查看安装了的模块
2020/06/23 Python
医学院学生的自我评价分享
2013/11/19 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
受资助学生感谢信
2015/01/21 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
客房服务员岗位职责
2015/02/09 职场文书