地理位置定位

三个方法:

一.  getCurrentPosition()获取用户(设备)当前位置
二.  watchPosition()一直监视位置:主要是监视移动端用户的位置
三.  clearWatch()清除监听位置
1.   getCurrentPosition()获取用户(设备)当前位置
    navigator.gelolcation.getCurrentPosition(success-callback,error-callback,{
        geolocation选项
})
分析:
success-callback:用户允许共享geolocation的回调函数,用户不允许时候  不能走里面的函数;
1.功能:用户允许使用定位服务,并且成功获取到用户未知的回调函数
           接收一个参数,用来获取到地理位置的信息
2.参数:coords:包含当前地理位置的信息参数
             参数coords的子属性:
                    latitude:当期那位置的维度
                    longitude:当前位置的经度
                    altitude:当前位置的海拔
                    speed:速度,以  米/秒  为单位
error-callback:获取地理位置失败时的回调函数
1.功能:处理错误,规定当获取用户位置失败时执行的函数
2.参数:error,包含错误信息以及错误代号等信息
             参数error的子属性:
                    message:错误信息
                    code:错误代码,适用于精确匹配错误时候使用
                                PERMISSION-EDDIED:用户不允许地理位置
                                POSITION-UNAVILABLE:无法获取当前位置
                                TIMEOUT:操作超时
geolocation选项:包括一些属性,是否启用一些高精度的匹配,是否定义超时时间的配置信息等
1.功能:定义了获取地理位置的辅助功能的属性
2.相关属性:enableHightAccuracy:指示浏览器获取高精度的位置,默认为false;(最好启动高精度的位置,改成true)
                    timeout:指定获取地理位置的超时时间,默认不限时,单位为毫秒(如果设置之后时间之后,没有获取用户的地理位置,将走error-callback 函数)
                    maximumAge:最长有效期,在重复获取地理位置时,此参数指定多久再获取位置(每隔多长时间调取一次用户的地理位位置信息)
2. watchPosition()像一个位置追踪器,与clearwatch成对出现,类似于setinteval和clearinteval的工作方式
1。调用: var watch =    navigator.watchPosition(success-callback , error-callback,选项)
3 .clearWatch: 清除位置追踪器(清除之后,就不会再跟踪用户的位置)
    clearWatch(watch)
代码实现
<script type="text/javascript">
            window.onload = function{
                if(navigator.geolocation){
                    navigator.geolocation.getCurrentPosition(function(position){
                        //获取地理位置信息
                        console.log("纬度:"+position.coords.latitude);
                        console.log("经度:"+position.coords.longitude);
                    },function(error){
                        console.log(error.message)
                    },{
                        enableHighAccuracy:true,
                        timeout:3000  //如果在三秒钟之内还没有得到用户信息,报出错误超时的错误
                    })
                }else{
                    alert("不支持定位")
                }
            }
</script>

用百度的方法:获取设备地理位置
百度的geolocation对象
var geolocation = new BMap.Geolocation();
通过getCurrentPosition事件,添加回调函数,并且传递position参数获取当前位置
    geolocation.getCurrentPosition(function(position){});
通过geolocation 的getstatus()判读地理位置获取状态
BMAP-STATUS-SUCCESS:检索成功(当getstatus = BMAP-STATUS-SUCCESS说明可以显示当前位置)
BMAP-STATUS-TIMEOUT:超时
position参数
1.功能:获取当前设备的地理位置
2.属性:position.point:表示当前位置坐标对象
             position.point.lng;当前位置的经度
             position.point.lat:当前位置的纬度
3.操作:
创建标点:
函数:var marker = new BMap.marker(point);
将覆盖物添加到地图上
    map.addOverlay(marker)
将地图的中心移动到指定的点上
    map.panTo(point)
例子(可能有些小问题,但是可以借鉴):
<div id="map" style="width: 500px;height: 500px;"></div>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
        <script type="text/javascript">

            window.onload = function(){
                new geolocation = new BMap.Geolocation();
                geolocation.getCurrentPosition(function(position){
                    if(geolocation.getstatus() == BMAP_STATUS_SUCCESS){
                        var point = position.point;
                        console.log(point)

                        var map = new BMap.Map("map")
                        map.centerAndZoom(point,12)
                        map.enablescroolWheelZoom(true)
                        //添加标点
                        var marker = new BMap.marker(point)
                        map.addOverlay(marker)
                        map.panTo(point)
                    }
                })
            }
</script>
复制代码

转载于:https://juejin.im/post/5c9363f26fb9a070cb24aed4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值