vue3使用百度地圖超詳細(xì)圖文教程
前情提要:
提示:該博客vue采用vue3,使用百度地圖通過(guò)組件vue-baidu-map-3x:
組件官網(wǎng):https://map.heifahaizei.com/doc/baidu-map.html
下面會(huì)從頭開(kāi)始介紹如何使用百度地圖以及常用組件功能(附帶遇到的問(wèn)題和解決方案)
申請(qǐng)百度地圖AK秘鑰
步驟:1.進(jìn)入百度地圖開(kāi)放平臺(tái) | 百度地圖API SDK | 地圖開(kāi)發(fā) 2.打開(kāi)頂部控制臺(tái) 3.找到應(yīng)用管理中-我的應(yīng)用-創(chuàng)建應(yīng)用
注意:1.前端開(kāi)發(fā)選擇瀏覽器端,2.必須配置白名單,只有該白名單中的網(wǎng)站才能成功發(fā)起調(diào)用,多個(gè)域名之間請(qǐng)用英文半角逗號(hào)隔開(kāi),如果不想對(duì)任何域名做限制,設(shè)置為英文半角星號(hào)*

接下來(lái)復(fù)制AK

開(kāi)啟Vue3使用vue-baidu-map-3x:
1.安裝
安裝vue-baidu-map-3x:npm install vue-baidu-map-3x --save:
全局注冊(cè):在main.js中

局部注冊(cè):局部注冊(cè)這邊請(qǐng)
注意事項(xiàng):1.BaiduMap 組件容器本身是一個(gè)空的塊級(jí)元素,如果容器不定義高度,百度地圖將渲染在一個(gè)高度為 0 不可見(jiàn)的容器內(nèi)
2.沒(méi)有設(shè)置 center 和 zoom 屬性的地圖組件是不進(jìn)行地圖渲染的。當(dāng)center 屬性為合法地名字符串時(shí)例外,因?yàn)榘俣鹊貓D會(huì)根據(jù)地名自動(dòng)調(diào)整 zoom 的值
3.由于百度地圖 JS API 只有 JSONP 一種加載方式,因此 BaiduMap 組件及其所有子組件的渲染只能是異步的。因此,請(qǐng)使用在組件的 ready 事件來(lái)執(zhí)行地圖 API 加載完畢后才能執(zhí)行的代碼,不要試圖在 vue 自身的生命周期中調(diào)用 BMap 類,更不要在這些時(shí)機(jī)修改 model 層
2.應(yīng)用
1.初始展示
注意:地圖初始須設(shè)置center,zoom否則地圖不會(huì)初始化, 地圖須設(shè)置高度才能展示,且必須設(shè)置寬高
<template>
<baidu-map
class="bm-view"
:center="{ lng: 116.404, lat: 39.915 }"
:zoom="15"
>
</baidu-map>
</template>
<script setup>
</script>
<style scoped>
.bm-view {
width: 100%;
height: 80%;
}
</style>

2.控件
控件屬性:
1.anchor:控件所在方位 可選(BMAP_ANCHOR_TOP_LEFT,BMAP_ANCHOR_TOP_RIGHT,BMAP_ANCHOR_BOTTOM_LEFT,BMAP_ANCHOR_BOTTOM_RIGHT) 左上,右上,左下,右下
2.offset:控件偏移值 可在anchor基礎(chǔ)上進(jìn)行寬高偏移 :offset='{height:100,width:100}'
縮放控件:
<bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>

比例尺:
<bm-scale anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-scale>

地圖類型:
<bm-map-type :map-types="['BMAP_NORMAL_MAP', 'BMAP_HYBRID_MAP']" ></bm-map-type> 分別是二維地圖和衛(wèi)星地圖

縮略圖:
<bm-overview-map anchor="BMAP_ANCHOR_BOTTOM_RIGHT" :isOpen="true"></bm-overview-map>

版權(quán):
<bm-copyright anchor="BMAP_ANCHOR_TOP_RIGHT" :copyright="[{ id: 1, content: '<a>唯我自知博客</a>' },]"></bm-copyright>
城市列表-選擇城市搜索城市(支持市級(jí)以上搜索)
<bm-city-list anchor="BMAP_ANCHOR_TOP_LEFT"></bm-city-list>

全景控件
<bm-panorama></bm-panorama>

測(cè)距-第三方測(cè)距插件

定位控件
定位詳解-在這里我遇到了開(kāi)啟定位依舊找不到位置的問(wèn)題
3.自定義主題
注意:如果:center綁定的不是經(jīng)緯度而是地址名稱,則主題效果不生效
地圖模板:https://lbs.baidu.com/apiconsole/custommap
百度地圖實(shí)例允許用戶設(shè)置自定義配色風(fēng)格以配合不同風(fēng)格的主題設(shè)計(jì),主題數(shù)據(jù)格式參考
<template>
<baidu-map class="map" :center="{ lng: 116.404, lat: 39.915 }" :zoom="15" :mapStyle="mapStyle">
</baidu-map>
</template>
<script setup>
import { ref } from 'vue';
const mapStyle = ref({
styleJson: [
//樣式
]
});
</script>

將上方復(fù)制的代碼填入到mapStyle.styleJson中
4.覆蓋物--點(diǎn)
<bm-marker :position="{lng: 116.404, lat: 39.915}" :dragging="true" ></bm-marker>
詳細(xì)屬性 -- 對(duì)屬性類型不明確的 基礎(chǔ)中搜索類型

事件

總結(jié)
到此這篇關(guān)于vue3使用百度地圖超詳細(xì)的文章就介紹到這了,更多相關(guān)vue3使用百度地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue+Axios實(shí)現(xiàn)文件上傳自定義進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Vue+Axios實(shí)現(xiàn)文件上傳自定義進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
vue + typescript + video.js實(shí)現(xiàn) 流媒體播放 視頻監(jiān)控功能
視頻才用流媒體,有后臺(tái)實(shí)時(shí)返回?cái)?shù)據(jù), 要支持flash播放, 所以需安裝對(duì)應(yīng)的flash插件。這篇文章主要介紹了vue + typescript + video.js 流媒體播放 視頻監(jiān)控,需要的朋友可以參考下2019-07-07
vue中v-model動(dòng)態(tài)生成的實(shí)例詳解
這篇文章主要介紹了vue中v-model動(dòng)態(tài)生成的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10
vue項(xiàng)目打包成桌面快捷方式(electron)的方法
本文主要介紹了vue項(xiàng)目打包成桌面快捷方式(electron)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
使用websocket和Vue2中的props實(shí)時(shí)更新數(shù)據(jù)方式
這篇文章主要介紹了使用websocket和Vue2中的props實(shí)時(shí)更新數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

