【vue-baidu-map】自定义地图

目录

自定义地图

技术点

个性化地图配置

自定义地图

第一个坑:移动地图出现文字堆叠

第二个坑:地图瓦片不全


自定义地图

技术点

官网地址:Vue Baidu Map

百度指南:jspopularGL | 百度地图API SDK

自定义工具:https://lbsyun.baidu.com/apiconsole/custommap

个性化地图配置

打开自定义工具(https://lbsyun.baidu.com/apiconsole/custommap

选择新建去自定义

 右侧的按钮可以进行一些操作。

 JSON文件中的内容就可以在下方代码中使用。

自定义地图

// index.html
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=mFc3PTQ5074zOK7I0ruGp"></script>
<template>
  <baidu-map class="map" 
    :center="{lng: 116.404, lat: 39.915}" 
    :zoom="15" 
    @ready="handler">
  </baidu-map>
</template>
<script>
export default {
  data () {
    return {
      styleJson: [{
        'featureType': 'land',
        'elementType': 'geometry',
        'stylers': {
          'color': '#053448ff'
        }
      }, {
        'featureType': 'background',
        'elementType': 'geometry',
        'stylers': {
          'color': '#053448ff'
        }
      }, {
        'featureType': 'road',
        'elementType': 'geometry.fill',
        'stylers': {
          'color': '#13bab3ff'
        }
      }, {
        'featureType': 'road',
        'elementType': 'geometry.stroke',
        'stylers': {
          'color': '#13bab3ff'
        }
      }],
    }
  },
  methods:{
    handler ({ BMap, map }) {
      map.setMapStyleV2({
        styleJson: this.styleJson
      })
    },
  }
}
</script>

在完成的过程中踩了两个坑。

第一个坑:移动地图出现文字堆叠

使用的是引入id的方式,修改成使用json会更加稳定。(图片为网络图片,侵必删)

map.setMapStyle({
    styleId: 'a84a2633daa95eb68ceb4bdb9bc'
})

 改成下面这种就可以了(疑惑脸): 

map.setMapStyleV2({
    styleJson: this.styleJson
})

这里的styleId是

第二个坑:地图瓦片不全

 发生的原因是现在自定义样式所引入的文件需要升级了

map.setMapStyle({
    styleJson: this.styleJson
})

改成setMapStyleV2: 

map.setMapStyleV2({
    styleJson: this.styleJson
})

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
-baidu-map是一个基于Vue2的百度地图组件库,它提供了丰富的地图组件,包括地图、标注、信息窗口、线、面、工具条等等。如果你想自定义地图,可以使用百度地图JavaScript API提供的个性化地图服务。具体步骤如下: 1.在百度地图开放平台申请个性化地图服务,获取ak密钥。 2.在Vue项目中安装百度地图JavaScript API,可以使用npm install baidu-map --save命令进行安装。 3.在Vue项目中引入百度地图JavaScript API,可以在index.html文件中添加如下代码: ```html <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script> ``` 4.在Vue项目中使用vue-baidu-map组件,可以在组件中添加如下代码: ```html <template> <div> <baidu-map class="map" :center="center" :zoom="zoom" :map-style="mapStyle"> <bm-marker :position="center"></bm-marker> </baidu-map> </div> </template> <script> import { BaiduMap, BmMarker } from 'vue-baidu-map' export default { components: { BaiduMap, BmMarker }, data () { return { center: { lng: 116.404, lat: 39.915 }, zoom: 15, mapStyle: { styleJson: [ { 'featureType': 'water', 'elementType': 'all', 'stylers': { 'color': '#044161' } }, { 'featureType': 'land', 'elementType': 'all', 'stylers': { 'color': '#091934' } }, { 'featureType': 'boundary', 'elementType': 'geometry', 'stylers': { 'color': '#064f85' } }, { 'featureType': 'railway', 'elementType': 'all', 'stylers': { 'visibility': 'off' } }, { 'featureType': 'highway', 'elementType': 'geometry', 'stylers': { 'color': '#004981' } }, { 'featureType': 'highway', 'elementType': 'all', 'stylers': { 'color': '#005b96', 'lightness': 1.4, 'visibility': 'off' } }, { 'featureType': 'arterial', 'elementType': 'geometry', 'stylers': { 'color': '#004981', 'lightness': -39 } }, { 'featureType': 'green', 'elementType': 'all', 'stylers': { 'color': '#056197', 'visibility': 'off' } }, { 'featureType': 'subway', 'elementType': 'all', 'stylers': { 'visibility': 'off' } }, { 'featureType': 'manmade', 'elementType': 'all', 'stylers': { 'visibility': 'off' } }, { 'featureType': 'local', 'elementType': 'all', 'stylers': { 'visibility': 'off' } }, { 'featureType': 'arterial', 'elementType': 'labels', 'stylers': { 'visibility': 'off' } }, { 'featureType': 'boundary', 'elementType': 'geometry.fill', 'stylers': { 'color': '#029fd4' } }, { 'featureType': 'building', 'elementType': 'all', 'stylers': { 'color': '#1a5787' } }, { 'featureType': 'label', 'elementType': 'all', 'stylers': { 'visibility': 'off' } } ] } } } } </script> ``` 在上述代码中,我们使用了BaiduMap和BmMarker组件来显示地图和标注,同时使用了个性化地图服务提供的样式来自定义地图的样式。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宾果的救星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值