为了页面流畅,建议还是局部引用(觉得这三个满足一般的需求了),如下:
import { BaiduMap, BmScale, BmGeolocation } from ‘vue-baidu-map’
然后注入依赖:
components: {
BaiduMap,
BmGeolocation,
BmScale
},
HTML代码,在需要引入百度地图的地方加入下面代码
<baidu-map style=" height: 600px;" :center=“map_center” :zoom=“my_zoom”
:scroll-wheel-zoom=“my_scroll_wheel_zoom”
class=“baidu-map-view”
@ready=“map_handler” ak=“分配给你的百度key”>
如果没有百度地图key就去申请一个,申请网址:http://lbsyun.baidu.com/index.php?title=jspopular/guide/getkey
如果需要对地图进行事件处理,必须要在ready事件之后,否者取不到BMap对象!
ready 是在地图组件渲染完毕时触发,返回一个百度地图的核心类和地图实例——{BMap, map}。百度地图组件是异步加载,不要在组件的生命周期中访问 BMap 核心类和 map 实例,如有需要,请在所需组件的 ready 事件回调函数的参数中获取。
看代码:
// 地图初始化回调
map_handler({ BMap, map }) {
this.BMap = BMap
this.map = map
},
其中,BMap是百度地图的对象,直接new出来跟原始的百度地图API一样使用,map是地图对象,可以调用对应的地图方法,比如添加坐标点等。
获取到地图的BMap和map之后,剩下的操作就可以直接参照百度地图官方api接口了,对,就是这样子。
百度地图官方api demo:http://lbsyun.baidu.com/jsdemo.htm#canvaslayer
小案例(给地图设置点击获取经纬度坐标并标点):
this.map.addEventListener(‘click’, (e) => {
const point = new this.BMap.Point(e.point.lng, e.point.lat)
const marker = new this.BMap.Marker(point) // 设置点击位置
map.clearOverlays() // 清空地图上其他红色位置标识
map.addOverlay(marker) // 添加指定点
})
希望对你有用!
在 index.html 添加百度地图的 script
webpack.base.conf.js添加externals配置,内容如下,与entry平级:
entry: {
app: [‘babel-polyfill’, ‘./src/main.js’]
},
externals: {
‘BMap’: ‘BMap’
},
这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道
HTML
-
HTML5有哪些新特性?
-
Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?
-
如何实现浏览器内多个标签页之间的通信?
-
⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?
-
简述⼀下src与href的区别?
-
cookies,sessionStorage,localStorage 的区别?
-
HTML5 的离线储存的使用和原理?
-
怎样处理 移动端 1px 被 渲染成 2px 问题?
-
iframe 的优缺点?
-
Canvas 和 SVG 图形的区别是什么?
JavaScript
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)