Vue3引入騰訊地圖包含標注簡易操作指南
1. 引入騰訊地圖API
JavaScript API | 騰訊位置服務(wù) (qq.com)
首先在官網(wǎng)注冊賬號 并正確獲取并配置key后 找到合適的引入方式 本文不涉及版本操作和附加庫 據(jù)體引入?yún)?shù)參考如下圖

具體以鏈接中官方參數(shù)為準標題
在項目根目錄 index.html 中 寫入如下代碼
<!-- 引入騰訊地圖 --> <script src="https://map.qq.com/api/gljs?v=1.exp&key=你的key"></script>
粘貼后key替換為自己的key
2. 創(chuàng)建容器
<div class="map_container" ref="mapRef"></div>
.map_container {
width: 500px;
height: 500px;
position: relative;
// 阻止復制
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE/Edge */
user-select: none; /* 標準語法 */
}3. 渲染地圖
<script setup>
import { nextTick, ref, onMounted } from 'vue';
onMounted(() => {
// 渲染地圖
nextTick(() => {
initMap();
});
});
// 經(jīng)緯度
const formData = ref({
lat: 39.98412,
lng: 116.307484,
})
// 地圖實例
let map = null
// marker圖層
let markerLayer = null
// 初始化地圖
const mapRef = ref(null)
const TMap = window.TMap
const initMap = () => {
//定義地圖中心點坐標
const mapCenter = new TMap.LatLng(formData.value.lat, formData.value.lng)
map = new TMap.Map(mapRef.value, {
center: mapCenter, //設(shè)置地圖中心點坐標
zoom: 17, //設(shè)置地圖縮放級別
pitch: 0, //設(shè)置俯仰角
rotation: 0, //設(shè)置地圖旋轉(zhuǎn)角度
viewMode: '2D'
})
// 以下代碼按需添加
// 移除logo以及左下角信息
// let logoInfo = document.querySelector('canvas+div:last-child')
// logoInfo.style.display = 'none'
// 禁止拖拽
// map.setDraggable(false);
// 禁止縮放
// map.setScrollable(false);
//移除控件縮放
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ZOOM);
// 移除比例尺控件
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.SCALE);
// 移除旋轉(zhuǎn)控件
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ROTATION);
}
</script>4. 點擊地圖 添加單個標注
添加多個標注只需刪除以下函數(shù)即可
markerLayer.setGeometries([])
示例代碼:
<script setup>
import { nextTick, ref, onMounted } from 'vue';
onMounted(() => {
// 渲染地圖
nextTick(() => {
initMap();
});
});
// 經(jīng)緯度
const formData = ref({
lat: 39.98412,
lng: 116.307484,
})
// 地圖實例
let map = null
// marker圖層
let markerLayer = null
// 初始化地圖
const mapRef = ref(null)
const TMap = window.TMap
const initMap = () => {
//定義地圖中心點坐標
const mapCenter = new TMap.LatLng(formData.value.lat, formData.value.lng)
map = new TMap.Map(mapRef.value, {
center: mapCenter, //設(shè)置地圖中心點坐標
zoom: 17, //設(shè)置地圖縮放級別
pitch: 0, //設(shè)置俯仰角
rotation: 0, //設(shè)置地圖旋轉(zhuǎn)角度
viewMode: '2D'
})
// 以下代碼按需添加
// 移除logo以及左下角信息
// let logoInfo = document.querySelector('canvas+div:last-child')
// logoInfo.style.display = 'none'
// 禁止拖拽
// map.setDraggable(false);
// 禁止縮放
// map.setScrollable(false);
//移除控件縮放
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ZOOM);
// 移除比例尺控件
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.SCALE);
// 移除旋轉(zhuǎn)控件
// map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ROTATION);
//初始化marker圖層
markerLayer = new TMap.MultiMarker({
map: map
})
addMarker()
map.on('click', clickHandler)
}
// 地圖點擊事件
const clickHandler = (event) => {
const { lat, lng } = event.latLng
formData.value.lat = String(lat).slice(0, 8)
formData.value.lng = String(lng).slice(0, 8)
addMarker()
}
// 添加標注
const addMarker = () => {
// 清空標注 使其始終為一個
markerLayer.setGeometries([])
markerLayer.add({
position: new TMap.LatLng(formData.value.lat, formData.value.lng)
})
}
</script>5.最終效果

總結(jié)
到此這篇關(guān)于Vue3引入騰訊地圖包含標注簡易操作的文章就介紹到這了,更多相關(guān)Vue3引入騰訊地圖標注內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue watch偵聽器有無immediate的運行順序問題
這篇文章主要介紹了vue watch偵聽器有無immediate的運行順序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
vue3+vite使用History路由模式打包部署項目的步驟及注意事項
這篇文章主要介紹了vue3+vite使用History路由模式打包部署項目的步驟及注意事項,配置過程包括在Vue項目中設(shè)置路由模式、調(diào)整打包配置以及Nginx服務(wù)器的配置,正確的部署配置能夠確保應用順利運行,提升用戶體驗,需要的朋友可以參考下2024-10-10
vue 獲取到數(shù)據(jù)但卻渲染不到頁面上的解決方法
這篇文章主要介紹了vue 獲取到數(shù)據(jù)但卻渲染不到頁面上的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Vue2前端生成二維碼并實現(xiàn)掃碼跳轉(zhuǎn)完整教程
在現(xiàn)代Web應用開發(fā)中,二維碼掃描已成為連接物理世界與數(shù)字世界的核心橋梁,這篇文章主要介紹了Vue2前端生成二維碼并實現(xiàn)掃碼跳轉(zhuǎn)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-04-04

