1. 问题的出现

我们在Vue中使用地图的时候,在首页中引用了百度的api但还是报错,这个问题其实很好解决

2. 解决办法

2.1. 正规方法

在index.html页面中引入百度的API

/*

* index.html

**/

逛吃管理系统

content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

修改webpack的配置文件

/*

* 增加externals属性,并把百度用到的对象都导出去

**/

externals: {

"BMap": "BMap",

"BMapLib": "BMapLib"

},

在vue组件中使用的时候直接import进来BMap对象就可以随便使用了

{{title}}

{{plase}}

{{btn}}

import BMap from 'BMap'

import BMapLib from 'BMapLib'

export default{

data(){

return {

title: '目前您并没有区块数据',

plase: '请添加区块',

btn: '添加区块',

pointArr:[]

}

},

mounted(){

this.$nextTick(function () {

let _this = this

//在此调用api

let map = new BMap.Map("allmap") // 创建Map实例

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11)

let local = new BMap.LocalSearch(map, {

renderOptions: {map: map, autoViewport: true}

})

//回调获得覆盖物信息

let overlaycomplete = function(e){

let item=[]

let path=e.overlay.getPath()//返回多边形的点数组

for(var i=0;i

console.log("lng:"+path[i].lng+"lat:"+path[i].lat)

let obj={}

obj.lng=path[i].lng

obj.lat=path[i].lat

item.push(obj)

}

_this.pointArr.push(item)

console.log(_this.pointArr)

localStorage['mapPoint']=JSON.stringify(_this.pointArr)

}

let BMapPoint1=[]

var polygon = new BMap.Polygon(BMapPoint1, {strokeColor:"#438bd2", strokeWeight:3, strokeOpacity:0.8,strokeStyle: 'dashed'}) //创建多边形

map.addOverlay(polygon) //增加多边形

let styleOptions = {

strokeColor: "#438bd2", //边线颜色。

strokeWeight: 3, //边线的宽度,以像素为单位。

strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。

fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。

strokeStyle: 'dashed' //边线的样式,solid或dashed。

}

//实例化鼠标绘制工具

let drawingManager = new BMapLib.DrawingManager(map, {

isOpen: false, //是否开启绘制模式

enableDrawingTool: true, //是否显示工具栏

drawingToolOptions: {

anchor: BMAP_ANCHOR_TOP_RIGHT, //位置

offset: new BMap.Size(5, 5), //偏离值

},

polygonOptions: styleOptions, //多边形的样式

})

//添加鼠标绘制工具监听事件,用于获取绘制结果

drawingManager.addEventListener('overlaycomplete', overlaycomplete)

})

},

methods: {

btn_add(){

if (this.btn == '添加区块') {

this.title = ''

this.plase = "请保存添加区块"

this.btn = "保存"

} else {

this.title = '目前您并没有区块数据',

this.plase = '请添加区块',

this.btn = '添加区块'

}

}

}

}

.BMapLib_marker,.BMapLib_circle,.BMapLib_polyline,.BMapLib_rectangle {

display: none;

}

.block {

width: 318px;

height: 100%;

background: #f2f2f2;

position: absolute;

left: 0;

top: 0;

box-shadow: 3px 3px 3px #ccc;

color: #ccc;

.s_block {

width: 318px;

position: absolute;

left: 50%;

top: 50%;

transform: translate3d(-50%, -50%, 0);

text-align: center;

line-height: 30px;

button {

background: #328ff7;

color: #fff;

border: none;

border-radius: 5px;

height: 25px;

cursor: pointer;

}

}

}

2.2. 非正规方法

export function MP(ak) {

return new Promise(function (resolve, reject) {

window.onload = function () {

resolve(BMap)

}

var script = document.createElement("script")

script.type = "text/javascript"

script.src = "http://api.map.baidu.com/api?v=2.0&ak="+ak+"&callback=init"

script.onerror = reject

document.head.appendChild(script)

})

}

在你的百度地图页面中调用(ak 就是你的密钥)

欢迎使用B2B后台管理系统,如果有bug,请反馈到技术组。

#allmap {

height: 600px;

width: 100%;

}

/*不要嵌套太深*/

/*定义内容区域常量*/

$contentWidth: 1200px;

.homeContainer {

overflow-y: visible;

position: static;

> div {

width: 100%;

}

}

.header {

background-color: limegreen;

height: 60px;

}

.main {

position: absolute;

top: 60px;

bottom: 0;

display: flex;

}

.menu {

width: 200px;

background-color: purple;

float: left;

}

.content {

float: left;

flex: 1;

background-color: yellowgreen;

}

import {MP} from './map.js'

export default{

data(){

return {

ak: 'xxxxxxI4fumOXV3HW5xUjNnl903rPwI6wtX'

}

},

mounted(){

this.$nextTick(function () {

var _this = this

MP(_this.ak).then(BMap => {

//在此调用api

var map = new BMap.Map("allmap") // 创建Map实例

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11)

var local = new BMap.LocalSearch(map, {

renderOptions: {map: map, autoViewport: true}

})

local.searchNearby("小吃", "前门")

})

})

}

}

