Vue中百度地图简单应用

百度地图简单应用

1. 前置操作

  • 第一步:安装vue-baidu-map插件
    npm i vue-baidu-map --save
  • 第二步:全局或局部注册组件
// 全局组件
import BaiduMap from 'vue-baidu-map';
Vue.use(BaiduMap, {
      /* Visit http://lbsyun.baidu.com/apiconsole/key for details about app key. */
      ak: 'YOUR_APP_KEY'
})
<!--组件内部-->
<baidu-map 
    style="width:600px;height:300px;display:none" 
    :center="map.center" 
    :zoom="map.zoom" 
    @ready="handler">
</baidu-map>
<!--局部组件-->
<el-input v-model="addressKeyWord" placeholder="请输入收货地址" @change="getAddressList()" style="width:80%"></el-input>
<baidu-map 
    style="width:600px;height:300px;display:none" 
    :center="map.center" 
    :zoom="map.zoom" 
    @ready="handler"
    ak="YOU_APP_KEY">
    <bm-view style="width:100%;height:100%; flex:1"</bm-view> //地图显示 需要定义显示高度
    <bm-local-search :keyword="addressKeyWord" :auto-viewport="true"></bm-local-search> <!--搜索结果栏-->
</baidu-map>

2. JS部分

<script>
export default {
    data(){
        return{
            map: {
                center: { lng: 121.4472540000, lat: 31.3236200000 }, //地图默认显示,也可以用城市名称
                zoom: 15,  // 地图级别
            },
        }
    },
    mounted(){
        // 百度地图API功能
        var map = new BMap.Map("map");    // 创建Map实例
        map.centerAndZoom(new BMap.Point(121.551257,38.890002), 11);  // 初始化地图,设置中心点坐标和地图级别
        //添加地图类型控件
        map.addControl(new BMap.MapTypeControl({
            mapTypes:[
                BMAP_NORMAL_MAP,
                BMAP_HYBRID_MAP
            ]}));
        map.setCurrentCity("大连");          // 设置地图显示的城市 此项是必须设置的
        map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
    }
}
</script>

如果显示BMap&map找不到,可以在标签中添加ready函数。 哦吼!Problem solving

handler ({ BMap, map }) {
  this.BMap = BMap;
  this.map = map;
},
// 关键字搜索相关地点
function myFun(){
    var pp = local.getResults().Ir;   // Ir关键字搜索出来的相关地点; getio(index).point:获取第index条的point(经纬度)
}
var local = new this.BMap.LocalSearch(this.map,{
    onSearchComplete:myFun  // 检索完成后执行的函数
})
local.search(this.addressKeyWord)  // 通过addressKeyWord关键字来检索相关地点

// 经纬度来获取对应的地点
getAdd(point){
        let geo = new this.BMap.Geocoder();  //Geocoder:逆/地址解析,用于坐标与地址间的相互转换。
        geo.getLocation(point,function(res){ // 根据经纬度获取地址描述
          console.log(res.addressComponents)
        })
        this.map.centerAndZoom(point,zoom)  // 地图是否自动定位到point对应的地点
    })
},

去掉百度地图Logo

.BMap_cpyCtrl {
    display: none;
}
.anchorBL {
    display: none;
}
注释

YOUR_APP_KEY      你的百度地图秘钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值