前言

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 () {
    1. if (navigator.geolocation) {
    2. navigator.geolocation.getCurrentPosition(showPosition, showError);
    3. } else {
    4. alert('浏览器不支持地理定位。');
    5. }
    6. }
    // 定位成功 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 () ; ```