bmaplib vue 调用_Vue集成百度地图
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集成百度地图相关推荐
- 前端Vue项目如何集成百度地图实现地图选址功能
文章目录 前言 一.实现效果图 二.准备工作 2.1.注册百度地图开发者账号 2.2.创建应用 三.实现步骤 1. 引用百度地图API文件 2. 新增地图选址组件 3. 使用组件 总结 参考文章 前言 ...
- vue项目中 使用百度地图 轨迹动画
在上篇博客中,介绍了如何在vue项目中集成百度地图,这篇博客主要是说如何在vue项目中使用轨迹动画 在项目开发过程中,比如你需要实时的观察一个人的行走路线,行走过程. 这个时候我们就需要在地图上使用 ...
- android百度导航实现,Android 集成百度地图实现设备定位
Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...
- Android 集成百度地图AR识别SDK(二)
废话 今天我们开始集成百度地图AR识别SDK(后面简称AR SDK)的第二章,这一章我们主要讲Android Studio如何配置AR SDK 我们如果单单只看文档的话,很难看懂如何集成,我们需要结合 ...
- AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能
在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...
- AngularJS进阶 十九 在AngularJS应用中集成百度地图实现定位功能
在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...
- 微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索
原创声明:本文来源于本人另一博客[微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索]原创作品,绝非他处摘取,转载请联系博主 本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能 ...
- 我可以处理Flutter集成百度地图问题解决
一年多的Flutter开发经验,从Flutter发布开始自己集成百度地图API成为插件,到百度地图自己封装Flutter插件后引用,自己解决百度地图官方封装插件问题并提交记录到官方.我可以帮助解决百度 ...
- Android 集成百度地图之申请TTS授权最新版
Android 集成百度地图之申请TTS授权最新版. 前提:登录百度地图开放平台,且已创建好应用. 开发文档-Android 导航SDK-TTS授权申请. 这里有个坑,简单说下,进入http://yu ...
最新文章
- Cell:一种用基因流定义微生物种群的反向生态学方法
- 计算机视觉未来走向:视频理解等5大趋势详解
- python 里什么时候缩进_python什么时候缩进
- linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
- python内存池机制,python基础—12python内存管理机制
- 【MapReduce】MapReduce工作机制
- iOS网络请求之multipart/form-data提交数据
- javaweb php异步处理,Spring-MVC异步请求之Servlet异步处理
- 郎文词根mdx_欧陆词典导入mdx_欧路词典导入音频
- 戴尔r410服务器虚拟磁盘,DELL服务器R410原装 SAS 6/IR RAID卡 阵列控制器卡 支持RAID0,1...
- 2021江西省数学建模A题
- 计算机课外活动小结,课外活动总结
- 戴尔inspiron5498清灰教程
- 微金所张继业:规范化运作 回馈投资人
- 做网站用空间好还是服务器好,做网站如何选择正确的空间服务器
- 刚参加完阿里面试:一面+二面+三面+HR四面,我的复盘经验总结
- 在visi_Visi如何使用Weave和Docker
- 第二章:IEEE2030.5官网相关资料介绍
- MATLAB学习笔记:非齐次线性方程组的求解
- linux 系统镜像os_iso 作为本地软件安装源
热门文章
- 国产数据库发展十策(三):是走MySQL路线还是PostgreSQL路线?
- TRUNCATE TABLE恢复-脚本
- 2021年7月国产数据库排行榜:openGauss成绩依旧亮眼,Kingbase向Top 10发起冲刺
- 今明两场直播丨openGauss和MogDB的优化分享;为什么学习 PostgreSQL 是当下不二之选...
- 由SGA组件内存移动导致前台业务超时问题处理过程
- 连载二:Oracle迁移文章大全
- 编程谜题:提升你解决问题的训练场
- 计划会议要开始了,产品负责人却没来…
- 案例解析丨Spark Hive自定义函数应用
- Kubernetes的拐点助推器:左手开源,右手边缘计算