zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    【AMAD】django-channels -- 为Django带来异步开发
    【AMAD】django-crispy-forms -- 不要再重复编写Django Form了!
    【AMAD】django-compressor -- 将JS和CSS文件压缩为一个缓存文件
    【AMAD]django-filter -- 一个通用的,基于用户选择的Django Queryset 过滤系统
    【AMAD】django-taggit -- 一个简单的,通用的django tagging模块
    【AMAD】django-debug-toolbar -- 一个可配置的panel,展示当前request/response的debug信息
    【amad】cookiecutter -- 一个命令行工具,使用项目模版来构建项目
    十步学习法 -- 来自<<软技能>>一书的学习方法论
    第八篇、SVN在Mac上使用
    第七篇、Nginx Install On Mac
  • 原文地址:https://www.cnblogs.com/b0xiaoli/p/3678927.html
Copyright © 2011-2022 走看看