博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取手机的gps定位
阅读量:6708 次
发布时间:2019-06-25

本文共 2746 字,大约阅读时间需要 9 分钟。

只要手机有GPS模块,可以用HTML5的Geolocation接口获取

在HTML5中,geolocation作为navigator的一个属性出现,它本身是一个对象,拥有三个方法:

- getCurrentPosition

- watchPosition

- clearWatch

//判断浏览器是否支持geolocationif(navigator.geolocation){     // getCurrentPosition支持三个参数     // getSuccess是执行成功的回调函数     // getError是失败的回调函数     // getOptions是一个对象,用于设置getCurrentPosition的参数     // 后两个不是必要参数     var getOptions = {          //是否使用高精度设备,如GPS。默认是true          enableHighAccuracy:true,          //超时时间,单位毫秒,默认为0          timeout:5000,          //使用设置时间内的缓存数据,单位毫秒          //默认为0,即始终请求新数据          //如设为Infinity,则始终使用缓存数据          maximumAge:0     };      navigator.geolocation.getCurrentPosition(getSuccess, getError, getOptions);      //成功回调     function getSuccess(position){          // getCurrentPosition执行成功后,会把getSuccess传一个position对象          // position有两个属性,coords和timeStamp          // timeStamp表示地理数据创建的时间??????          // coords是一个对象,包含了地理位置数据          console.log(position.timeStamp);              // 估算的纬度          console.log(position.coords.latitude);              // 估算的经度          console.log(position.coords.longitude);              // 估算的高度 (以米为单位的海拔值)          console.log(position.coords.altitude);              // 所得经度和纬度的估算精度,以米为单位          console.log(position.coords.accuracy);              // 所得高度的估算精度,以米为单位          console.log(position.coords.altitudeAccuracy);              // 宿主设备的当前移动方向,以度为单位,相对于正北方向顺时针方向计算          console.log(position.coords.heading);          // 设备的当前对地速度,以米/秒为单位              console.log(position.coords.speed);              // 除上述结果外,Firefox还提供了另外一个属性address          if(position.address){               //通过address,可以获得国家、省份、城市               console.log(position.address.country);               console.log(position.address.province);               console.log(position.address.city);          }     }     //失败回调     function getError(error){          // 执行失败的回调函数,会接受一个error对象作为参数          // error拥有一个code属性和三个常量属性TIMEOUT、PERMISSION_DENIED、POSITION_UNAVAILABLE          // 执行失败时,code属性会指向三个常量中的一个,从而指明错误原因          switch(error.code){               case error.TIMEOUT:                    console.log('超时');                    break;               case error.PERMISSION_DENIED:                    console.log('用户拒绝提供地理位置');                    break;               case error.POSITION_UNAVAILABLE:                    console.log('地理位置不可用');                    break;               default:                    break;          }     }     // watchPosition方法一样可以设置三个参数     // 使用方法和getCurrentPosition方法一致,只是执行效果不同。     // getCurrentPosition只执行一次     // watchPosition只要设备位置发生变化,就会执行     var watcher_id = navigator.geolocation.watchPosition(getSuccess, getError, getOptions);     //clearwatch用于终止watchPosition方法     clearWatch(watcher_id);         }

 

转载地址:http://jgxlo.baihongyu.com/

你可能感兴趣的文章
实现简单ThreadPool
查看>>
开源的api文档管理系统
查看>>
innerHTML innerText与outerHTML间的区别
查看>>
浅谈const限定符
查看>>
中国PC浏览器最新市场份额,对前端开发者来说喜忧参半!
查看>>
~~因果图法示例分析
查看>>
创建Django博客的数据库模型
查看>>
linux学习(1)--基本知识
查看>>
自动显示隐藏布局的listView
查看>>
redis高可用 - redis集群
查看>>
20165201 2017-2018-2 《Java程序设计》第9周学习总结
查看>>
BST(二叉树搜索树)
查看>>
个人中心标签页导航
查看>>
华为AR1220
查看>>
索引总结篇
查看>>
SaltStack为所有minion配置yum源
查看>>
[Array]Minimum Size Subarray Sum
查看>>
REST及RESTful的实现
查看>>
ListView与RadioButton组合——自定义单选列表
查看>>
[POJ3111]K Best
查看>>