Geolocation接口【获取当前地理位置】

地理位置在日常生活中应用比较广泛,例如互联网打车、在线地图等等。

在HTML5的规范中,增加获取用户地理位置信息的接口Geolocation,开发者可以通过经纬度来获取用户的地理位置信息。

Geolocation接口封装了获取位置信息的技术细节。开发者无需关心信息的来源,只需关注如何使用即可,这极大地简化了开发的难度。目前,大部分浏览器都支持该接口,如Chrome,IE9等等。对于有GPS的移动设备,定位会更加准确。

navigator.geolocation对象提供了getCurrentPosition()方法来获取当前地理位置。

getCurrentPosition()方法的使用参数如下。

getCurrentPosition(successCallback,ErrorCallback)

当getCurrentPosition()方法成功获取地理信息后,会在successCallback回调函数中传入position对象;反之则将ErrorCallback回调函数中传入position对象。

下面我们通过案例来展示如何使用getCurrentPosition()方法来获取当前位置。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GetLocation</title>
</head>
<body>
    <p id="demo">获得您的坐标:</p>
    <button onclick="getLocation()">试一下</button>
    <script>
        var x=document.getElementById('demo');
        function getLocation(){
            if (navigator.geolocation){
                navigator.geolocation.getCurrentPosition(showPosition,showError);
            }else{
                x.innerHTML='当前浏览器不支持地理位置定位';
            }
        }
        //获取定位成功,显示位置信息
        function showPosition(position){
            x.innerHTML='经度:'+position.coords.longitude+'<br>纬度:'+position.coords.latitude;
        }
        //获取位置失败,显示错误信息
        function showError(error){
            switch(error.code){
                case error.PERMISSION_DENIED:
                    x.innerHTML='用户拒绝地理位置定位请求';
                break;
                case error.POSITION_UNAVAILABLE:
                    x.innerHTML='位置信息不可用';
                break;
                case error.TIMEOUT:
                    x.innerHTML='获取用户位置的请求超时';
                    break;
                case error.UNKNOWN_ERROR:
                    x.innerHTML='发生了一个不明错误';
                    break
            }
        }
    </script>
</body>
</html>

 

运行成功如下图

通过浏览器测试访问,点击“试一下”按钮后,会提示是否允许当前页面获取您的位置,如下图所示。

点击“允许”,页面就会显示您当前的地理位置的经纬度,如下图所示

 点击“拒绝”,页面就会显示您拒绝定位访问,如下图所示

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值