使用echarts的bmap配置项绘制区域轮廓遮罩

示例图

代码

vue 复制代码
<template>
  <div id="map" style="width: 100%; height: 100vh"></div>
</template>

<script>
import * as echarts from "echarts";
import "echarts/extension/bmap/bmap";
export default {
  data() {
    return {
      mapOptions: {
        bmap: {
          roam: true, // 是否开启拖拽和缩放
          center: [116.403414, 39.924091], // 地图中心点坐标
          zoom: 15, // 缩放级别
        },
        series: [
          {
            type: "scatter",
            coordinateSystem: "bmap",
            symbolSize: 20,
          },
        ],
      },
    };
  },
  mounted() {
    this.init();
  },
  methods: {
    init() {
      // 初始化百度地图
      var myChart = echarts.init(document.getElementById("map"));
      myChart.setOption(this.mapOptions);
      var map = myChart.getModel().getComponent("bmap").getBMap();
      map.setMinZoom(9);
      map.setMaxZoom(22);
      var boundary = new BMap.Boundary();
      boundary.get("北京市", (rs) => {
        let count = rs.boundaries.length;
        if (count === 0) {
          alert("未能获取当前行政区域");
          return;
        }
        const EN_JW = "180, 90;";
        const NW_JW = "-180,  90;";
        const WS_JW = "-180, -90;";
        const SE_JW = "180, -90;";
        var points = rs.boundaries[0];
        // 东南西北四个角添加一个覆盖物
        const ply1 = new BMap.Polygon(
          points + SE_JW + SE_JW + WS_JW + NW_JW + EN_JW + SE_JW,
          {
            strokeColor: "none",
            fillColor: "#fff",
            fillOpacity: 0.9,
            strokeOpacity: 1,
          }
        );
        map.addOverlay(ply1);
        // 绘制北京市整体的外轮廓
        for (let i = 0; i < count; i++) {
          const ply = new BMap.Polygon(points, {
            strokeWeight: 2,
            strokeColor: "#2457ff",
            fillColor: "transparent",
          });
          map.addOverlay(ply);
        }
      });
    },
  },
};
</script>

<style></style>

参考文章
百度地图api只显示某个省市的行政区域
Echarts中使用bmap作为底图,添加行政划区遮罩层

相关推荐
腻害兔2 分钟前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
CodexDave18 分钟前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
Ai_easygo1 小时前
AI Agent开发入门——从ReAct到Tool Calling,拆解Agent的底层运行逻辑
前端·人工智能·react.js
研☆香1 小时前
分析制作html页面,如何划分页面结构
前端
kyriewen2 小时前
我扒了最近的前端面经——2026年面试不背八股文了,考这5样
前端·面试·ai编程
IT_陈寒2 小时前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
小徐_23332 小时前
uni-app 项目别再从零搭了!3 个 Wot UI 起手模板怎么选?
前端·uni-app
张元清3 小时前
React useResizeObserver Hook:追踪元素尺寸变化(2026)
javascript·react.js
赵庆明老师3 小时前
Vben精讲:16-熟悉Vite前端工具链
前端
瑞瑞小同学5 小时前
处理echarts x轴内容过多,重叠问题
前端·javascript·echarts