• 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进行逻辑编写。

    希望对你有用!

  • 相关阅读:
    JAVA中 ReentrantReadWriteLock读写锁详系教程,包会
    传统企业的精益转型之路
    什么时候可以使用极限编程?
    “懒蚂蚁”效应在产品开发过程中的应用
    Vue.config.js配置 最新可用版本
    如何查找一个为NULL的MYSQL字段
    MYSQL 50 基础题 (转载)
    记录一下第一次写 50行 SQL代码
    jwtUtils顾名思意
    对于我们程序员来说,基本面是什么呢?
  • 原文地址:https://www.cnblogs.com/wjw1014/p/11557775.html
Copyright © 2020-2023  润新知