vue项目使用百度地图

tech2026-06-18  1

一、 前往百度地图API平台获取ak

二、安装vue-baidu-map (这里推荐npm安装)

三、引入vue-baidu-map.js,(我这里是全局引入的)。在main.js中导入

import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: 填入ak值 });

简单描述一下实现的功能 1、在地图上点击标注,会把对应的位置显示在搜索框中 2、搜索输入地址后,点击搜索,地图跳转到相应位置 3、地图/混合 可以切换地图模式 4、右边可以选择街、市、省、国 进行位置切换

<!--center 显示中心位置 lng经度 lat纬度 zoom 视图的缩放比例 --> <!- scroll-wheel-zoom是否允许用鼠标滚轮缩放 --> <baidu-map class="map" :center="{lng: 121.4095, lat: 31.1796}" :zoom="15" :scroll-wheel-zoom="true" @click="getPoint"> <!--地图类型,两种:一种是路线一种是绿的那种--> <bm-map-type :map-types="['BMAP_NORMAL_MAP', 'BMAP_HYBRID_MAP']" anchor="BMAP_ANCHOR_TOP_LEFT"></bm-map-type> <!--是否显示标注--> <div v-if="locationFlag" > <bm-marker :position="postionMap" :dragging="true" animation="BMAP_ANIMATION_BOUNCE" /> </div> <!--搜索功能--> <!--display: none样式很关键,因为下面默认会有地址提示信息很长,很烦,这样搜索会很舒服,--> <bm-local-search :keyword="keyword" :auto-viewport="true" zoom="12.8" style="display: none"></bm-local-search> <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation> </baidu-map>

js代码

searchLocal(){ this.keyword = this.keywordReady }, getPoint(e){ //点击地图获取一些信息, console.log('e',e) this.show = true; this.postionMap.lng = e.point.lng; //通过 e.point.lng获取经度 this.postionMap.lat = e.point.lat; //通过 e.point.lat获取纬度 this.add.jd = e.point.lng; this.add.wd = e.point.lat; this.zoom = e.target.getZoom() let geocoder= new BMap.Geocoder(); //创建地址解析器的实例 geocoder.getLocation(e.point,rs=>{ if(!this.locationFlag){ //地图标注为false时,不让位置在搜索框中显示 return true } this.keywordReady = rs.address; //地址描述(string) // console.log(rs.address); //这里打印可以看到详细地址信息 // console.log(rs.addressComponents);//结构化的地址描述(object) // console.log(rs.addressComponents.province); //省 // console.log(rs.addressComponents.city); //城市 // console.log(rs.addressComponents.district); //区县 // console.log(rs.addressComponents.street); //街道 // console.log(rs.addressComponents.streetNumber); //门牌号 // console.log(rs.surroundingPois); //附近的POI点(array) // console.log(rs.business); //商圈字段,代表此点所属的商圈(string) }); }, //出现标注地址 getFlag(){ this.locationFlag=true }, //取消标注 cancelFlag(){ this.locationFlag=false },

data中的代码

data() { return { keywordReady:"" , //在输入框中输入的值 add:{ siteName:'', site:'', jd:'', wd:'', desce:'', type:'', jgName:'', jgNum:'', }, postionMap:{ //地图坐标 lng: 120.211486, lat: 30.256576 }, keyword: '', //搜索框关键词

css样式代码

css地图样式 .map{ width: 100%; height: 400px; }
欢迎大神们指点,蟹蟹大家~
最新回复(0)