html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图
3.jpg
vue的百度地图早就有vue-baidu-map这里就不赘述了,
自己去直接对着API写就好了,基本上已经满足绝大多数需求了还简单方便。
vue-baidu-map 传送门 https://dafrok.github.io/vue-baidu-map/#/zh/index
这里主要是在vue里面引入BMapGL,或者其他个性化地图。
另外还有一篇文章是更加去全面的关于 BMapGL + BMapGLLib 引入的: vue引入百度地图BMapGL,以及辅助工具BMapGLLib 的引入,BMapGL鼠标绘制功能。
因为异步的问题直接index.html引入会报错,所以采用以下方式
关于地图异步这个问题这里啰嗦一下(年纪大了就是喜欢啰嗦?):
地图组件渲染完毕时触发,返回一个百度地图的核心类和地图实例。百度地图组件是异步加载,请不要尝试在组件的生命周期中访问 BMap 核心类和 map 实例,如有需要,请在所需组件的 ready 事件回调函数的参数中获取。
——【vue-baidu-map,全局组件事件】
地图没有生成的时候不要进行任何对地图的操作。
譬如说你的坐标中心点初始化是要从后台获取数据进行初始化定位的。
一定要等到地图渲染完成以后再进行操作。也就是关于地图的初始化数据接口的请求要放在地图ready里面。(这方面出错容易引起的错误例子:一开始地图空白,刷新一下就好了什么的。。。map报错。map, BMap,undefined什么的。。。。)
文件源码地址
文件结构图解
文件结构图解.png
在src里面创建一个bmpgl.js
其实建立在哪看你自己的意愿啦。(小声逼逼)
// bmpgl.js
export function BMPGL(ak) {
return new Promise(function(resolve, reject) {
window.init = function() {
// eslint-disable-next-line
resolve(BMapGL)
}
const script = document.createElement('script')
script.type = 'text/javascript'
script.src = `http://api.map.baidu.com/api?v=1.0&type=webgl&ak=${ak}&callback=init`
script.onerror = reject
document.head.appendChild(script)
})
}
vue页面里面引入
import { BMPGL } from "@/bmpgl.js"
export default {
name: "home",
data() {
return {
ak: "XXXXXXXXX", // 百度的地图密钥
myMap: null
};
},
mounted() {
this.initMap()
},
methods: {
initMap() {
// 传入密钥获取地图回调。
BMPGL(this.ak).then((BMapGL) => {
// 创建地图实例
let map = new BMapGL.Map("container");
// 创建点坐标 axios => res 获取的初始化定位坐标
let point = new BMapGL.Point(114.031761, 22.542826)
// 初始化地图,设置中心点坐标和地图级别
map.centerAndZoom(point, 19)
//开启鼠标滚轮缩放
map.enableScrollWheelZoom(true)
map.setHeading(64.5)
map.setTilt(73)
// 保存数据
// this.myMap = map
})
.catch((err)=>{
console.log(err)
})
},
}
};
.allmap {
width: 100%;
height: 100vh;
position: relative;
z-index: 1;
}
html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图相关推荐
- 引入react文件报错_react 引入react-thunk applyMiddleware(...middleware) 报错
学习react redux时引入react-thunk中间件报错 报错信息 项目是用和第,.年过事工宗据指数遍互业经搞断果会create-react-app抖要支圈者器说是事天开的.年后编定功口小发还 ...
- vue引入百度地图 报错 BMap未定义 error ‘BMap‘ is not defined
vue项目引入百度地图 报错 BMap未定义; 在经过了多次的测试后,修改webpack等配置文件后,发现了一个十分便捷的处理方法: 首先是在地图加载的方法中打印了window,发现BMap是挂载在w ...
- vue echarts使用map地图 引入china.js报错Cannot read property ‘echarts’ of undefined
下载china.js导入项目中引入,会报错Cannot read property 'echarts' of undefined import Echarts from "echarts&q ...
- Vue中引入swiper插件报错:To install it, you can run: npm install --save swiper/css/swiper.css
Vue中引入swiper插件报错:To install it, you can run: npm install --save swiper/css/swiper.css 今天在写项目的时候用到了Sw ...
- vue组件名,修改了大小写导致 引入路径~报错
引入路径一直报错,原因是:创建的时候用了banner.vue,后再修改为Banner.vue导致的 解决方法: 方法一:删除修改过的.vue.重新创建 方法二:修改.vue文件名的字符长 ...
- css引入报错,vue项目通过import引入外部css报错怎么办
vue项目通过import引入外部css报错的解决办法:首先在[webpack.config.js]中添加相关内容,添加后重新npm run dev:然后json文件中查看是否存在[css-loade ...
- uniapp 引入vant 2 报错 require is not defined
uniapp 引入vant 2 报错 require is not defined 一.Vue 2 项目,安装 Vant 2 npm i vant@latest-v2 二.main.js 导入Vant ...
- include引入php报错,如何解决引入php文件报错的问题
引入php文件报错的解决办法:首先检测被包含的文件读权限是否打开:然后检测被包含的文件路径上的每个目录的x权限是否打开,将该权限打开即可. php脚本中include文件报错解决方法 经常当php页面 ...
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 问题:引入依赖之后会报错.在maven中央库中查找ojdbc, ...
最新文章
- 用 for/in 在 Java 5.0 中增强循环
- C#基础第三天-作业-集合-冒泡排序-模拟名片
- FreeSql (二十五)延时加载
- Ibatis - Open quote is expected for attribute {1} associated with an element type '
- 使用mybatis插入数据(insert)时返回主键的问题
- Android学习系列(11)--App列表之拖拽ListView(下)
- java 重载 调用指定_java 方法重载的时候,同一个类,父子类,调用哪个方法的问题...
- github里的默认域_FProbe 获取域/子域的列表,并探查工作中的http / https服务器。...
- TZOJ 1072: 编辑距离(动态规划)
- ERP系统健康体检的三大指标
- 【语音识别】基于matlab GUI HMM 0~9数字和汉字语音识别(带面板)【含Matlab源码 1716期】
- 转载——yum源的超级简单配置
- OFD文件如何打印?怎么打开?如何转换PDF?
- 误差传递公式(law of propagation of uncertainties)
- 淘宝购物车测试用例+流程图
- 空间滤波 - 钝化掩蔽和高提升滤波
- matlab2014simulink中的三相晶闸管整流桥怎么找_哈尔滨有源滤波组件HPD2000-100-4L坏了怎么办 - 哈尔滨照明工业...
- 姜小白的Python日记Day9 变量与递归
- php判断学生姓名,【PHP】百家姓姓名判断
- 免费天气查询工具类源码,开箱即用,根据中国气象局API编写。高效稳定