关于 Vue Baidu Map 自动定位

Posted shiazhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Vue Baidu Map 自动定位相关的知识,希望对你有一定的参考价值。

vue 中自动定位

 <template>
        <baidu-map class="map" :zoom="zoom" :center="center" @ready="handler">
          <bm-geolocation
            anchor="BMAP_ANCHOR_BOTTOM_RIGHT"
            :showAddressBar="true"
            :autoLocation="true"
          ></bm-geolocation>
        </baidu-map>
      </template>

//js代码//--------------------------------------//
 data() {
    return {
      center: { lng: 0, lat: 0 },
      zoom:15//必须写上,自己因为忘记写一直无法自动定位
    };
  },

 /*-------------------------地图插件准备好后触发事件---------------------------------------*/
handler({ BMap, map }) {
      const that = this;
      var geolocation = new BMap.Geolocation();
      geolocation.getCurrentPosition(function(r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
          that.center.lng = r.longitude;
          that.center.lat = r.latitude;
          console.log(that.center);
        } else {
          alert("failed" + this.getStatus());
        }
      });
    }

获取用户详细地址

<script type="text/javascript">
    var map = new BMap.Map("allmap");//创建Map实例,注意页面中一定要有个id为allmp的div
    var point = new BMap.Point(116.331398,39.897445);//创建定坐标
    map.centerAndZoom(point,12);//// 初始化地图,设置中心点坐标和地图级别
 
    var geolocation = new BMap.Geolocation();
    var gc = new BMap.Geocoder();//创建地理编码器
    // 开启SDK辅助定位
    geolocation.enableSDKLocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
            alert('您的位置:' + r.point.lng + ',' + r.point.lat);
 
            var pt = r.point;   
            map.panTo(pt);//移动地图中心点
            //alert(r.point.lng);//X轴
            //alert(r.point.lat);//Y轴 
 
            gc.getLocation(pt, function(rs){    
                var addComp = rs.addressComponents;
                //alert(addComp.city);
               alert(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);    
            });  
 
        }
        else {
            alert('failed'+this.getStatus());
        }        
    });
</script>

四、通过浏览器定位获取当前经纬度:
<script type="text/javascript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
 
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
    if(this.getStatus() == BMAP_STATUS_SUCCESS){
        var mk = new BMap.Marker(r.point);
        map.addOverlay(mk);
        map.panTo(r.point);
        alert('您的位置:'+r.point.lng+','+r.point.lat);
    }
    else {
        alert('failed'+this.getStatus());
    }        
});
</script>

五、ip定位获取当前所在城市
<script type="text/javasript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
 
function myFun(result){
    var cityName = result.name;
    map.setCenter(cityName);
    alert("当前定位城市:"+cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun); 
</script>

以上是关于关于 Vue Baidu Map 自动定位的主要内容,如果未能解决你的问题,请参考以下文章

vue 使用百度地图(vue-Baidu-Map)

vue基于百度地图api开发签到打卡功能

百度获取定位 位置

vue 使用百度地图:搜索定点

vue引入百度地图BMapGL,或者其他个性化地图

vue-baidu-map自定义覆盖物图标