charts:绘制县级行政区域(如何白嫖Bigemap)

一、效果

二、echarts地图示例

1、echarts官网找一个地图的示例

2、咱们把usaJson替换成自己的json数据

3、可以看到,当替换成自己的json数据(chaohu.json)后,地图就会显示巢湖市的行政区域

三、如何获取到chaohu.json

1、进入到www.bigemap.com/reader/down...

下载全能版,安装bigemap

2、打开软件,点击【客户号】,加微信,让客服授权

3、选择巢湖市,点击下载按钮,下载巢湖的行政区域

下载下来是一个文件夹,我们需要用到kml文件

4、打开geojson.io/#map=8.79/3...

点击【open】,上传刚刚下载的kml文件

现在可以看到巢湖市的轮廓已经出来了

5、同样的方法,在Bigemap中将【夏阁镇】的kml文件下载下来

再导入到geojson中,可以看到json数据也更新了

再将【烔炀镇】导入,就拿到chaohu.json

6、找客服

当我在下载某个市的行政图时,希望把镇的边界也下载下来,发现这软件不允许,自己整每个镇,有些麻烦,可以让客服给你下载,他会给你一个xx县_行政边界.kml

四、完整代码

js 复制代码
      <div class="row_card">
        <div class="title">任务地图</div>
        <div id="mapChart" style="width: 100%; height: 500px"></div>
      </div>
      
      
      import echarts from 'echarts';
      import chaohu from './chaohu.json';
      
        mounted() {
          this.initMapChart();
        },
        
    // 地图
    initMapChart() {
      const charts = echarts.init(document.getElementById('mapChart'));
      echarts.registerMap('CHAOHU', { features: chaohu.features });
      const opt = {
        tooltip: {
          trigger: 'item',
          textStyle: { fontSize: 16, color: '#fff', fontWeight: 500 },
          formatter: params => {
            console.log('---', params);
            const { name, value, money, num } = params.data;
            const htmlJsx = `
              <div style="border-radius: 8px;padding: 7px 13px; background: linear-gradient(to bottom, rgba(82, 155, 250, 0.8), rgba(142, 192, 246, 0.8));">
                <div style="font-size: 14px; line-height: 20px;">${name || '-'}</div>
                <div style="margin-top: 8px; font-size: 12px;line-height: 17px;">累计采集人数</div>
                <div style="font-size: 12px;color: #FFDC95;line-height: 17px;">${value}</div>
                <div style="margin-top: 8px; font-size: 12px;line-height: 17px;">累计预授信总额(万)</div>
                <div style="font-size: 12px;color: #FFDC95;line-height: 17px;">${value}</div>
                <div style="margin-top: 8px; font-size: 12px;line-height: 17px;">累计用信余额(万)</div>
                <div style="font-size: 12px;color: #FFDC95;line-height: 17px;">${value}</div>
              </div>
            `;
            return htmlJsx;
          },
        },
        geo: [
          // 地图最外城边框
          {
            map: 'CHAOHU',
            aspectScale: 0.75,
            zoom: 0.81,
            layoutCenter: ['50%', '50%'],
            layoutSize: '120%',
            show: true,
            roam: false,
            label: { emphasis: { show: false } },
            itemStyle: {
              normal: {
                borderColor: 'rgba(192,245,249,.8)',
                borderWidth: 1,
                shadowColor: '#6FFDFF',
                shadowOffsetY: 0,
                shadowBlur: 10,
                areaColor: 'rgba(29,85,139,.6)',
              },
            },
            emphasis: { areaColor: 'rgba(29,85,139,.6)' },
          },
          // 地图最外层光晕
          {
            map: 'CHAOHU',
            aspectScale: 0.75,
            zoom: 0.81,
            layoutCenter: ['50%', '50%'],
            layoutSize: '120%',
            show: true,
            roam: false,
            label: { emphasis: { show: false } },
            itemStyle: {
              normal: {
                borderColor: 'rgba(192,245,249,.8)',
                borderWidth: 3,
                shadowColor: '#2C99F6',
                shadowOffsetY: 0,
                shadowBlur: 100,
                areaColor: 'rgba(29,85,139,.6)',
              },
            },
            emphasis: { areaColor: 'rgba(29,85,139,.6)' },
          },
        ],
        series: [
          {
            name: '',
            type: 'map',
            map: 'CHAOHU',
            label: { show: true, color: '#fff' },
            //地图块渐变颜色设置
            itemStyle: {
              normal: {
                areaColor: {
                  x: 0,
                  y: 0,
                  x2: 0,
                  y2: 1,
                  colorStops: [
                    { offset: 0, color: '#00b1fe' },
                    { offset: 1, color: '#0344cf' },
                  ],
                },
                borderColor: '#06b2ef',
                borderWidth: 1,
              },
              emphasis: {
                areaColor: '#01aefb',
                borderColor: '#fff',
                borderWidth: 1,
                shadowColor: 'rgba(0, 255, 255, 0.7)',
                shadowBlur: 10,
                label: { show: false },
              },
            },
            data: [
              { name: '夏阁镇', value: 20057.34, money: 100, num: 20 },
              { name: '烔炀镇', value: 20057.34, money: 100, num: 20 },
            ],
          },
        ],
      };
      charts.setOption(opt);
    },
相关推荐
JayceM11 分钟前
Vue中v-show与v-if的区别
前端·javascript·vue.js
HWL567915 分钟前
“preinstall“: “npx only-allow pnpm“
运维·服务器·前端·javascript·vue.js
德育处主任1 小时前
p5.js 掌握圆锥体 cone
前端·数据可视化·canvas
mazhenxiao1 小时前
qiankunjs 微前端框架笔记
前端
无羡仙1 小时前
事件流与事件委托:用冒泡机制优化前端性能
前端·javascript
秃头小傻蛋1 小时前
Vue 项目中条件加载组件导致 CSS 样式丢失问题解决方案
前端·vue.js
CodeTransfer1 小时前
今天给大家搬运的是利用发布-订阅模式对代码进行解耦
前端·javascript
阿邱吖1 小时前
form.item接管受控组件
前端
韩劳模1 小时前
基于vue-pdf实现PDF多页预览
前端
鹏多多1 小时前
js中eval的用法风险与替代方案全面解析
前端·javascript