zoukankan      html  css  js  c++  java
  • vue & 百度地图:使用百度地图

    index.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=xxxxxxxxxxxxxxxxxxxxxxx"></script>
        <title>voidvue_map</title>    
      </head>
      <body>
        <div id="app"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>

    ak填的是你自己申请的密钥。

    百度地图的开发者平台上有详细的说明。

    mymap.vue

    <template>
      <div class="hello">
        <div style="margin-bottom:10px">
          <button @click="clickStart('jinting')">设定坐标</button>
          <button @click="clickEnd">退出设定</button>
        </div>
        <!-- map start -->
        <div style="" id="dituContent" class="ditu-content"></div>
        <!-- map end -->
      </div>
    </template>
    
    <script>
    export default {
      name: 'mymap',
      data () {
        return {
          polygons: [],
          clickCity: '',
          polyline: null,
          marker: null,
          cityName: '',
          status: 'none',
          centerPoint: [],
          savePointsArray: [],
          savePointsString: '',
          jinting: '',
    
          mapObj:null
        }
      },
      mounted () {
        this.initMap()
      },
      methods:{
        clickEnd(){
          console.log('======================== CLICK END ======================')
          this.clickCity = ''
          this.status = 'none'
        },
        initMap () {
          this.createMap() ; //创建地图
          
        },
        createMap(){
          let self = this
          let m = new BMap.Map("dituContent")
          let point = new BMap.Point(120.49,31.15)
          m.centerAndZoom(point,12)
          m.setCurrentCity("苏州")
          this.setMapEvent(m)
        },
        setMapEvent(m){
          m.enableDragging();//启用地图拖拽事件,默认启用(可不写)
          m.enableScrollWheelZoom();//启用地图滚轮放大缩小
          m.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
          m.enableKeyboard();//启用键盘上下左右键移动地图
    
          this.addMapControl(m);//向地图添加控件
        },
        addMapControl(m){
          //向地图中添加缩放控件
          let ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
          m.addControl(ctrl_nav);
          //向地图中添加缩略图控件
          let ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});
          m.addControl(ctrl_ove);
          //向地图中添加比例尺控件
          let ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
          m.addControl(ctrl_sca);

        this.mapObj = m }
    } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> .ditu-content{ width:70%; height:600px; border:#ccc solid 1px; margin:0 auto; } .pointwords{ word-wrap: break-word; text-align: center; padding: 0 20px; } .button{ height: 100px; } </style>

    关于BMap地图对象:

    原本我打算把它作为参数传到别的函数里,但发现这样在使用上还是不太方便,所以还是把它放到了vue页面实例的data中了。

    参考:

    https://blog.csdn.net/qq_38903950/article/details/78022174?locationNum=7&fps=1

  • 相关阅读:
    面试题:找出数组中只出现一次的2个数(异或的巧妙应用)(出现3次)
    线段树 | 第1讲 (给定区间求和)(转)
    C++中的静态多态和动态多态(转)
    ARP与RARP详细解析(转)
    排序算法之归并排序
    byte数组使用Arrays.asList转换List出错
    排序算法之希尔排序
    排序算法之冒泡排序、选择排序、插入排序
    Tomcat配置优化
    内连接、左外连接、右外连接、全外连接、交叉连接
  • 原文地址:https://www.cnblogs.com/foxcharon/p/8929307.html
Copyright © 2011-2022 走看看