vue中使用百度地图vue-baidu-map进行构建多边形时的如何进行map实例调用和新。。。

阅读: 评论:0

vue中使⽤百度地图vue-baidu-map进⾏构建多边形时的如何进⾏map实例调⽤
和新。。。
1.在vue中使⽤百度地图不像是在js中,在我做的过程中遇到最⼤的问题就是不知道如何调⽤map实例,不像在JS中⾃⼰new⼀个map实例对象,在vue中⼀定要去创建@ready所对应的⽅法,⽅法名随便取,然后在⽅法中就得到map实例,接着赋值给data中的map,就可以在其他地⽅调⽤了。要在⽅法中传参数{BMap, map}才能承接,但在@ready中的⽅法不必传参,只有有了map实例,后⾯的其他操作才好进⾏。
handler({BMap, map}){
//只有在这个⽅法⾥才能拿到map实例,后⾯才能执⾏删除操作
console.log(BMap, map)
山西阳泉旅游景点大全
let _this =this
this.map = map
}
我这⾥是全局注册将⼀次性引⼊百度地图组件库的所有组件。所以在页⾯上就没有引⼊了,如果是局部注册的话需要进⾏引⼊
import BaiduMap from'vue-baidu-map/components/map/Map.vue'
还有我这边⽤的是Antd组件,如果是其他的如bootstrap等需要改⼀下,不然可能这些li的样式不对
<template>
<page-layout title="基础详情页">
<a-card>
<baidu-map class="map"ref="map":center="center":zoom="15":scroll-wheel-zoom="true"@ready="handler">
<bm-polygon class="polygon":path="polygonPath"@lineupdate="updatePolygonPath"fillColor="#F56C6C":editing="edit"/>
</baidu-map>
<ul class="drawing-panel">上海滨江公园壹号
<li.Button class="btn"@click="createRail">新建</li.Button>
<li.Button class="btn"@click="editRail">编辑</li.Button>
<li.Button class="btn"@click="clearRail">清除</li.Button>
<li.Button class="btn"@click="saveRail">保存</li.Button>
</ul>
<div id="container"></div>
</a-card>
</page-layout>
</template>
<script>
import DetailList from'../../components/tool/DetailList'
import PageLayout from'../../layouts/PageLayout'
export default{
name:'BasicDetail',
data(){
return{
center:{lng:119.32, lat:26.07},
polygonPath:[
{lng:119.321437,lat:26.067988},
{lng:119.34978048664546, lat:26.066239294066676},
{lng:119.33585576560436, lat:26.07754666038478}
]
,
edit:false,
map:{},
秦皇岛山海关门票多少钱}
},
methods:{
handler({BMap, map}){//只有在这个⽅法⾥才能拿到map实例,后⾯才能执⾏删除操作
console.log(BMap, map)西双版纳周边还可以去哪里
let _this =this
this.map = map
},
updatePolygonPath(e){
this.polygonPath = Path()
},
createRail(){
createRail(){
this.polygonPath=[
{lng:119.321437,lat:26.067988},
{lng:119.34978048664546, lat:26.066239294066676}, {lng:119.33585576560436, lat:26.07754666038478} ]
},
editRail(){
this.edit=!this.edit
},
clearRail(){
北斗天气预报精确50米下载this.map.clearOverlays()
this.polygonPath=[]
},
saveRail(){
alert(JSON.stringify(this.polygonPath))
}
},
}
</script>
<style lang="less"scoped>
.map{
width: 100%;
height: 800px;
}
.polygon{
stroke-color:"blue";
stroke-opacity:0.5 ;
stroke-weight:1 ;
fillOpacity:0.5
}
.
title{
color:@title-color;
font-size: 16px;
font-weight: 500;
margin-bottom: 16px;
}
.drawing-panel{
z-index: 999;
position: fixed;
top: 18.5rem;
right: 3.5rem;
padding: 1rem 1rem;
border-radius: .25rem;
background-color: #fff;
box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
}
.btn{西安大雁塔门票多少
margin-right: 10px;
font-size: 20px;
cursor: pointer;
}
</style>
⼤概效果如图

本文发布于:2023-08-11 02:24:09,感谢您对本站的认可!

本文链接:http://www.035400.com/whly/1/575336.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:才能   实例   门票   百度   地图   注册   问题   遇到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2024-2030 Comsenz Inc.Powered by © 文化旅游网 滇ICP备2022007236号-403 联系QQ:1103060800网站地图