使用vue插件实现全球地图,实现你环游世界的梦

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vue插件实现全球地图,实现你环游世界的梦相关的知识,希望对你有一定的参考价值。

首先第一步先安装依赖

npm i vue-baidu-map或者yarn add vue-baidu-map

安装完成之后在页面中写入一个div用来渲染地图插件

<baidu-map v-bind:style="mapStyle" class="bm-view" ak="你的百度地图ak" :center="center" :zoom="zoom" :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: center.lng, lat: center.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>

然后在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'
        },
        center: {lng: 116.404, lat: 39.915},
        zoom: 15
      }
    },
    watch: {
      value: function (currentValue) {
        this.showMapComponent = currentValue
        if (currentValue) {
          this.keyword = ''
        }
      }
    },
    methods: {
      /***
       * 地图点击事件。
       */
      getClickInfo (e) {
        this.center.lng = e.point.lng
        this.center.lat = e.point.lat
      },
      syncCenterAndZoom (e) {
        const {lng, lat} = e.target.getCenter()
        this.center.lng = lng
        this.center.lat = lat
        this.zoom = e.target.getZoom()
      },
    }
  }

最后是样式

 .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;
    }

以上是关于使用vue插件实现全球地图,实现你环游世界的梦的主要内容,如果未能解决你的问题,请参考以下文章

Hive丨一群追风筝的人正在帮你实现环游世界的梦想!

全球攻略进行时 百度地图雄心正步步实现

bzoj 2055: 80人环游世界 -- 上下界网络流

[bzoj2055] 80人环游世界

前端开发中地图功能的实现

vue使用高德地图-进行显示地图和查询天气