h5实现获取用户地理定位的实例代码


Posted in HTML / CSS onJuly 17, 2017

最近做的一个项目中有一个获取周围商户的功能,需要用到地理定位系统,

于是便想到了用 h5 的地理定位,查阅了下资料后,简单封装了下代码。

const getPosition = (
  timeout = 10000,
  maximumAge = 60000, 
  enableHighAcuracy = false) => new Promise((resolve, reject) => {
  if (!navigator && !navigator.geolocation)  {
    return reject(new Error('geolocation api not supported'))
  } 

  const success = (loc) => {
      const location = {
        latitude: loc.coords.latitude,  // 纬度
        longitude: loc.coords.longitude,  // 经度
        accuracy: loc.coords.accuracy // 精确度
      }
      resolve(location)
  }

  const error = () => reject('出错了')

  navigator.geolocation.getCurrentPosition(success, error, {
    enableHighAcuracy,  // 指示浏览器获取高精度的位置,默认为false
    timeout,  // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
    maximumAge // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
  })
})

// 使用示例
getPosition()
.then(pos => pos)
.catch(err => console.log(err))

h5 的获取地理位置的 api 确实是很好用,不过由于获取用户的地理位置是属于用户的隐私,所以需要经过用户的授权才可以。

无论用户拒绝还是允许授权,该站点都会被浏览器缓存下来,下次访问的时候就不会再次询问用户了,除非用户手动移除该规定。在 chrome 中移除规则的地址在设置里面,如下图:

h5实现获取用户地理定位的实例代码

另外如果用户拒绝了,则可以通过选择 ip 来获取经纬度,一般误差会比较大

ipip.net 是一个可以通过ip获取用户地理位置信息的网站。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
image-set实现Retina屏幕下图片显示详细介绍
Dec 24 HTML / CSS
css3气泡 css3关键帧动画创建的动态通知气泡
Feb 26 HTML / CSS
css3 条纹化和透明化表格Firefox下测试成功
Apr 15 HTML / CSS
CSS3制作圆角图片和椭圆形图片
Jul 08 HTML / CSS
css3 pointer-events 介绍详解
Sep 18 HTML / CSS
如何在网站上添加谷歌定位信息
Apr 16 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
HTML5中的强制下载属性download使用实例解析
May 12 HTML / CSS
使用phonegap操作数据库的实现方法
Mar 31 HTML / CSS
Html5移动端网页端适配(js+rem)
Feb 03 HTML / CSS
html+css实现环绕倒影加载特效
Jul 07 HTML / CSS
HTML5 表单验证失败的提示语问题
Jul 13 #HTML / CSS
HTML5地理定位_动力节点Java学院整理
Jul 12 #HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 #HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 #HTML / CSS
html5页面结构_动力节点Java学院整理
Jul 10 #HTML / CSS
HTML5单页面手势滑屏切换原理分析
Jul 10 #HTML / CSS
HTML5中图片之间的缝隙完美解决方法
Jul 07 #HTML / CSS
You might like
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
python 表格打印代码实例解析
2019/10/12 Python
pycharm显示远程图片的实现
2019/11/04 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
selenium如何定位span元素的实现
2021/01/13 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
大学生就业推荐信范文
2013/11/29 职场文书
全神贯注教学反思
2014/02/03 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
党支部换届选举方案
2014/05/08 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
如何利用python实现Simhash算法
2022/06/28 Python