echarts-可视化地图防重叠文本框

2023-09-18 18:07:50

我在第一篇可视化地图中,有一些基础介绍,本篇文章就是多展示一些效果,大家可以按需获取。
先直接上效果图
在这里插入图片描述
这里的配置项有用到
1、通过geo展示多层地图,这样可以像上图所示,通过错位有了一些3D效果;
2、北京的特殊图标展示通过scatter类型实现;
3、区域散点图effectScatter类型;
4、有方向流动的线,lines类型;
5、也是通过scatter实现了黄色icon的效果;
6、series最后一组类型lines,实现文本框;

  let box = document.querySelector('.box');
  $.get('./chinas.json', function (chinaJson) {
    echarts.registerMap('china', chinaJson);
    let e = echarts.init(box);
    let data = [
      {
        name: "郑州",
        value: [114.14, 34.16, 100]
      },
      {
        name: "深圳",
        value: [114.271522, 22.753644]
      },

      {
        name: "重庆",
        value: [106.54, 29.59]
      },
      {
        name: "浙江",
        value: [120.19, 30.26]
      }
    ];
    let LableData = [
      {
        name: "郑州",
        coords: [
          [114.14, 34.16],
          [120.24, 46.55]
        ], // 线条位置[开始位置,结束位置]
        value: [10.21, 1.20]
      },
      {
        name: "深圳",
        coords: [
          [114.271522, 22.753644],
          [118.24, 18.55]
        ], // 线条位置[开始位置,结束位置]
        value: [10.21, 1.20]
      },
      {
        name: "重庆",
        coords: [
          [106.54, 29.59],
          [100.24, 40.55]
        ], // 线条位置[开始位置,结束位置]
        value: [10.21, 1.20]
      },
      {
        name: "浙江",
        coords: [
          [120.19, 30.26],
          [128.24, 35.55]
        ], // 线条位置[开始位置,结束位置]
        value: [10.21, 1.20]
      },
    ];
    let option = {
      backgroundColor: '#000f1e',
      geo: {
        map: 'china',
        aspectScale: 0.85,
        layoutCenter: ["50%", "50%"], //地图位置
        layoutSize: '100%',
        itemStyle: {
          normal: {
            shadowColor: '#276fce',
            shadowOffsetX: 0,
            shadowOffsetY: 15,
            opacity: 0.5,
          },
          emphasis: {
            areaColor: '#276fce'
          }
        },
        regions: [{
          name: '南海诸岛',
          itemStyle: {
            areaColor: 'rgba(0, 10, 52, 1)',

            borderColor: 'rgba(0, 10, 52, 1)',
            normal: {
              opacity: 0,
              label: {
                show: false,
                color: "#009cc9",
              }
            }
          },
          label: {
            show: false,
            color: '#FFFFFF',
            fontSize: 12,
          }
        }]
      },
      series: [
        // 常规地图
        {
          type: 'map',
          mapType: 'china',
          aspectScale: 0.85,
          layoutCenter: ["50%", "50%"], //地图位置
          layoutSize: '100%',
          zoom: 1, //当前视角的缩放比例
          // roam: true, //是否开启平游或缩放
          scaleLimit: { //滚轮缩放的极限控制
            min: 1,
            max: 2
          },
          itemStyle: {
            normal: {
              areaColor: '#0c274b',
              borderColor: '#1cccff',
              borderWidth: 1.5

            },
            emphasis: {
              areaColor: '#02102b',
              label: {
                color: "#fff"
              }
            }
          }
        },
        { //首都星图标
          name: '首都',
          type: 'scatter',
          coordinateSystem: 'geo',
          data: [{
            name: '首都',
            value: [116.24, 41.55, 100],
          },],
          symbol: 'diamond',
          symbolSize: 20,
          itemStyle: {
            color: "#f00"
          },
          label: {
            normal: {
              show: false,
              color: "#f00"
            },
            emphasis: {
              show: false
            }
          }
        },
        // 区域散点图
        {
          type: 'effectScatter',
          coordinateSystem: 'geo',
          zlevel: 2,
          symbolSize: 10,
          rippleEffect: { //坐标点动画
            period: 3,
            scale: 5,
            brushType: 'fill'
          },
          label: {
            normal: {
              show: true,
              position: 'right',
              formatter: '{b}',
              color: '#b3e2f2',
              fontWeight: "bold",
              fontSize: 18
            }
          },
          data: data,
          itemStyle: { //坐标点颜色
            normal: {
              show: true,
              color: 'green',
              shadowBlur: 20,
              shadowColor: '#fff'
            },
            emphasis: {
              areaColor: '#f00'
            }
          },
        },
        // 线 和 点
        {
          type: 'lines',
          zlevel: 1, //设置这个才会有轨迹线的小尾巴
          polyline: true,
          effect: {
            show: true,
            period: 10,
            trailLength: 0.7,
            color: '#fff', //流动点颜色
            symbol: 'arrow',
            symbolSize: 6
          },
          lineStyle: {
            normal: {
              color: '#fff', //线条颜色
              width: 1.5,
              curveness: 0.2,
              shadowColor: '#fff',
            }
          },
          data: [
            {
              fromName: "深圳",
              toName: "郑州",
              coords: [
                [114.271522, 22.753644],
                [114.14, 34.16],
                [114.271522, 22.753644]
              ]
            },
            {
              fromName: "深圳",
              toName: "浙江",
              coords: [
                [114.271522, 22.753644],
                [120.19, 30.26],
                [114.271522, 22.753644]
              ]
            },
            {
              fromName: "深圳",
              toName: "重庆",
              coords: [
                [114.271522, 22.753644],
                [106.54, 29.59],
                [114.271522, 22.753644]
              ]
            }
          ],
        },
        // 黄色icon
        {
          name: 'lable',
          type: 'scatter',
          coordinateSystem: 'geo',
          symbol: 'pin',
          symbolSize: [50, 50],
          label: {
            normal: {
              show: true,
              textStyle: {
                color: '#fff',
                fontSize: 9,
              },
              formatter(value) {
                return value.data.value[2]
              }
            }
          },
          itemStyle: {
            normal: {
              color: '#D8BC37', //标志颜色
            }
          },
          data: data,
          showEffectOn: 'render',
          rippleEffect: {
            brushType: 'stroke'
          },
          hoverAnimation: true,
          zlevel: 1
        },
        // 文本框,白色圆点
        {
          type: 'lines',
          zlevel: 3,
          symbol: 'circle',
          symbolSize: [5, 5],
          color: '#ff8003',
          opacity: 1,
          label: {
            show: true,
            padding: [10, 20],
            color: '#fff',
            backgroundColor: "#1a3961",
            borderColor: '#aee9fb',
            borderWidth: 3,
            borderRadius: 6,
            formatter(params) 
              let arr = [params.name, "上行:" + params.value[1] + "G/s", "下行:" + params.value[0] + "G/s"];
              return arr.join("\n")
            },
            textStyle: {
              align: 'left',
              lineHeight: 20
            }
            /* normal: {
               textStyle: {
                 color: '#fff',
                 fontSize: 9,
               },
               formatter (value){
                  return value.data.value[2]
               },
             }*/
          },
          lineStyle: {
            type: 'solid',
            color: '#fff',
            width: 1,
            opacity: 1,
          },
          data: LableData,
        },
      ]
    };
    e.setOption(option);
  });
