vue中使用baidu-map获取当前坐标。

1.安装iview

  $npm install iview --save

  在main.js中引入

  

  这样就算安装完成了!

2.安装baidu-map插件

  $ npm install baudu-map --save

  安装成功之后就可以再页面上显示了,我做的是效果是这样的,一边移动一边获取点的坐标,点击也可以,给大家看看效果图:

   

  最后贴上代码, 

    <template>
      <div>
        <div class="baiduMap">
          <i-form :model="centerStr" :label-width="100">
            <Form-item label="经度">
              <i-input :value.sync="centerStr.lng"></i-input>
            </Form-item>
            <Form-item label="纬度">
              <i-input :value.sync="centerStr.lat"></i-input>
            </Form-item>
            <i-button type="primary">提交</i-button>
          </i-form>

          <baidu-map
            class="bm-view"
            ak="你的百度地图ak"
            center="广州市"
            :zoom="12"
            :scroll-wheel-zoom="true"
            @click="getClickInfo"
            @moving="syncCenterAndZoom"
            @moveend="syncCenterAndZoom"
            @zoomend="syncCenterAndZoom">
              <bm-view style="width: 100%; height:500px;"></bm-view>
              <bm-marker
                :position="{ lng: centerStr.lng, lat: centerStr.lat }"
                :dragging="true"
                animation="BMAP_ANIMATION_BOUNCE">
              </bm-marker>
              <bm-control :offset="{ width: '10px', height: '10px' }">
                <bm-auto-complete v-model="keyword" :sugStyle="{ zIndex: 999999 }">
                  <input
                    type="text"
                    placeholder="请输入搜索关键字"
                    class="serachinput"/>
                </bm-auto-complete>
              </bm-control>
              <bm-local-search
               :keyword="keyword"
               :auto-viewport="true"
               style="width:0px;height:0px;overflow: hidden;"
              ></bm-local-search>
          </baidu-map>
        </div>
      </div>
    </template>
 
    
    <script>
      //地图组件---按需引入
      import {
        BaiduMap,
        BmControl,
        BmView,
        BmAutoComplete,
        BmLocalSearch,
        BmMarker
      } from "vue-baidu-map";
 
      export default {
        components: {
          BaiduMap,
          BmControl,
          BmView,
          BmAutoComplete,
          BmLocalSearch,
          BmMarker
        },
        data: function() {
          return {
            showMapComponent: this.value,
            keyword: "",
            mapStyle: {
              width: "100%",
              height: this.mapHeight + "px"
            },
            centerStr: {
              lng: "",
              lat: ""
            }
          };
        },
        watch: {
          value: function(currentValue) {
            this.showMapComponent = currentValue;
            if (currentValue) {
              this.keyword = "";
            }
          }
        },
        methods: {
          getClickInfo(e) {
          this.centerStr.lng = e.point.lng;
          this.centerStr.lat = e.point.lat;
        },
        syncCenterAndZoom(e) {
          const { lng, lat } = e.target.getCenter();
          this.centerStr.lng = lng;
          this.centerStr.lat = lat;
          this.zoom = e.target.getZoom();
        }
      }
    };
  </script>
 
  <style scoped>
    .head {
      margin-left: 200px;
      width: 100px;
    }
    .baiduMap {
      width: 80%;
      height: 800px;
      margin: 0 auto;
      overflow: hidden;
    }
    .ivu-form-item {
      display: inline-block;
      width: 40%;
    }
    .bm-view > div {
      width: 100%;
      height: 700px !important;
    }
    .serachinput {
      width: 300px;
      box-sizing: border-box;
      padding: 9px;
      border: 1px solid #dddee1;
      line-height: 20px;
      font-size: 16px;
      height: 38px;
      color: #333;
      position: relative;
      border-radius: 4px;
      -webkit-box-shadow: #666 0px 0px 10px;
      -moz-box-shadow: #666 0px 0px 10px;
      box-shadow: #666 0px 0px 10px;
    }
  </style>
  
  写的不足的地方,望大佬指教!

  

posted @ 2019-07-05 20:51  迷茫_D  阅读(6583)  评论(0编辑  收藏  举报