🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 前言 h5中可以获取你的地理位置,通过下面简单的api可以得到基本的位置信息。 Geolocation API基本的到大部分游览器的支持,并且在移动设备领域的游览器也能很好的支持。 GeolocationAPI 通过window.navigator.geolocation获得地理定位的访问,主要有以下三个方法: getCurrentPosition() watchPosition() clearWatch() ## 主要方法 1. getCurrentPosition() 获取用户当前的地理位置,该方法可以传递三个参数。 第一个参数(必选):获取地理位置信息成功后返回执行的回调函数 第二个参数(可选):获取地理位置信息失败后返回执行的回调函数 第三个参数(可选):一些可选属性参数设置 enableHighAccuracy指定游览器或者移动设备更加精确的获取地理位置信息,消耗较大,默认值为false。 timeout属性告诉geolocation允许以毫秒为单位的最大时间间隔。 maximunAge当该缓存的位置信息时间不大于此参数设定值时,应用程序将接受一个缓存的位置信息。 coords属性表示一系列的地理坐标信息: latitude:以十进制数表示的纬度 longitude:以十进制数表示的经度 altitude:位置相对于椭圆球面的高度 accuracy:以米为单位的经度和纬度坐标的精度水平 altitudeAccurary:以米为单位的高度坐标经度水平 heading:运动的方向,通过相对正北做顺时针旋转的角度指定 speed:以米/秒为单位的设备当前地面速度 2. watchPosition和clearWatch是一对方法,watchPosition也含有三个参数和getCurrentPosition相同 3. demo代码 目前只安卓以及支持https协议的网址才可以使用,慎重选择。 ~~~ // 定位功能 function getLocation () { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); } else { alert('浏览器不支持地理定位。'); } } // 定位成功 function showPosition (position) { var lat = position.coords.latitude; // 纬度 var lag = position.coords.longitude; // 经度 alert('纬度:' + lat + ',经度:' + lag); } // 处理失败 function showError (error) { switch (error.code) { case error.PERMISSION_DENIED: alert('定位失败,用户拒绝请求地理定位'); break; case error.POSITION_UNAVAILABLE: alert('定位失败,位置信息是不可用'); break; case error.TIMEOUT: alert('定位失败,请求获取用户位置超时'); break; case error.UNKNOWN_ERROR: alert('定位失败,定位系统失效'); break; } } getLocation () ; ~~~