更多推荐

logback日志是怎么保证多线程输出日志线程安全的

logback中的单例模式logback日志框架使用了单例设计模式来进行日志输出。在logback中,Logger类是一个关键的组件,它负责记录和输出日志消息。Logger类使用了单例设计模式,确保在一个应用程序中只存在一个Logger实例。这样做的好处是可以确保所有的日志消息都被集中到同一个日志输出器中,避免了多个日

无人机“长坡”上,谁是滚出“厚雪球”的长期主义者?

“股神”巴菲特,曾提出过“长坡厚雪”的理论:人生就像滚雪球,重要的是发现很湿的雪和很长的坡。运用到企业经营上,“长坡”指的是企业所布局的领域发展潜力足、空间大;而“湿雪”,指的是企业竞争力强、有长期主义精神。将湿雪沿着长坡不断滚成厚雪球,就能收获长期主义的复利。就当下来看,在众多领域当中,无人机属于典型的“长坡”。全球

《时代》百大AI人物榜单公布,李彦宏、Sam Altman、黄仁勋等评为全球AI领袖

9月7日晚,《时代》周刊发布了首届全球百大AI人物。这100个人组成的群体在很多方面都是推动人工智能发展的关系和权力中心的地图。他们是竞争对手和监管者、科学家和艺术家、倡导者和高管——既竞争又合作的人类,他们的洞察力、欲望和缺陷将塑造这个影响力日益增强的技术的方向。”“人工智能的独特之处也是最令人恐惧和值得庆祝的地方,

