最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3.0引入百度地圖并標記點的實現(xiàn)代碼

 更新時間:2022年08月15日 10:15:27   作者:HHUFU..  
這篇文章主要介紹了vue3.0引入百度地圖并標記點,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

首先新建一個js,主要用來引入百度地圖的js,代碼如下:

export function baiduMap() {
    return new Promise(function(resolve, reject) {
        window.baiduMap = function() {
            resolve()
        }

        var script2 = document.createElement('script')
        script2.type = 'text/javascript'
        script2.src = `http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js`

        var link = document.createElement('link')
        link.rel = 'stylesheet'
        link.href = `http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css`

        document.head.appendChild(link)
        document.head.appendChild(script2)

        var script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = `http://api.map.baidu.com/api?v=3.0&ak=你的ak&callback=baiduMap`
        script.onerror = reject
        document.head.appendChild(script)
    })
}

獲取生成密匙: ak密匙(百度地圖)

其次,創(chuàng)建baidu-map.vue,代碼如下:

<template>
  <el-dialog title="門店地圖分布" v-model="open" width="70%"  draggable>
    <div id="map" :style="{height:mapHeight}">
      <div id="allmap" ref="allmap" ></div>
    </div>
  </el-dialog>

</template>
<script setup name="BaiduMap">
import {baiduMap} from '@/api/post/baiduMap'
import {getLineShopMap} from '@/api/post/line'
import {nextTick} from "vue";

const mapHeight = ref('70vh')
const open = ref(false)
const allmap = ref(null)

function map(id) {
  open.value = true
  getLineShopMap(id).then(res => {
    var markerArr = []
    var data = res.data
    for (var i = 0; i < data.length; i++) {
      var point = data[i].lng + "," + data[i].lat;
      var shop = '{ title: "' + data[i].shopname + '",areaname: "' + data[i].name + '", point: "' + point + '", receiver: "' + data[i].receiver + '", mobile: "' + data[i].mobile + '" }';
      var shopobj = eval('(' + shop + ')');
      markerArr.push(shopobj);
    }
    nextTick(res => {
      baiduMap().then(thatMap => {
        // 創(chuàng)建地圖實例
        var map = new BMap.Map("map");
        var point = new BMap.Point(113.312213, 23.147267); //地圖中心點,廣州市
        map.centerAndZoom(point, 13); // 初始化地圖,設(shè)置中心點坐標和地圖級別。
        map.enableScrollWheelZoom(true); //啟用滾輪放大縮小
        //地圖、衛(wèi)星、混合模式切換
        map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP]}));
        //向地圖中添加縮放控件
        var ctrlNav = new window.BMap.NavigationControl({
          anchor: BMAP_ANCHOR_TOP_LEFT,
          type: BMAP_NAVIGATION_CONTROL_LARGE
        });
        map.addControl(ctrlNav);
        //向地圖中添加縮略圖控件
        var ctrlOve = new window.BMap.OverviewMapControl({
          anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
          isOpen: 1
        });
        map.addControl(ctrlOve);
        //向地圖中添加比例尺控件
        var ctrlSca = new window.BMap.ScaleControl({
          anchor: BMAP_ANCHOR_BOTTOM_LEFT
        });
        map.addControl(ctrlSca);

        var point = new Array(); //存放標注點經(jīng)緯信息的數(shù)組
        var marker = new Array(); //存放標注點對象的數(shù)組
        var info = new Array(); //存放提示信息窗口對象的數(shù)組
        var searchInfoWindow = new Array();//存放檢索信息窗口對象的數(shù)組

        for (var i = 0; i < markerArr.length; i++) {
          var p0 = markerArr[i].point.split(",")[0]; //
          var p1 = markerArr[i].point.split(",")[1]; //按照原數(shù)組的point格式將地圖點坐標的經(jīng)緯度分別提出來
          point[i] = new window.BMap.Point(p0, p1); //循環(huán)生成新的地圖點
          marker[i] = new window.BMap.Marker(point[i]); //按照地圖點坐標生成標記
          map.addOverlay(marker[i]);
          marker[i].setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫
          //顯示marker的title,marker多的話可以注釋掉
          var label = new window.BMap.Label(markerArr[i].title, {offset: new window.BMap.Size(20, -10)});
          marker[i].setLabel(label);
          // 創(chuàng)建信息窗口對象  receiver: "'+data[i].receiver+'", mobile:
          info[i] = "<p style='font-size:14px;line-height:20px'>" + "</br>門店名稱:" + markerArr[i].title + "</br>所在區(qū)域:" + markerArr[i].areaname + "</br>接收人:" + markerArr[i].receiver + "</br> 門店電話:" + markerArr[i].mobile + "</br></p>";
          //創(chuàng)建百度樣式檢索信息窗口對象
          searchInfoWindow[i] = new BMapLib.SearchInfoWindow(map, info[i], {
            title: markerArr[i].title,      //標題
            width: 290,             //寬度
            // height : 40,              //高度
            panel: "panel",         //檢索結(jié)果面板
            enableAutoPan: true,     //自動平移
            searchTypes: [
              BMAPLIB_TAB_SEARCH,   //周邊檢索
              //    BMAPLIB_TAB_TO_HERE,  //到這里去
              //   BMAPLIB_TAB_FROM_HERE //從這里出發(fā)
            ]
          });

          //添加點擊事件
          marker[i].addEventListener("click",
              (function (k) {
                // js 閉包
                return function () {
                  //將被點擊marker置為中心
                  // map.centerAndZoom(point[k], 13);
                  // console.log(searchInfoWindow[k])
                  //在marker上打開檢索信息窗口
                  searchInfoWindow[k].open(marker[k]);
                }
              })(i)
          );
        }
      });
    })
  })
}

