使用echarts百度地图个性定制不生效

最近用vue写个地图页面,使用echarts百度地图个性定制不生效
首先导入js

// 使用基础的百度地图
<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>
// 使用
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak={{申请的AK}}" ></script>

ak的申请到百度官方网站
创建应用后就会给ak
在这里插入图片描述
vue代码展示

<template>
  <div class="firstdiv">
    <div :id="box_id" style="width: 100%; height: 100%" :ref="box_id"></div>
  </div>
</template>

<script>
import echarts from "echarts";
import "echarts/map/js/world.js";
import "echarts/map/js/china.js"; // 引入中国地图数据
import "echarts/extension/bmap/bmap";
import goodsData from "../assets/custom_map_config.json";

export default {
  name: "Usermap",
  data() {
    return {
      bmap: {},
      box_id: "container",
      center_point: [102.897509, 30.738321],
      zoom: 8,
      roam: true,
      iconsize: 15,
      icon_color: "#e27228",
      data: [
        {
          lat: 31.132889,
          lng: 104.36794427,
          name: "1",
          value: "6",
        },
        {
          lat: 30.655822,
          lng: 104.071534,
          name: "2",
          value: "8",
        },
        {
          lat: 29.63,
          lng: 106.51,
          name: "3",
          value: "7",
        },
        {
          lat: 24.84,
          lng: 101.71,
          name: "4",
          value: "12",
        },
      ],
    };
  },
  methods: {
    baiduMap() {
      var myChart = echarts.init(document.getElementById("container"));
      var option = null;
      var data = this.data;
      var convertData = function (data, type) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
          res.push({
            name: data[i].name,
            value0: data[i].value,
            value: [data[i].lng, data[i].lat, type],
          });
        }
        return res;
      };

      option = {
        tooltip: {
          show: true,
          trigger: "item",
          formatter: (params) => {
            var res = params.name + "<br/>";
            var myseries = option.series;
            for (var i = 0; i < myseries.length; i++) {
              for (var j = 0; j < myseries[i].data.length; j++) {
                if (myseries[i].data[j].name == params.name) {
                  res += "" + "  " + myseries[i].data[j].value0 + "</br>";
                }
              }
            }
            return res;
          },
        },

        bmap: {
          center: this.center_point,
          zoom: this.zoom,
          roam: this.roam,
          // 在这里设置个性化的json一值不管用奇怪
          // mapStyle: {
          //   styleJson: goodsData,
          // },
        },
        series: [
          {
            name: "name",
            type: "scatter",
            stack: "name",
            coordinateSystem: "bmap",
            data: convertData(data, 1),
            symbolSize: this.iconsize,
            encode: {
              value: 2,
            },
            itemStyle: {
              color: this.icon_color,
              background: this.icon_color,
            },
          },
        ],
      };
      if (option && typeof option === "object") {
        myChart.setOption(option, true);
      }
      window.onresize = function () {
        myChart.resize();
      };
      // 不能在里面设置只能在外面设置了
      var bmap = myChart.getModel().getComponent("bmap").getBMap();
      // bmap.setMapStyle({ style: "grassgreen" });
      bmap.setMapStyle({ styleJson: goodsData, });
      // 设置最小缩放值
      // bmap.setMinZoom(13);
      // 设置最大缩放值
      // bmap.setMaxZoom(15);
      // bmap.setMapStyleV2({
      //   styleId: "ce8b822124dc6e5b25e2900948ad4269",
      // });
      // 缩放结束后的事件
      bmap.addEventListener("zoomend", function () {
        // 打印出当前缩放值
        console.log("当前缩放值", bmap.getZoom());
      });
    },
  },
  mounted() {
    this.baiduMap();
  },
};
</script>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值