美文网首页
07、HTML5-地理信息GeoLocation

07、HTML5-地理信息GeoLocation

作者: 王梓懿_1fbc | 来源:发表于2018-10-20 14:39 被阅读0次

    一、地址位置

    • 经度: 南北的连接线
    • 维度: 东西的连接线

    二、位置信息从哪里获取?

    • IP地址
    • GPS全球定位系统
    • WIFI无线网络
    • 手机基站

    三、地理位置对象navigator.geolocation

    • getCurrentPosition(): 单次定位请求
      // 参数1: 请求成功函数
      // 参数2: 请求失败函数
      // 参数3: 数据收集(JSON数据格式)
      navigator.geolocation.getCurrentPosition(function(position){}, function(err){}, {});
    
    
    • 请求成功函数
      经度: position.coords.longitude
      维度: position.coords.latitude
      准确度: position.coords.accuracy
      海拔: position.coords.altitude
      海拔准确度: position.coords.altitudeAccuracy
      行进方向: position.coords.heading
      地面速度: position.coords.speed
      时间戳: new Date(position.timestamp)
      navigator.geolocation.getCurrentPosition(function(position){
        oText.innerHTML += '经度: ' +  position.coords.longitude + '\n';
        oText.innerHTML += '维度: ' +  position.coords.latitude + '\n';                   
      });
    
    
    • 请求失败函数
      0: 不包含其他错误编号中的错误
      1: 用户拒绝浏览器获取位置信息
      2: 尝试获取用户信息,但失败了
      3: 设置了timeout,即获取位置请求超时了
      navigator.geolocation.getCurrentPosition(function(position){
        oText.innerHTML += '经度: ' +  position.coords.longitude + '\n';
        oText.innerHTML += '维度: ' +  position.coords.latitude + '\n';                   
      }, function(err){
           // 失败对应的编号: err.code
          alert(err.code);
      });
    
    
    • 数据收集(JSON数据格式)
      enableHighAcuracy: 更精确的查找,默认是false(越精确越耗电);
      timeout: 获取位置允许最长时间,默认infinity(没有超时即获取失败后继续请求获取);
      maximumAge: 位置可以缓存最大时间,默认0(有时候避免频繁点击,而频繁获取);
    oBt1.onclick = function(){                      
        navigator.geolocation.getCurrentPosition(function(position){  // 请求成功
          oText.innerHTML += '经度: ' +  position.coords.longitude + '\n';
          oText.innerHTML += '维度: ' +  position.coords.latitude + '\n';
        }, function(err){  // 请求失败
          alert(err.code);
        }, {  // 数据收集
          enableHighAcuracy: true,
          timeout: 8000,
          maximumAge: 5000
      });
    }
    
    
    • watchPosition(): 多次定位请求(类似setInterval)
      移动设备有用,当位置发生改变时才触发;
      配置参数: frequency更新的频率;
    oBt1.onclick = function(){
        location = navigator.geolocation.watchPosition(function(position){
          oText.innerHTML += '经度: ' +  position.coords.longitude + '\n';
          oText.innerHTML += '维度: ' +  position.coords.latitude + '\n';
      }, function(err){
          alert(err.code);
          // 关闭请求
          navigator.geolocation.clearWatch(location);
      }, {
          enableHighAcuracy: true,
          timeout: 8000,
          maximumAge: 5000,
          frequency: 1000
        });
    }
    
    
    • clearWatch(): 关闭更新请求(类似clearInterval)

    四、集成百度地图

    【参考"示例DEMO",快速帮助我们集成百度地图】
      1、注册成为百度账号;
      2、申请KEY;
      3、运行Demo;
        > 添加key;
    4、找到对应功能具体的模块;
    
    

    作者:西门奄
    链接:https://www.jianshu.com/u/77035eb804c3
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:07、HTML5-地理信息GeoLocation

          本文链接:https://www.haomeiwen.com/subject/fdhmzftx.html