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

Vue2項(xiàng)目中對(duì)百度地圖的封裝使用詳解

 更新時(shí)間:2022年06月16日 11:10:24   作者:liyoro  
近期項(xiàng)目需求相關(guān)地圖限定使用百度地圖,功能比較簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于Vue2項(xiàng)目中對(duì)百度地圖的封裝使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

百度地圖的使用:

vue項(xiàng)目,有個(gè) vue-baidu-map 可以用,但是好久不更新了。

React項(xiàng)目,百度官方出了個(gè)React版的,可以直接用,React-BMapGL。

除此以外,百度官方的都是 JavaScript API,這里以此來(lái)用vue封裝下,方便使用。

需求

  • 組件按需引入。個(gè)人喜歡代碼干干凈凈,只要項(xiàng)目需要的功能就行了
  • 簡(jiǎn)單的封裝下,方便直接按官方文檔使用需要的功能,方便復(fù)用
  • 基于Vue2 、JavaScript API v3.0
  • 基于項(xiàng)目需求封裝,有些東西沒(méi)弄,需要的自己DIY吧

知識(shí)點(diǎn)

  • Vue插槽 slot,方便在地圖上使用各種百度地圖功能
  • Vue通知 emit、on。為了傳參,主要是獲取地圖map對(duì)象
  • Vue組件封裝,加載地圖后,各種地圖功能,如:打點(diǎn)、劃線、彈窗等一系列的封裝使用
  • 百度地圖自定義彈窗的實(shí)現(xiàn);彈窗調(diào)用vue內(nèi)部方法的實(shí)現(xiàn)

實(shí)現(xiàn)

components – bmap – index.vue

地圖單文件組件,主要代碼如下,具體參考代碼

<template>
  <div class="bmap-view">
    <div id="bmapcontainer" :style="{ height: mapHeight }" />
    <slot />
  </div>
</template>

<script>
import indexjs from './index.js'
export default {
  ...indexjs
}
</script>

<style lang='scss' scoped>
</style>

components - bmap - bmap-jsapi-loader - index.js

百度地圖異步加載的處理文件,具體看代碼

components – map – index.js

地圖組件的業(yè)務(wù)代碼,可以配置地圖開放的屬性props和監(jiān)聽(tīng)事件。

例如這里,開放了ak(申請(qǐng)的百度地圖key),styleId(百度地圖樣式id),zoom(縮放值),center(地圖加載默認(rèn)中心點(diǎn)),height(地圖默認(rèn)高度值)

主要代碼如下,具體參考代碼

import BMapLoader from './bmap-jsapi-loader'

export default {
  name: 'BmapView',
  props: {
    ak: {
      type: String,
      default: 'ZMVYYKDUVYZIHl5ygAaKyBhs7Gkg24SX'
    },
    styleId: {
      type: String,
      default: '41d153e7e9e7bcda9541996853046c93'
    },
    zoom: {
      type: Number,
      default: 15
    },
    center: {
      type: [Array, String],
      default() {
        return [113.22682, 23.410167]
      }
    },
    height: {
      type: Number | String,
      default: 520
    }

  },
  computed: {
    mapHeight() {
      return isNaN(this.height) ? this.height : `${this.height}px`
    }
  },
  data() {
    return {
      map: ''
    }
  },
  beforeDestroy() {
    this.map = null
  },
  mounted() {
  },
  created() {
    this.initMap()
  },
  methods: {
    initMap() {
      BMapLoader.load({
        key: this.ak,
        version: '3.0'
      }).then((BMap) => {
        this.map = new BMap.Map('bmapcontainer', {
          enableBizAuthLogo: false
        })
        const point = new BMap.Point(this.center[0], this.center[1])
        this.map.centerAndZoom(point, this.zoom)
        this.map.setMapStyleV2({
          styleId: this.styleId
        })

        this.$emit('bmap-ready', this.map)
      }).catch(e => {
        console.log(e)
      })
    }

  },
  watch: {}
}

以上是使用百度地圖的基礎(chǔ)

調(diào)用方式

views - bmapTest - index.js

components: {
  BmapView: () => import ('@/components/bmap/index.vue')
}

views - bmapTest - index.vue

<bmap-view />

效果圖

打點(diǎn)控件封裝

參考文檔 jsapi_reference_3_0

具體去看 bMarker.vue 文件了,去除百度地圖的默認(rèn)彈窗樣式,真的太惡心了。 這里主要值得參考的是自定義彈窗時(shí),html里面通過(guò)vue的 runtimeCompiler: true運(yùn)行時(shí)編譯功能,可以調(diào)用vue里面的參數(shù)和方法,這里對(duì)于自定義是很方便的。

效果圖

代碼總覽

涉及的文件如下(具體參考代碼):

|-- public
    |-- images  // 注意,地圖需要到的圖片放這里
