欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3引入騰訊地圖包含標注簡易操作指南

 更新時間:2024年09月18日 08:36:52   作者:RyzenVega  
這篇文章主要介紹了Vue3引入騰訊地圖的相關資料,并實現點擊地圖添加標注的功能,示例代碼提供了添加單個或多個標注的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1. 引入騰訊地圖API

JavaScript API | 騰訊位置服務 (qq.com)

首先在官網注冊賬號 并正確獲取并配置key后  找到合適的引入方式  本文不涉及版本操作和附加庫   據體引入參數參考如下圖

具體以鏈接中官方參數為準標題

在項目根目錄 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();
  });
});

// 經緯度
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, //設置地圖中心點坐標
    zoom: 17, //設置地圖縮放級別
    pitch: 0, //設置俯仰角
    rotation: 0, //設置地圖旋轉角度
    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);
  // 移除旋轉控件
  // map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ROTATION);

}
</script>

4. 點擊地圖  添加單個標注

添加多個標注只需刪除以下函數即可

markerLayer.setGeometries([])

示例代碼: 

<script setup>
import { nextTick, ref, onMounted } from 'vue';

onMounted(() => {
  // 渲染地圖
  nextTick(() => {
    initMap();
  });
});

// 經緯度
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, //設置地圖中心點坐標
    zoom: 17, //設置地圖縮放級別
    pitch: 0, //設置俯仰角
    rotation: 0, //設置地圖旋轉角度
    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);
  // 移除旋轉控件
  // 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.最終效果

總結

到此這篇關于Vue3引入騰訊地圖包含標注簡易操作的文章就介紹到這了,更多相關Vue3引入騰訊地圖標注內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue3中的組合式?API示例詳解

    Vue3中的組合式?API示例詳解

    組合式 API 是一系列 API 的集合,使我們可以使用函數而不是聲明選項的方式書寫 Vue 組件,這篇文章主要介紹了什么是Vue3的組合式?API,需要的朋友可以參考下
    2022-06-06
  • Vue?element-ui?el-cascader?只能末級多選問題

    Vue?element-ui?el-cascader?只能末級多選問題

    這篇文章主要介紹了Vue?element-ui?el-cascader?只能末級多選問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue2項目中封裝echarts地圖的優(yōu)雅方法

    vue2項目中封裝echarts地圖的優(yōu)雅方法

    這篇文章主要給大家介紹了關于vue2項目中封裝echarts地圖的優(yōu)雅方法,需要的朋友可以參考下
    2022-03-03
  • 詳解Vue-cli 創(chuàng)建的項目如何跨域請求

    詳解Vue-cli 創(chuàng)建的項目如何跨域請求

    本篇文章主要介紹了詳解Vue-cli 創(chuàng)建的項目如何跨域請求 ,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 解析Vue 2.5的Diff算法

    解析Vue 2.5的Diff算法

    本文將對于Vue 2.5.3版本中使用的Virtual Dom進行分析。updataChildren是Diff算法的核心,所以本文對updataChildren進行了圖文的分析。下面通過本文給大家分享Vue 2.5的Diff算法,需要的朋友參考下吧
    2017-11-11
  • Vue3子組件實現v-model用法的示例代碼

    Vue3子組件實現v-model用法的示例代碼

    在Vue 3中,實現自定義的input組件并支持v-model綁定,涉及到對modelValue這個默認prop的處理和對應的update:modelValue事件的觸發(fā),本文給大家介紹了Vue3子組件實現v-model用法的示例,需要的朋友可以參考下
    2024-04-04
  • Vue中this.$nextTick()的理解與使用方法

    Vue中this.$nextTick()的理解與使用方法

    this.$nextTick是在下次dom更新循環(huán)之后執(zhí)行延遲回調,在修改數據之后立即使用這個方法,獲取更新后的dom,下面這篇文章主要給大家介紹了關于Vue中this.$nextTick()的理解與使用的相關資料,需要的朋友可以參考下
    2022-02-02
  • Vue實現子組件向父組件傳遞多個參數的方法

    Vue實現子組件向父組件傳遞多個參數的方法

    在Vue框架中,組件間的通信是一個常見的需求,特別是在子組件需要向父組件傳遞多個參數時,合理的通信方式可以顯著提升代碼的可讀性和可維護性,本文將詳細介紹如何在Vue中實現子組件向父組件傳遞多個參數,需要的朋友可以參考下
    2024-10-10
  • vue-cli3單頁構建大型項目方案

    vue-cli3單頁構建大型項目方案

    這篇文章主要介紹了vue-cli3單頁構建大型項目方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • vue格式化element表格中的時間為指定格式

    vue格式化element表格中的時間為指定格式

    這篇文章主要介紹了vue中格式化element表格中的時間為指定格式,需要的朋友可以參考下
    2022-05-05

最新評論