3. 参考和引用

4. 特别感谢

公司的小伙伴

5. 免责说明

本文档中的部分内容摘自网上的众多博客,仅作为自己知识的补充和整理,并分享给其他需要的coder,不会用于商用。

因为很多博客的地址看完没有及时做保存,所以很多不会在这里标明出处,非常感谢各位大牛的分享,也希望大家理解。

如果原文作者感觉不适,可以及时联系我shiguoqing999@163.com,我将及时删除争议部分内容

6. 追责声明

如有大段引用超过全文50%的内容,请在文档结尾标明原文出处:龙马行空-石国庆-朱庇特-https://my.oschina.net/u/1416844/blog,否则将视为抄袭,予以法律追究,请各位尊重个人知识产权。

bmaplib vue 调用_Vue集成百度地图相关推荐

  1. 前端Vue项目如何集成百度地图实现地图选址功能

    文章目录 前言 一.实现效果图 二.准备工作 2.1.注册百度地图开发者账号 2.2.创建应用 三.实现步骤 1. 引用百度地图API文件 2. 新增地图选址组件 3. 使用组件 总结 参考文章 前言 ...

  2. vue项目中 使用百度地图 轨迹动画

    在上篇博客中,介绍了如何在vue项目中集成百度地图,这篇博客主要是说如何在vue项目中使用轨迹动画 在项目开发过程中,比如你需要实时的观察一个人的行走路线,行走过程.  这个时候我们就需要在地图上使用 ...

  3. android百度导航实现,Android 集成百度地图实现设备定位

    Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...

  4. Android 集成百度地图AR识别SDK(二)

    废话 今天我们开始集成百度地图AR识别SDK(后面简称AR SDK)的第二章,这一章我们主要讲Android Studio如何配置AR SDK 我们如果单单只看文档的话,很难看懂如何集成,我们需要结合 ...

  5. AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  6. AngularJS进阶 十九 在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  7. 微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索

    原创声明:本文来源于本人另一博客[微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索]原创作品,绝非他处摘取,转载请联系博主 本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能 ...

  8. 我可以处理Flutter集成百度地图问题解决

    一年多的Flutter开发经验,从Flutter发布开始自己集成百度地图API成为插件,到百度地图自己封装Flutter插件后引用,自己解决百度地图官方封装插件问题并提交记录到官方.我可以帮助解决百度 ...

  9. Android 集成百度地图之申请TTS授权最新版

    Android 集成百度地图之申请TTS授权最新版. 前提:登录百度地图开放平台,且已创建好应用. 开发文档-Android 导航SDK-TTS授权申请. 这里有个坑,简单说下,进入http://yu ...

最新文章

  1. Cell:一种用基因流定义微生物种群的反向生态学方法
  2. 计算机视觉未来走向:视频理解等5大趋势详解
  3. python 里什么时候缩进_python什么时候缩进
  4. linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
  5. python内存池机制,python基础—12python内存管理机制
  6. 【MapReduce】MapReduce工作机制
  7. iOS网络请求之multipart/form-data提交数据
  8. javaweb php异步处理,Spring-MVC异步请求之Servlet异步处理
  9. 郎文词根mdx_欧陆词典导入mdx_欧路词典导入音频
  10. 戴尔r410服务器虚拟磁盘,DELL服务器R410原装 SAS 6/IR RAID卡 阵列控制器卡 支持RAID0,1...
  11. 2021江西省数学建模A题
  12. 计算机课外活动小结,课外活动总结
  13. 戴尔inspiron5498清灰教程
  14. 微金所张继业:规范化运作 回馈投资人
  15. 做网站用空间好还是服务器好,做网站如何选择正确的空间服务器
  16. 刚参加完阿里面试:一面+二面+三面+HR四面,我的复盘经验总结
  17. 在visi_Visi如何使用Weave和Docker
  18. 第二章:IEEE2030.5官网相关资料介绍
  19. MATLAB学习笔记:非齐次线性方程组的求解
  20. linux 系统镜像os_iso 作为本地软件安装源

热门文章

  1. 国产数据库发展十策(三):是走MySQL路线还是PostgreSQL路线?
  2. TRUNCATE TABLE恢复-脚本
  3. 2021年7月国产数据库排行榜:openGauss成绩依旧亮眼,Kingbase向Top 10发起冲刺
  4. 今明两场直播丨openGauss和MogDB的优化分享;为什么学习 PostgreSQL 是当下不二之选...
  5. 由SGA组件内存移动导致前台业务超时问题处理过程
  6. 连载二:Oracle迁移文章大全
  7. 编程谜题:提升你解决问题的训练场
  8. 计划会议要开始了,产品负责人却没来…
  9. 案例解析丨Spark Hive自定义函数应用
  10. Kubernetes的拐点助推器:左手开源,右手边缘计算