|-- src
    |-- components
        |-- bmap
            |-- bmap-jsapi-loader
                |-- index.js
            |-- bMarker.vue    // 打點(diǎn)、彈窗控件封裝
            |-- index.vue    // 地圖單文件組件,供界面調(diào)用
            |-- index.js    // 地圖初始化、配置相關(guān)
    |-- views
        |-- bmapTest    // 演示實(shí)例所在
            |-- index.vue
            |-- index.scss
            |-- index.js

代碼

按代碼總覽的目錄去代碼里找著看就行了。

總結(jié)

以上,只是簡(jiǎn)單的封裝。百度地圖的api真的是不如高德地圖好用。以上的封裝已滿足本人項(xiàng)目需求,別的功能可以自己按需擴(kuò)展了。

到此這篇關(guān)于Vue2項(xiàng)目中對(duì)百度地圖封裝使用的文章就介紹到這了,更多相關(guān)Vue2百度地圖封裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue項(xiàng)目打包優(yōu)化的方法實(shí)戰(zhàn)記錄

    vue項(xiàng)目打包優(yōu)化的方法實(shí)戰(zhàn)記錄

    最近入職了新公司,接手了一個(gè)新拆分出來(lái)的Vue項(xiàng)目,針對(duì)該項(xiàng)目做了個(gè)打包優(yōu)化,把經(jīng)驗(yàn)分享出來(lái),下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包優(yōu)化的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Vue reactive函數(shù)實(shí)現(xiàn)流程詳解

    Vue reactive函數(shù)實(shí)現(xiàn)流程詳解

    一個(gè)基本類型的數(shù)據(jù),想要變成響應(yīng)式數(shù)據(jù),那么需要通過(guò)ref函數(shù)包裹,而如果是一個(gè)對(duì)象的話,那么需要使用reactive函數(shù),這篇文章主要介紹了Vue reactive函數(shù)
    2023-01-01
  • vue-router中hash模式與history模式的區(qū)別

    vue-router中hash模式與history模式的區(qū)別

    為了構(gòu)建 SPA(單頁(yè)面應(yīng)用),需要引入前端路由系統(tǒng),這就是 Vue-Router 存在的意義,而這篇文章主要給大家介紹了關(guān)于vue-router中兩種模式區(qū)別的相關(guān)資料,分別是hash模式、history模式,需要的朋友可以參考下
    2021-06-06
  • 一文詳解Vue3中的自定義指令的使用

    一文詳解Vue3中的自定義指令的使用

    自定義指令是?Vue.js?中一個(gè)強(qiáng)大的特性,它允許您擴(kuò)展?Vue?的模板語(yǔ)法,本文將詳細(xì)介紹?Vue?3?中的自定義指令,包括如何創(chuàng)建它們以及如何將它們應(yīng)用于您的應(yīng)用程序,需要的可以參考下
    2023-11-11
  • vue tab滾動(dòng)到一定高度,固定在頂部,點(diǎn)擊tab切換不同的內(nèi)容操作

    vue tab滾動(dòng)到一定高度,固定在頂部,點(diǎn)擊tab切換不同的內(nèi)容操作

    這篇文章主要介紹了vue tab滾動(dòng)到一定高度,固定在頂部,點(diǎn)擊tab切換不同的內(nèi)容操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 基于Vue3實(shí)現(xiàn)印章徽章組件的示例代碼

    基于Vue3實(shí)現(xiàn)印章徽章組件的示例代碼

    這篇文章主要介紹了如何利用vue3實(shí)現(xiàn)簡(jiǎn)單的印章徽章控件,文中通過(guò)示例代碼講解詳細(xì),需要的朋友們下面就跟隨小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue Render中slots的使用的實(shí)例代碼

    vue Render中slots的使用的實(shí)例代碼

    本篇文章主要介紹了vue Render中slots的使用的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-07-07
  • 詳細(xì)對(duì)比Ember.js和Vue.js

    詳細(xì)對(duì)比Ember.js和Vue.js

    這篇文章主要介紹了詳細(xì)對(duì)比Ember.js和Vue.js,對(duì)JS框架感興趣的同學(xué),可以參考下
    2021-05-05
  • vue遞歸實(shí)現(xiàn)樹形組件

    vue遞歸實(shí)現(xiàn)樹形組件

    這篇文章主要為大家詳細(xì)介紹了vue遞歸實(shí)現(xiàn)樹形組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue實(shí)現(xiàn)頭像上傳功能

    vue實(shí)現(xiàn)頭像上傳功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)頭像上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論

丰镇市| 景东| 长武县| 改则县| 安岳县| 梅河口市| 通山县| 上蔡县| 郸城县| 江达县| 封开县| 镇宁| 逊克县| 和政县| 交城县| 广水市| 布尔津县| 文成县| 年辖:市辖区| 会宁县| 晋宁县| 新宁县| 开江县| 柯坪县| 德令哈市| 金山区| 佛冈县| 庆元县| 佳木斯市| 隆子县| 六盘水市| 龙口市| 甘孜县| 昌吉市| 伊宁县| 安义县| 上饶市| 奉节县| 黄冈市| 图们市| 泰顺县|