Vue?Baidu?Map之自定義點(diǎn)圖標(biāo)bm-marker的示例
Vue Baidu Map--自定義點(diǎn)圖標(biāo)bm-marker
自定義點(diǎn)圖標(biāo)
1.將準(zhǔn)備好的圖標(biāo)放到項(xiàng)目中

2.使用import引入, 并在data中進(jìn)行聲明
<script>
import mapIconRed from './vue-baidu-map/img/marker_red_sprite.png'
export default {
data() {
return {
mapIconRed,
}
},
}
</script>3.在<bm-marker>中加入?yún)?shù)icon,填入聲明的圖標(biāo)和圖標(biāo)大小
<bm-marker :position="mapData.center"
:icon="{mapIconRed,size: {width: 20, height: 25}}">
</bm-marker>實(shí)現(xiàn)效果:

完整代碼:
<template>
<div class="map-content" v-if="iscollegeRole">
<baidu-map class="bm-view map"
:ak="mapAK"
:scroll-wheel-zoom="true"
:center="mapData.center"
:zoom="mapData.zoom"
:continuous-zoom="true"
@ready="handler">
<bm-marker :position="mapData.center"
:icon="{mapIconRed,size: {width: 20, height: 25}}">
</bm-marker>
</baidu-map>
</div>
</template>
<script>
import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
import bmMarker from 'vue-baidu-map/components/overlays/Marker'
import mapIconRed from './components/vue-baidu-map/img/marker_red_sprite.png'
export default {
components: {BaiduMap,bmMarker ,bmLabel },
data() {
return {
mapAK: 'XXXXXXXXXXX',//需要到百度地圖官網(wǎng)申請(qǐng)ak
BMap:null,
map:null,
mapData: {
//中心坐標(biāo)
center: { lng: 113.33, lat: 39.01 },
//縮放級(jí)別,1~19
zoom: 19
},
labelStyle:{color: 'red', fontSize : '14px',fontWeight:'600'},
}
},
methods:{
handler ({BMap, map}) {
console.log(BMap, map)
this.BMap = BMap
this.map = map
}
},
}
</script>
<style scope>
.map {
width: 100%;
height: 400px;
}
</style>vue-baidu-api地圖標(biāo)記點(diǎn)(自定義標(biāo)記圖標(biāo)),設(shè)置標(biāo)記點(diǎn)的優(yōu)先級(jí)
1:地圖標(biāo)記坐標(biāo)點(diǎn):使用自帶的圖標(biāo)
<bm-marker
v-for="(item, index) in pathArr"
:key="index + '_'"
:position="item.value"
>
</bm-marker>
<script>
export default {
data(){
return{
zoom:14,
center:{},
pathArr:[
{value:{lng:30.122314,lat:121.0013123113}},
{value:{lng:30.23132113,lat:121.12414131}},
]
}
}
methods:{
//初始化地圖
handler: function ({ BMap, map }) {
// 賦值,方便調(diào)用,本節(jié)被用到
this.BMap = BMap
this.map = map
var view = this.map.getViewport(eval(this.pathArr)) // this.pathArr 是我們知道的經(jīng)緯度??梢杂卸鄠€(gè)。全部以數(shù)組形式放在里面。
//進(jìn)入顯示的百分比
this.zoom = view.zoom;
//打開地圖時(shí)的位置
this.center = view.center;
},
}
}
</script>2:地圖自定義圖標(biāo)標(biāo)記點(diǎn):
使用z-index設(shè)計(jì)標(biāo)記點(diǎn)的優(yōu)先級(jí),可以使優(yōu)先級(jí)高的標(biāo)記點(diǎn)不被覆蓋,顯示在最上面
<bm-marker
v-for="(item, index) in pathArr"
:key="index + '_'"
:position="item.value"
:z-index="200"
:icon="{ url: imgEndSrc, size: { width: 30, height: 35 } }"
>
</bm-marker>
<script>
export default {
data(){
return{
zoom:14,
imgEndSrc: require('@/assets/img/map/end.png'),
center:{},
pathArr:[
{value:{lng:30.122314,lat:121.0013123113}},
{value:{lng:30.23132113,lat:121.12414131}},
]
}
}
methods:{
//初始化地圖
handler: function ({ BMap, map }) {
// 賦值,方便調(diào)用,本節(jié)被用到
this.BMap = BMap
this.map = map
var view = this.map.getViewport(eval(this.pathArr)) // this.pathArr 是我們知道的經(jīng)緯度。可以有多個(gè)。全部以數(shù)組形式放在里面。
//進(jìn)入顯示的百分比
this.zoom = view.zoom;
//打開地圖時(shí)的位置
this.center = view.center;
},
}
}
</script>到此這篇關(guān)于Vue Baidu Map--自定義點(diǎn)圖標(biāo)bm-marker的文章就介紹到這了,更多相關(guān)Vue 自定義點(diǎn)圖標(biāo)bm-marker內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實(shí)現(xiàn)開始時(shí)間和結(jié)束時(shí)間范圍查詢
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)開始時(shí)間和結(jié)束時(shí)間的范圍查詢,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
解決echarts圖表使用v-show控制圖表顯示不全的問題
這篇文章主要介紹了解決echarts圖表使用v-show控制圖表顯示不全的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue中的依賴注入provide和inject簡(jiǎn)單介紹
這篇文章主要介紹了vue中的依賴注入provide和inject簡(jiǎn)單介紹,provide 選項(xiàng)允許我們指定我們想要提供給后代組件的數(shù)據(jù)/方法,本文通過組價(jià)刷新的案列給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11
vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽
這篇文章主要介紹了vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
vue+element-ui實(shí)現(xiàn)主題切換功能
這篇文章主要介紹了vue+element-ui實(shí)現(xiàn)主題切換功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

