前言
h5中可以获取你的地理位置,通过下面简单的api可以得到基本的位置信息。
Geolocation API基本的到大部分游览器的支持,并且在移动设备领域的游览器也能很好的支持。
GeolocationAPI 通过window.navigator.geolocation获得地理定位的访问,主要有以下三个方法:
getCurrentPosition()
watchPosition()
clearWatch()
主要方法
- getCurrentPosition() 获取用户当前的地理位置,该方法可以传递三个参数。
第一个参数(必选):获取地理位置信息成功后返回执行的回调函数
第二个参数(可选):获取地理位置信息失败后返回执行的回调函数
第三个参数(可选):一些可选属性参数设置
enableHighAccuracy指定游览器或者移动设备更加精确的获取地理位置信息,消耗较大,默认值为false。
timeout属性告诉geolocation允许以毫秒为单位的最大时间间隔。
maximunAge当该缓存的位置信息时间不大于此参数设定值时,应用程序将接受一个缓存的位置信息。
coords属性表示一系列的地理坐标信息:
latitude:以十进制数表示的纬度
longitude:以十进制数表示的经度
altitude:位置相对于椭圆球面的高度
accuracy:以米为单位的经度和纬度坐标的精度水平
altitudeAccurary:以米为单位的高度坐标经度水平
heading:运动的方向,通过相对正北做顺时针旋转的角度指定
speed:以米/秒为单位的设备当前地面速度 - watchPosition和clearWatch是一对方法,watchPosition也含有三个参数和getCurrentPosition相同
- demo代码
目前只安卓以及支持https协议的网址才可以使用,慎重选择。
``` // 定位功能 function getLocation () {
// 定位成功 function showPosition (position) {if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
alert('浏览器不支持地理定位。');
}
}
getLocation () ; ```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; } }