zoukankan      html  css  js  c++  java
  • Geolocation API

    Geolocation API——地理定位

    • getCurrentPosition() 触发请求用户共享地理定位信息的对话框
      • 接收3个参数:
      • 1.成功回调函数
        • 会接收到一个Position对象参数,该对象有两个属性:
        • coords(对象)包含下列与位置相关信息:
          • latitude (最常用)以十进制度数表示的纬度
          • longtitude (最常用)以十进制数表示的经度
          • accuracy 经、纬度坐标的精度,以m为单位
          • 部分浏览器还提供如下属性:
          • altitude 以m为单位的海拔高度,无相关数据则值为null
          • altitudeAccuracy 海拔高度的精度,以m为单位
          • heading 指南针的方向,0°表示正北,值为NaN表示没有检测到数据
          • speed 速度m/s,无相关数据则值为null
        • timestamp
      • 2.可选的失败回调函数
        • 接收1个参数,该对象有两个属性:
        • message 保存文本细腻下,解释出错原因
        • code 保存一个数值,表示错误类型:
          • 用户拒绝共享(1)
          • 位置无效(2)
          • 超时(3)
      • 3.可选的选项参数
        • 用于设定信息的类型,可设置选项有3个:
        • enableHighAccuracy 布尔值,表示必须尽可能使用最准确的位置信息
        • timeout 以ms表示的等待位置信息的最长时间
        • maximumAge 表示上一次取得的坐标信息的有效时间(ms),如果时间到则重新取得新坐标信息
    // 在地图上绘制用户的位置
    navigator.geolocation.getCurrentPosition(function(position){ // 1.成功回调函数
      drawMapCenteredAt(position.coords.latitude, positions.coords.longtitude);
    }, function(error){ // 2.可选的失败回调函数
      // 实际开发中大多数Web应用只会将错误消息保存到日志文件中,而不一定会因此修改用户界面
      console.log("Error code: " + error.code);
      console.log("Error message: " + error.message);
    }, { // 3.可选的选项参数
      enableHighAccuracy: true, // 除非确实需要非常精确的信息,否则建议保持false(默认值),电量消耗性能消耗
      timeout: 5000,
      maximumAge: 25000 // 如果不需要频繁更新用户位置信息,可以设为Infinity,保持使用上一次的坐标信息
    });
    

    watchPosition

    watchPosition()方法,跟踪用户的位置,它接收的参数与getCurrentPosition()完全相同

    它与定时调用getCurrentPosition()效果相同。

    第一次调用watchPosition()后会取得当前位置,执行成功回调或错误回调,然后函数等待系统发出位置已改变的信号(不会自己轮询位置)

    调用watchPosition()会返回一个数值标识符用于跟踪监控的操作。基于这个返回值可以随时取消监控操作,只要将其传递给clearWatch()方法即可(与使用setTimeout和clearTimeout类似):

    var watchId = navigator.geolocation.watchPosition(function(position){
      drawMapCenteredAt(position.coords.latitude, positions.coords.longtitude);
    }, function(error){
      console.log("Error code: " + error.code);
      console.log("Error message: " + error.message);
    });
    
    clearWatch(watchId);
    
  • 相关阅读:
    tomcat配置环境变量
    Java实现简单的正则表达式匹配
    vi编辑器用法
    MyEclipse中自定义maven命令(添加maven 命令)
    dos窗口编译*.java文件 解决 java “错误:编码GBK 的不可映射字符”
    如何循环枚举类型
    Java枚举的小用法
    Java读取maven目录下的*.properties配置文件
    用MyEclipse将Maven Dependencies中的jar包导出
    MD5加密与base64编码
  • 原文地址:https://www.cnblogs.com/hencins/p/10063464.html
Copyright © 2011-2022 走看看