defineExpose({
  map
})

</script>
<style>
#allmap {
  height: 100%;
  overflow: hidden;
}
</style>


最后,在你需要用到的界面引用

引用界面的script的代碼

import BaiduMap from "./baidu-map";
const mapRef = ref(null);

/**
 * 查看地圖
 * @param selection
 */
function openMap() {
  mapRef.value.map(form.value.id)
}

最終效果

參考:博客

以上就是vue3.0引入百度地圖并標記點的詳細內(nèi)容,更多關(guān)于vue3.0百度地圖標記點的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue單頁面改造多頁面應(yīng)用詳解

    vue單頁面改造多頁面應(yīng)用詳解

    本文主要介紹了vue單頁面改造多頁面應(yīng)用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • vue實現(xiàn)簡單無縫滾動效果

    vue實現(xiàn)簡單無縫滾動效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)簡單無縫滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 淺談vue-props的default寫不寫有什么區(qū)別

    淺談vue-props的default寫不寫有什么區(qū)別

    這篇文章主要介紹了淺談vue-props的default寫不寫有什么區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • VUE div click無效的問題及解決

    VUE div click無效的問題及解決

    這篇文章主要介紹了VUE div click無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • element?實現(xiàn)導航欄收起展開功能及思路

    element?實現(xiàn)導航欄收起展開功能及思路

    這篇文章主要介紹了element?實現(xiàn)導航欄收起展開功能,實現(xiàn)思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個屬性也是 element 上的一個參數(shù),意思為是否開啟折疊動畫,在 data 中定義 isCollapse ,用 true 和 false 控制展開與收起,需要的朋友可以參考下
    2023-01-01
  • 淺談vue的iview列表table render函數(shù)設(shè)置DOM屬性值的方法

    淺談vue的iview列表table render函數(shù)設(shè)置DOM屬性值的方法

    下面小編就為大家?guī)硪黄獪\談vue的iview列表table render函數(shù)設(shè)置DOM屬性值的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 解決vue前后端端口不一致的問題

    解決vue前后端端口不一致的問題

    這篇文章主要介紹了解決vue前后端端口不一致的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 解決vue create 創(chuàng)建項目只有兩個文件問題

    解決vue create 創(chuàng)建項目只有兩個文件問題

    這篇文章主要介紹了解決vue create 創(chuàng)建項目只有兩個文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • unix時間戳轉(zhuǎn)換的方法詳解

    unix時間戳轉(zhuǎn)換的方法詳解

    將 unix 時間戳轉(zhuǎn)換為日期時間和使用日期時間轉(zhuǎn)換為 unix 時間戳,在項目中常常用到,其中vue中的moment庫很是方便,下面小編就來為大家講講具體使用吧
    2023-09-09
  • IE9 elementUI文件上傳的問題解決

    IE9 elementUI文件上傳的問題解決

    這篇文章主要介紹了IE9 elementUI文件上傳的問題解決,有需要了解IE9 elementUI文件上傳的朋友可參考。希望此文章對各位有所幫助
    2018-10-10

最新評論

商都县| 德江县| 桐庐县| 治县。| 昌宁县| 宣汉县| 襄垣县| 白沙| 大庆市| 固阳县| 瑞安市| 杭锦后旗| 长宁区| 离岛区| 荥经县| 洪江市| 利川市| 宁强县| 安丘市| 赤城县| 伊吾县| 清涧县| 嘉鱼县| 澄城县| 义马市| 巴林左旗| 正定县| 汶川县| 辽阳市| 根河市| 治县。| 普陀区| 娄底市| 杂多县| 庆云县| 彰化县| 南丹县| 肥乡县| 高青县| 横山县| 富裕县|