HTML5 Geolocation

一,位置信息
  1,纬度和经度坐标
  十进制格式:
  DMS格式:39‘10’20‘
  2,位置信息从何而来
  设备从使用下列数据源
  IP地址
  三维坐标:GPS,MAC地址,GSM或CDMA手机的ID
  3,IP地址地理定位数据
  基于IP地址的地理定位的实现方式是,自动查找用户的IP地址,然后检索其注册的物理地址,
  如果用户的IP地址是由ISP提供的,其位置由服务供应商的物理地址决定
  4,GPS地理定位数据
  提供非常准确的定位结果,通过收集运行在地球周围的多个GPS卫星的信号实现的,定位时间较长,室内效果不好
  5,Wi-Fi地理定位数据
  通过三角距离计算得出,三角距离指用户当前位置到已知的多个Wi-Fi接入点的距离,精确可在室内使用,乡村效果不好
  6,手机地理定位数据
  通过用户到一些基站的三角距离确定的,通常同基于Wi-Fi和基于GPS的地理定位信息结合使用,精确,室内可使用
  7,用户自定义的地理定位数据
二,隐私
  1,触发隐私保护机制
  在HTML5 Geolocation代码被执行时触发隐私保护机制
  2,处理位置信息
  如果用户没有授权存储位置信息,那么应用程序应该在任务完成后删除
  重传位置信息,要先进行加密
三,使用HTML5 GolocationAPI
  1,浏览器支持性检查
  function loadDemo(){
    if(navigator.geolocation){
      document.getElement("support").innerHTML = "Geolocation supported.";
    }else{
      document.getElement("support").innerHTML = "Geolocation is not supported in your browser."
    }
  }
  2,位置请求
  1)单次定位请求
    navigator.geolocation.getCurrentPosition(successCallBack,errorCallBack,options)
    successCallback是收到实际位置信息并进行处理的信息,errorCallBack是错误处理函数,options可选的地理定位请求特性
    a)updateLocation()函数,收到实际位置信息时调用,接收一个参数,位置对象,包含一个coords(位置数据)和timestamp(时间戳)
      coords特性包含latitude,longitude,accuracy
    b)hangleLocationError()函数,错误处理函数,传人一个error对象,有code特性
      特性值,PERMISSION_DENIED(1)用户拒绝获取其位置
      POSITION_UNAVAILABLE(2)尝试获取位置但失败
      TIMEOUT(3)设置了可选的timeout值,获取过程中超时
    c)可选的第三个参数
      enableHighAccuracy:通知浏览器启用HTML5 Geolcation服务的高精度模式,默认为false
      timeout:等待时间,默认为infinity无穷大
      maximumAge:浏览器重新计算位置的时间间隔,ms为单位
  2)多次重复性的位置更新请求
    navigator.geolocation.watchPosition(updateLocation,handleLocationError)
    只要用户位置发生变化就会触发updateLocation处理程序
    var watchID = navigator.geolocation.watchPostion(updateLocation,handleLocationError);
    navigator.geolocation.clearWatch(watchID);

原文地址:https://www.cnblogs.com/b0xiaoli/p/3678927.html