生产消费者模型的介绍以及其的模拟实现

目录生产者消费者模型的概念生产者消费者模型的特点基于阻塞队列BlockingQueue的生产者消费者模型对基于阻塞队列BlockingQueue的生产者消费者模型的模拟实现ConProd.c文件的整体代码BlockQueue.h文件的整体代码对【基于阻塞队列BlockingQueue的生产者消费者模型的模拟实现】的测试

openGauss学习笔记-70 openGauss 数据库管理-创建和管理普通表-查看表数据

文章目录openGauss学习笔记-70openGauss数据库管理-创建和管理普通表-查看表数据70.1查询数据库所有表的信息70.2查询表的属性70.3查询表的数据量70.4查询表的所有数据70.5查询字段的数据70.6过滤字段的重复数据70.7查询字段为某某的所有数据70.8按照字段进行排序openGauss学习

深入学习 Redis Sentinel - 基于 DockerCompose 编排哨兵分布式架构,理解工作原理

目录一、哨兵模式1.1、为何引入哨兵模式1.2、RedisSentinel分布式架构1.2.1、概述1.2.2、工作原理(redis哨兵的核心功能)1.监控:2.自动故障转移:3.通知1.2.3、问题:哨兵结点只有一个可以么?1.3、使用Docker和DockerCompose模拟部署哨兵模式1.3.1、前言1.3.2

搭建ELK+Filebead+zookeeper+kafka实验

部署Zookeeper集群准备3台服务器做Zookeeper集群192.168.10.17192.168.10.21192.168.10.221.安装前准备关闭防火墙systemctlstopfirewalldsystemctldisablefirewalldsetenforce0安装JDKyuminstall-yja

Vulnhub实战-DC9

前言本次的实验靶场是Vulnhub上面的DC-9,其中的渗透测试过程比较多,最终的目的是要找到其中的flag。一、信息收集对目标网络进行扫描arp-scan-l对目标进行端口扫描nmap-sC-sV-oAdc-9192.168.1.131扫描出目标开放了22和80两个端口,访问目标的80端口。对目标进行目录扫描与分析。

第三十章 Classes - 方法生成器

[toc]第三十章Classes-方法生成器方法生成器方法生成器是类编译器在类编译期间调用的程序。它的输出是该方法的实际运行时实现。方法生成器提供了一种继承方法的方法,可以生成根据继承类或属性的需要定制的高性能、专用代码。在IRIS库中,方法生成器广泛用于数据类型和存储类。ClassQueries类可以包含类查询。类查

【自学开发之旅】Flask-会话保持-API授权-注册登录

http-无状态-无法记录是否已经登陆过#会话保持–sessioncookiesession–保存一些在服务端cookie–保存一些数据在客户端session在单独服务器D上保存,前面数个服务器A,B,C上去取就好了,业务解耦。—》》现在都是基于token的验证。以上是基于BS架构API授权由服务端完全把控三张表,ap

【Linux基础】第29讲 Linux用户和用户组权限控制命令(一)

1useradd添加新用户(注意:当前用户必须有添加用户的权限)1)基本语法useradd用户名(功能描述:添加新用户)2)案例root@sue-virtual-machine:/usr/local#useraddhadoop2passwd设置用户密码1)基本语法passwd用户名(功能描述:设置用户密码)2)案例ro

热文推荐