vue-baidu-map百度地图搜索功能,点击进行标点,获取经纬度坐标,百度地图使用黑色主题

在这里插入图片描述
下载依赖
在这里插入图片描述

<template>
  <div class="bDiv">
    <baidu-map
      class="bm-view"
      :center="center"
      :zoom="zoom"
      :dragging="true"
      :scroll-wheel-zoom="true"
      @ready="handler"
      @click="getClickInfo"
      :key="timeKey"
    >
      <!--        //地理位置的搜索功能-->
      <!--        <bm-local-search-->
      <!--          :keyword="keyword"-->
      <!--          :auto-viewport="true"-->
      <!--          :location="location"-->
      <!--        ></bm-local-search>-->
      <!--        //缩放比例尺的展示-->
      <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
      <!--        //定位-->
      <!--        <bm-geolocation-->
      <!--          anchor="BMAP_ANCHOR_BOTTOM_RIGHT"-->
      <!--          :showAddressBar="true"-->
      <!--          :autoLocation="true"-->
      <!--        ></bm-geolocation>-->
      <!--        //添加一个小红点的,并将当前的经纬度写入数据中-->
      <!--        <bm-marker :position="{lng:center.lng, lat: center.lat}"></bm-marker>-->
      <bm-control :offset="{width: '10px', height: '10px'}">
        <bm-auto-complete v-if="autoComplete" v-model="keyword" :sugStyle="{zIndex: 999999}" @confirm="handleConfirm" :key="`${timeKey}-BaiduMap`">
          <input type="text" placeholder="请输入搜索关键字" class="serachinput">
        </bm-auto-complete>
      </bm-control>
      <bm-marker :key="marker.id" v-for="marker of markers" :position="{lng: marker.lng, lat: marker.lat}"></bm-marker>
    </baidu-map>
  </div>
</template>
<script>
import moment from 'moment'
import { BaiduMap, BmScale, BmControl, BmAutoComplete, BmGeolocation, BmlMarkerClusterer } from 'vue-baidu-map'
export default {
  components: {
    BaiduMap,
    BmControl,
    BmAutoComplete,
    BmScale,
    BmGeolocation,
    BmlMarkerClusterer
  },
  data () {
    return {
      baidumapSwitch: false,
      autoComplete: true,
      center: { lng: 116.404, lat: 39.915 },
      zoom: 14,
      location: '北京市',
      keyword: '请输入搜索关键词',
      markers: [],
      position: {},
      timeKey: ''
    }
  },
  created () {
    this.timeKey = moment().locale('zh-cn').format('YYYY-MM-DD HH:mm:ss')
  },
  methods: {
    handleConfirm ({ item }) {
      this.queryString = `${item.value.city}${item.value.district}${item.value.business}`
      this.querySearch(this.queryString)
    },
    querySearch (queryString, cb) {
      var that = this
      /* global BMap */
      var myGeo = new BMap.Geocoder()
      myGeo.getPoint(queryString, function (point) {
        if (point) {
          that.point = point
        }
      }, this.locationCity)
      setTimeout(function () {
        that.show(that.point.lng, that.point.lat)
      }, 500)
    },
    show (gpsLongitude, gpsLatitude) {
      if (gpsLongitude === undefined || (gpsLongitude === 0 && gpsLatitude === 0)) {
        gpsLongitude = 116.40355
        gpsLatitude = 39.914003
      }
      const position = { id: Math.random() * 40, lng: gpsLongitude, lat: gpsLatitude }
      this.center = { lng: gpsLongitude, lat: gpsLatitude }
      this.markers = []
      this.markers.push(position)
      this.position = position
    },
    // 百度地图初始化(这个一定要!否则地图回加载不出来)
    handler ({ BMap, map }) {
      //百度地图主题默认为白色,如上图所示
      //百度地图使用黑色主题
      //[百度地图更多主题](https://lbsyun.baidu.com/custom/list.htm)
      var mapStyle = { style: 'dark' }
      map.setMapStyle(mapStyle)
    },
    // 点击获取到当前经纬度
    getClickInfo (e) {
      const position = { id: Math.random() * 40, lng: e.point.lng, lat: e.point.lat }
      this.markers = []
      this.markers.push(position)
      this.position = position
    }
  }
}
</script>
<style lang="less" scoped>
  .bDiv{
    height: 600px;
  }
  .bm-view {
    /*https://dafrok.github.io/vue-baidu-map/#/zh/start/usage*/
    /*https://blog.csdn.net/weixin_38136817/article/details/88213380*/
    width: calc(100%);
    height: 600px;
    float: left;
  }
</style>

百度地图黑色主题
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vue-baidu-map是基于百度地图API开发的Vue组件,它能够在Vue项目中轻松地集成百度地图。而离线百度地图是指在没有网络连接的情况下能够使用的百度地图。 正常情况下,百度地图需要联网才能显示地图获取相关数据。但是在有些场景下,比如地下车库或者偏远山区等网络较差或者没有网络的地方,就无法正常使用百度地图。离线百度地图就是解决这个问题的解决方案,它通过事先将地图数据下载保存在本地,使得在没有网络连接的情况下也能够正常使用百度地图。 对于vue-baidu-map来说,它的离线功能也是很重要的。通过使用vue-baidu-map的离线百度地图,开发者可以轻松地针对不同的场景选择不同的地图方案,提高用户的使用体验。而且离线百度地图对于一些隐私性、安全性要求高的应用场景也更加有优势。 总之,vue-baidu-map离线百度地图是一个非常实用与方便的工具,在实际生产中可以提供更好的用户体验,也为开发者提供了更多的选择与便捷。 ### 回答2: vue-baidu-map离线百度地图是一款基于Vue.js框架开发的百度地图组件库,主要解决的是在无网络或网络不稳定的情况下,无法使用在线地图的问题。该组件库提供的离线地图可以在无网络的情况下正常使用,并且具有与在线地图相同的功能和可视化效果。 在vue-baidu-map离线百度地图组件中,我们可以使用百度地图提供的基础地图、卫星地图、混合地图等多种地图样式,并且支持地名搜索地图缩放、位置探测、路线规划等常用功能。此外,在使用vue-baidu-map离线百度地图时,我们也可以通过添加自定义数据层、自定义覆盖层等方式,对地图进行更加丰富的扩展和定制。 总之,vue-baidu-map离线百度地图是一款非常实用的地图组件库,它可以帮助我们在网络不稳定或者无网络的情况下,依然可以正常使用百度地图,并且具有完整的百度地图功能和美观的地图样式。如果你正在建设一个应用程序,需要集成离线地图功能,那么vue-baidu-map离线百度地图可能正是你需要的工具。 ### 回答3: vue-baidu-map是一个可嵌入Vue.js网站的地图组件,它集成了百度地图的API,可以让开发者轻松实现地图功能。 离线百度地图指的是一种不需要联网即可使用的百度地图,也就是地图数据被下载到本地储存设备上。vue-baidu-map支持使用离线地图,这就意味着用户可以在没有网络的环境下依然能够使用地图功能使用vue-baidu-map离线百度地图的优势在于,它提供了更好的用户体验和更高的灵活性。首先,用户无需担心网络不稳定、信号弱的问题,可以随时随地使用地图进行定位、浏览、搜索等操作;其次,开发者可以根据具体需求选择下载特定区域的地图数据,以减少数据流量和缩短加载时间;还可以根据不同需求切换在线地图和离线地图,达到最佳的用户体验。 总之,vue-baidu-map离线百度地图为开发者提供了便捷灵活的地图开发工具,让用户可以更加自由地使用地图服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值