美文网首页前端入门教程
HTML5 Geolocation地理位置

HTML5 Geolocation地理位置

作者: 微语博客 | 来源:发表于2021-06-16 23:03 被阅读0次

简介

基于位置的信息服务在我们的生活中是特别常见的需求,比如地图导航,外卖快递,家政服务以及气象信息等等,这些服务都有一个共同特点,那就是基于地理位置信息。在移动端我们很容易通过设备获取精确地理位置,浏览器端稍微差点,但是HTML5也提供了相关的API让我们获取地理位置,但是由于位置涉及隐式,必须由用户同意之后才能获取得到。

Geolocation位置服务API常用的函数和属性

  • navigator.geolocation:该属性返回一个布尔值,表示客户端是否支持Geolocation。

  • getCurrentPosition(callback()):该方法接收两个回调函数,分别处理成功和失败的回调。

  • watchPosition():返回用户的当前位置,并继续返回用户移动时的更新位置。

  • clearWatch():停止 watchPosition() 方法

简单示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>  
  <button onclick="getLocation()">Geolocation获取地理位置</button>
  <script>
    function getLocation(){
      if(navigator.geolocation){
        console.log("支持定位");
        navigator.geolocation.getCurrentPosition((function(position){
          console.log("纬度="+position.coords.altitude);
          console.log("经度="+position.coords.longitude);            
        }));
      }else{
        console.log("不支持地理定位");
      }
    }
  </script>
  
</body>
</html>

处理错误和拒绝

上面的示例是一个特别简单的例子,不包含任何错误处理,但是出现错误也是很常见的,比如用户拒绝或者获取位置超时失败等,所以开发真实场景中,需要有处理错误的脚本。getCurrentPosition() 方法的第二个参数用于处理错误,它指定了遇到错误时回调的函数。

  • Permission denied - 用户不允许地理定位
  • Position unavailable - 无法获取当前位置
  • Timeout - 操作超时
function getLocation(){
      if(navigator.geolocation){
        console.log("支持定位");
        navigator.geolocation.getCurrentPosition(
          (function(position){
              console.log("纬度="+position.coords.altitude);
              console.log("经度="+position.coords.longitude);            
          }),
          (function(error){
              if(error.PERMISSION_DENIED){
                console.log("用户拒绝获取位置");
              }else if(error.POSITION_UNAVAILABLE){
                console.log("位置信息不可用");
              }else if(error.TIMEOUT){
                console.log("获取位置超时");
              }else{
                console.log("未知错误");
              }
          }));
      }else{
        console.log("不支持地理定位");
      }
    }

上面的示例处理了几个常见的错误回调,一般在支持GPS的移动设备获取位置准确度会高点。

相关文章

  • HTML5 中的几个 API

    Part 1:Geolocation Geolocation 简述 HTML5 中的地理位置,是由底层硬件设备提供...

  • HTML-Geolocation

    HTML5中,Geolocation用于获取地理位置,这里是Geolocation的基本使用方法: 添加处理定位失...

  • 定位当前地理位置

    使用 HTML5 Geolocation API 来构建基于地理位置的应用~ 各种浏览器对HTML5 Geoloc...

  • HTML5 地理定位笔记

    一:定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的...

  • Geolocation(地理定位)

    HTML5 Geolocation API 用于获得用户的地理位置。鉴于该特性可能侵犯用户的隐私,除非用户同意,否...

  • HTML5 Geolocation(地理定位)

    HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位用户的位置。...

  • HTML5 Geolocation地理位置

    简介 基于位置的信息服务在我们的生活中是特别常见的需求,比如地图导航,外卖快递,家政服务以及气象信息等等,这些服务...

  • H5 API-地理位置

    # 地理位置 Geolocation API

  • HTML5地理定位

    1、HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位用户的位...

  • html5地理定位原理及其应用(转)

    介绍 地理位置(Geolocation)是HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开...

网友评论

    本文标题:HTML5 Geolocation地理位置

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