vue項目接入百度地圖

方法一 :使用第三方工具

vue-baidu-map
安裝命令:

yarn add vue-baidu-map --save

文檔地址:https://dafrok.github.io/vue-baidu-map/#/zh/start/usage
案例01:https://blog.csdn.net/playboyanta123/article/details/86514891
案例02:https://www.cnblogs.com/wangqi2019/p/11040239.html

爲了頁面流暢,建議還是局部引用(覺得這三個滿足一般的需求了),如下:

import { BaiduMap, BmScale, BmGeolocation } from 'vue-baidu-map'

然後注入依賴:

components: {
     BaiduMap,
      BmGeolocation,
      BmScale
},

HTML代碼,在需要引入百度地圖的地方加入下面代碼

    <!--接入百度地圖-->
    <baidu-map style=" height: 600px;" :center="map_center" :zoom="my_zoom"
               :scroll-wheel-zoom="my_scroll_wheel_zoom"
               class="baidu-map-view"
               @ready="map_handler" ak="分配給你的百度key">
    </baidu-map>

如果沒有百度地圖key就去申請一個,申請網址:http://lbsyun.baidu.com/index.php?title=jspopular/guide/getkey
如果需要對地圖進行事件處理,必須要在ready事件之後,否者取不到BMap對象!

ready 是在地圖組件渲染完畢時觸發,返回一個百度地圖的核心類和地圖實例——{BMap, map}。百度地圖組件是異步加載,不要在組件的生命週期中訪問 BMap 核心類和 map 實例,如有需要,請在所需組件的 ready 事件回調函數的參數中獲取。
看代碼:

	  // 地圖初始化回調
      map_handler({ BMap, map }) {
        this.BMap = BMap
        this.map = map
      },

其中,BMap是百度地圖的對象,直接new出來跟原始的百度地圖API一樣使用,map是地圖對象,可以調用對應的地圖方法,比如添加座標點等。

獲取到地圖的BMap和map之後,剩下的操作就可以直接參照百度地圖官方api接口了,對,就是這樣子。

百度地圖官方api demo:http://lbsyun.baidu.com/jsdemo.htm#canvaslayer

小案例(給地圖設置點擊獲取經緯度座標並標點):

		this.map.addEventListener('click', (e) => {
          const point = new this.BMap.Point(e.point.lng, e.point.lat)
          const marker = new this.BMap.Marker(point) // 設置點擊位置
          map.clearOverlays() // 清空地圖上其他紅色位置標識
          map.addOverlay(marker)  // 添加指定點
        })

希望對你有用!

方法二:引入百度地圖JS

在 index.html 添加百度地圖的 script

<script src="http://api.map.baidu.com/api?v=3.0&ak=你的百度地圖祕鑰(ak)&callback=bMapInit"></script>

webpack.base.conf.js添加externals配置,內容如下,與entry平級:

  entry: {
    app: ['babel-polyfill', './src/main.js']
  },
  externals: {
    'BMap': 'BMap'
  },

在調用百度地圖的組件中引用:

import BMap from 'BMap'

在需要接入地圖的界面引入地圖

<div id="map-core"></div>

然後就可以寫方法進行邏輯操作

this.map = new BMap.Map('map-core')
this.map.centerAndZoom(new BMap.Point(113.275, 23.117), 10)

然後就可以根據百度地圖官方api進行邏輯編寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章