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

news2024/9/30 3:36:53

我在第一篇可视化地图中,有一些基础介绍,本篇文章就是多展示一些效果,大家可以按需获取。
先直接上效果图
在这里插入图片描述
这里的配置项有用到
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);
  });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang实现远程控制主机

文章目录 ssh原理使用golang远程下发命令使用golang远程传输文件 ssh原理 说到ssh原理个人觉得解释最全的一张图是这张华为画的 Connection establishment 这一步就是建立tcp连接 version negotiation 这一步是ssh客户端(连接者)和被ssh服务端(连接者)进行协议的交换&#xf…

湖南长沙石雕石质文物三维扫描数字化雕刻3D打印复刻文化遗产-CASAIM中科广电

石质文物主要包括石雕、石塔和古建筑等,颇具代表性的雕刻动物作品有:龙、凤、狮子、麒麟、貔貅、金蟾等。石雕是我国文化遗产的重要组成,在书写灿烂文明中扮演着重要角色,记载了我国文化和历史的变迁。 随着现代艺术的发展&#…

vscode快捷键大全中英文

vscode快捷键大全中英文 源文件下载链接

700多心理测试性格测试大全ACCESS\EXCEL数据库

这是一个关于心理测试、性格测试的ACCESS数据库,这个测试有一个测试项目一个问题选择后就有结果,也有一个测试项目有N多题需做完N多题根据各题得分得出总结果,所以ACCESS数据表的结构设计的很灵活。 测试项目表:为整个ACCESS数据…

DDoS攻击和CC攻击

DDoS是(Distributed Denial of Service,分布式拒绝服务)攻击和CC(Challenge Collapsar,挑战黑洞) 攻击是两种常见且具有破坏性的攻击类型,它们可以对网络基础设施和在线业务造成重大损害。为了抵御这些攻击…

vscode编写前端提升效率的三个必不可缺的插件以及使用方法

直接官网下载这个软件就行,没什么操作的。 这里面有新建文件夹,你可以自己去建一个文件夹 然后点击那个小号,就可以新建一个文件,比如说demo01.html,⚠️后面的html是你需要自己手动输入的 第一个插件,就是这个她可以让…

Android 虚拟机

文章目录 Android 虚拟机Java虚拟机基于栈的虚拟机栈的执行流程 Dalvik虚拟机基于寄存器的虚拟机寄存器的执行流程Java虚拟机与Dalvik虚拟机区别 ART虚拟机Android 7.0的运行方式 Android 虚拟机 Java虚拟机 基于栈的虚拟机 每一个运行时的线程,都有一个独立的栈…

包装类型和基本类型的转换(自动装箱/自动拆箱)

①包装类型->基本类型 ②基本类型->包装类型 //第一种:直接创建对象Integer ynew Integer(20);//第二种:使用Integer类的静态方法valueOf()Integer zInteger.valueOf(30); JAVA对以上内容的简化: 自动装箱(基本类型->包…

嵌入式C语言知识复习和提高

文章目录 前言基础知识main函数防BUG注释(重要)关键字标识符命名(驼峰命名)常量类型变量printf1.输出不同类型数据2.输出不同宽度数据3.不同类型数据长度归类 scanf函数运算符sizeof(运算符,优先级2&#x…

Springboot ruoyi配置mysql备份定时任务

一、RuoYiConfig.class 新增获取备份路径方法 public static String getDataBaseBackUp() {return getProfile() "/dbBackUp";} 二、RyTask:新增备份数据库方法 mySqlDump方法:参数详见代码 package com.ruoyi.quartz.task;import cn.hut…

智慧工地4G+蓝牙+GPS/北斗RTK人员定位系统解决方案

工地是事故多发地,对工地人员进行定位管理非常有必要。传统工地管理手段存在局限性,往往难以高效地管理工地上的人员。随着科技的发展,工地人员定位管理系统逐渐普及。通过使用人员定位系统,工地管理者可以对工地上的人员进行全面…

对权限的理解和使用

目录 一:用户权限: ★su命令 ★sudo命令 二:文件权限 ★文件的类型权限 ★文件夹的权限的使用 ▲文件夹的可读权限: ▲文件夹的可写权限: ▲文件夹的可执行权限: ★权限的修改操作 ▲chmod命令 ★对于文件的…

C++:deque的概念以及stack和queue的模拟实现

文章目录 stack的模拟实现dequequeue的模拟实现 本篇主要总结的是stack和queue的模拟实现以及deque的原理 stack的模拟实现 和前面的模拟实现相同,首先要看官方实现的功能 这里引入了Container的概念,从字面意思来看,也就是说,在…

pdf转换成word,这里有几个不错的方法

pdf转换成word怎么转?大家都知道,在电脑进行各种文件格式转换中,PDF转换为Word文档的需求量应该是最大的。在我们的日常工作中,经常需要将PDF转换为Word格式。为什么要将pdf文件转换成word,相信大家也都应该知道的&…

图解 | 这就是网络

你是一台电脑,你的名字叫 A 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来。 用一根网线连接起来怎么就能&q…

二叉树链式结构基础

一、前中后序遍历 1、前序遍历:前序遍历是采用 根 - 左子树 - 右子树 的顺序遍历二叉树。 也就是把整棵树分为一个个子问题,每个结点都可以看作 根、左子树、右子树 三个部分 (左右子树可以为空,就是单节点,根为空就表示探索完成&…

自动化测试需知的4项测试工具!

一般来说学自动化会建议大家先学selenium,因为最早的时候,自动化就代表selenium,进入测试行业就开始做接口测试,而且现在基本每个公司都需要接口测试。今天就和大家聊一下接口测试的工具。 一、Robot Framework 机器人框架。之所…

利用证书给pdf文件添加数字签名

文章目录 给pdf文件签名文件准备构建印章获取证书方法一 阿里云申请证书方法二 自建证书 利用证书给pdf签名在指定位置签名在指定坐标签名在指定签名域签名 给pdf文件签名 如何给pdf文件签名,这样pdf文件就具有不可修改性,具有鉴权、完整性、不可抵赖。…

【操作系统笔记】内存寻址

物理寻址 主存(内存) 计算机主存也可以称为物理内存,内存可以看成由若干个连续字节大小的单元组成的数组每个字节都有一个唯一的物理地址(Physical Address)CPU访问内存前,先拿到内存地址,然后…

通讯网关软件005——利用CommGate X2OPC实现OPC客户端访问MS SQL服务器

本文推荐利用CommGate X2OPC实现OPC客户端访问MS SQL服务器获取数据。CommGate X2OPC是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,上位机通过OPC Client软件来获取MS SQL数据库的数据。 …