echarts 3d中国地图飞行线

一、3D中国地图
1. 一定要使用 echarts 5.0及以上的版本;

2. echarts 5.0没有内置中国地图了。点击下载 china.json;

3. 一共使用了四层地图。
(1)第一层是中国地图各省细边框和展示南海诸岛;
(2)第二层是实现中国地图外边框的宽度和阴影,与第一层完全重合,隐藏南海诸岛;
(3)第三层和第四层形成一个底层3d立体,使用top往下偏移,隐藏南海诸岛。

// html
<div class="china-map" ref="chinaMap"></div>
// 引入资源
import * as echarts from 'echarts'
import china from '@/assets/json/china.json'
 
// 方法
chinaEchart(){
    //注册地图,这个特别重要
    echarts.registerMap('china', china)
    let myChart = echarts.init(this.$refs.chinaMap);
    //echart 配制option  
      var options= {
        tooltip: {
          show:true,
          triggerOn: "mousemove",   //mousemove、click
          padding:[4,8],
          borderWidth:1,
          borderColor:'#409eff',
          backgroundColor:'rgba(255,255,255,0.7)',
          textStyle:{
            color:'#000000',
            fontSize:13
          },
          formatter: function(e) {
            return e.name;
          }
        },
        geo: [
          // 第一层
          {
            map: "china",
            z: 3,
            zoom: 1.2,
            aspectScale: 0.85,
            roam: false,
            top: '10%',
            layoutSize: "100%", //保持地图宽高比
            regions: [
              { // 隐藏南海诸岛,因为顶层已经添加过了
                name: '南海诸岛',
                itemStyle: {
                  borderWidth: 0.5,
                  shadowBlur: 0,
                  borderColor: '#61aacb',
                  areaColor: '#104584'
                }
              }
            ],
            itemStyle:{
              borderColor: '#c8feff',
              borderWidth: 0.5,
              shadowBlur: 3,
              shadowColor: '#66edff',
              areaColor: '#0862db'
            },
            emphasis:{
              itemStyle:{
                shadowBlur: 10,
                borderWidth: 1,
                areaColor: '#2da9ff',
              },
              label:{
                show:false,
                color: '#ffffff',
              }
            },
            select:{
              itemStyle:{
                shadowBlur: 10,
                borderWidth: 1,
                areaColor: '#2da9ff',
              },
              label:{
                color: '#ffffff',
              }
            }
          },
          // 第二层
          {
            map: "china",
            z: 2,
            zoom: 1.2,
            aspectScale: 0.85,
            roam: false,
            silent:true,
            top: '10%',
            layoutSize: "100%", //保持地图宽高比
            regions: [
              { // 隐藏南海诸岛,因为顶层已经添加过了
                name: '南海诸岛',
                itemStyle: {
                  opacity: 0 // 为 0 时不绘制该图形
                },
                label: {
                  show: false
                }
              }
            ],
            itemStyle:{
              borderColor: '#d8feff',
              borderWidth: 3,
              shadowBlur: 10,
              shadowColor: '#22a1ff',
              areaColor: '#0862db',
              shadowOffsetX: 0,
              shadowOffsetY: 8
            },
          },
          // 第三层
          {
            map: "china",
            z: 1,
            zoom: 1.2,
            aspectScale: 0.85,
            top: '11.5%',
            silent:true,
            layoutSize: "100%", //保持地图宽高比
            itemStyle:{
              borderColor: '#c8feff',
              borderWidth: 1,
              shadowBlur: 0,
              shadowColor: '#99c4ff',
              areaColor: '#4ebaff',
            },
            regions: [
              { // 隐藏南海诸岛,因为顶层已经添加过了
                name: '南海诸岛',
                itemStyle: {
                  opacity: 0 // 为 0 时不绘制该图形
                },
                label: {
                  show: false
                }
              }
            ],
          },
          // 第四层
          {
            map: "china",
            z: 0,
            zoom: 1.2,
            aspectScale: 0.85,
            top: '12%',
            silent:true,
            layoutSize: "100%", //保持地图宽高比
            itemStyle:{
              borderColor: '#66edff',
              borderWidth: 2,
              shadowBlur: 20,
              shadowColor: '#4d99ff',
              areaColor: '#1752ad',
              shadowOffsetX: 0,
              shadowOffsetY: 8
            },
            regions: [
              { // 隐藏南海诸岛,因为顶层已经添加过了
                name: '南海诸岛',
                itemStyle: {
                  opacity: 0 // 为 0 时不绘制该图形
                },
                label: {
                  show: false
                }
              }
            ],
          },
        ],
        series: [
          // 地图
          {
            type: "map",
            geoIndex: 0,
            data: []
          }
        ]
      }
      myChart.setOption(options);
}
二、地图飞线
1. 飞线有一对多,多对多;

2. 起点和终点使用effectScatter标点。

// 起点名称和经纬度
const fromName = '重庆市'
const fromLatlng = [106.33,29.35]
 
// 终点名称和经纬度
const geoCoordMap = [
    { name: '盘锦市', latlng: [120.93141287481329, 40.93448132827849]},
    { name: '沧州市', latlng: [116.71809759843096, 37.96769678343516]},
    { name: '东营市', latlng: [118.29234782217573, 37.44294670885357]},
    { name: '大连市', latlng: [121.26593157813807, 38.886009413952934]},
    { name: '沈阳市', latlng: [122.220947193165, 41.64094730550629]},
    { name: '北京市', latlng: [116.07673639616456, 40.110426254643315]},
    { name: '白银市', latlng: [101.09220648866805, 36.568363251217576]},
    { name: '石家庄市', latlng: [115.20215293852858, 38.886009413952934]}
]
 
//飞线数据
const linesData = geoCoordMap.map(row=>{
    return {
        coords: [
            fromLatlng,
            row.latlng
        ],
        fromName: fromName,
        toName: row.name,
        lineStyle: {
            color: '#FFE747',
            curveness: 0.2
        }
    }
})
 
// 终点标点数据
let effectData = geoCoordMap.map(row=>{
    return {
        value: row.latlng,
        name: row.name,
        lineStyle: {
            color: '#FFE747'
        }
    }
})
 
// series新增飞线
series: [
     // 飞线
     {
            type: 'lines',
            zlevel: 5,
            effect: {
              show: true,
              period: 5, //箭头指向速度,值越小速度越快
              trailLength: 0, //特效尾迹长度[0,1]值越大,尾迹越长重
              symbol: 'arrow', //ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
              symbolSize: 8, //图标大小
            },
            lineStyle: {
              color: '#FFE747',
              type: 'dashed',
              width: 2, //尾迹线条宽度
              opacity: 1, //尾迹线条透明度
              curveness: 0.3 //尾迹线条曲直度
            },
            data: linesData,
            markPoint:{
              symbol: 'circle', //ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
              symbolSize: 8, //图标大小
            }
    },
    //起点
    {
            type: 'effectScatter',
            coordinateSystem: 'geo',
            zlevel: 6,
            rippleEffect: {
                //涟漪特效
                period: 4, //动画时间,值越小速度越快
                brushType: 'stroke', //波纹绘制方式 stroke, fill
                scale: 4 //波纹圆环最大限制,值越大波纹越大
            },
            label: {
              show: false,
              position: 'right', //显示位置
              offset: [5, 0], //偏移设置
              formatter: '{b}', //圆环显示文字
              color: 'red'
            },
            symbol: 'circle',
            symbolSize: function(val) {
              return 10; //圆环大小
            },
            itemStyle: {
              show: false,
              color: '#ff8400',
            },
            data: [{value: fromLatlng,name: fromName}]
          },
          // 终点
          {
            type: 'effectScatter',
            coordinateSystem: 'geo',
            zlevel: 6,
            rippleEffect: {
                //涟漪特效
                period: 4, //动画时间,值越小速度越快
                brushType: 'stroke', //波纹绘制方式 stroke, fill
                scale: 4 //波纹圆环最大限制,值越大波纹越大
            },
            label: {
              show: false,
              position: 'right', //显示位置
              offset: [5, 0], //偏移设置
              formatter: '{b}', //圆环显示文字
              color: 'red'
            },
            symbol: 'circle',
            symbolSize: function(val) {
              return 6; //圆环大小
            },
            itemStyle: {
              show: false,
              color: '#befaff',
            },
            data: effectData
}]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

傅里叶公式推导(一)

文章目录 三角函数系正交证明图观法数学证明法计算当 n不等于m当 n等于m&#xff08;重点&#xff09; 其它同理 首先要了解的一点基础知识&#xff1a; 三角函数系 { sin ⁡ 0 , cos ⁡ 0 , sin ⁡ x , cos ⁡ x , sin ⁡ 2 x , cos ⁡ 2 x , … , sin ⁡ n x , cos ⁡ n x ,…

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现 目录 SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来&#xff08;优…

DeepSeek 助力 Vue 开发:打造丝滑的步骤条

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

利用二分法进行 SQL 盲注

什么是sql注入&#xff1f; SQL 注入&#xff08;SQL Injection&#xff09;是一种常见的 Web 安全漏洞&#xff0c;攻击者可以通过构造恶意 SQL 语句来访问数据库中的敏感信息。在某些情况下&#xff0c;服务器不会直接返回查询结果&#xff0c;而是通过布尔值&#xff08;Tr…

USB子系统学习(四)用户态下使用libusb读取鼠标数据

文章目录 1、声明2、HID协议2.1、描述符2.2、鼠标数据格式 3、应用程序4、编译应用程序5、测试6、其它 1、声明 本文是在学习韦东山《驱动大全》USB子系统时&#xff0c;为梳理知识点和自己回看而记录&#xff0c;全部内容高度复制粘贴。 韦老师的《驱动大全》&#xff1a;商…

数据安全:守护数据的坚固防线

在数字化时代&#xff0c;数据已成为企业和组织的核心资产。然而&#xff0c;数据的安全性问题也日益凸显&#xff0c;数据泄露、数据滥用等事件频发&#xff0c;给企业和个人带来了巨大的损失。今天&#xff0c;让我们深入《DAMA数据管理知识体系指南&#xff08;第二版&#…

PyQt学习记录

0. 安装配置 0.1 安装相关库 首先打开你的PyCharm程序&#xff0c;然后新建一个目录用于学习&#xff0c;其次在terminal中输入 pip install pyqt5如果你不具有科学上网能力&#xff0c;请改为国内源 pip install pyqt5 -i https://pypi.douban.com/simple然后安装pyqt相关…

对“云原生”的初印象

一、背景 最近因为在工作中以及一些技术博客中听的比较火的一个关键词 "云原生"&#xff0c;于是产生了好奇&#xff0c;云原生到底是什么东西&#xff1f;自己对云原生也是一个纯小白&#xff0c;于是带着这个问题去好好了解一下&#xff0c;什么是"云原生&qu…

SystemVerilog基础:disable fork语句

相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html?spm1001.2014.3001.5482 一、进程的概念 在学习disable fork语句之前&#xff0c;首先的了解SystemVerilog中的进程概念&#xff1a;进程是一系列可以独立执行的一个或多个表达式。…

富芮坤FR8003硬件:VDDIO供电有工作不正常的情况从VBAT供电正常

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

IBM服务器刀箱Blade安装Hyper-V Server 2019 操作系统

案例:刀箱某一blade,例如 blade 5 安装 Hyper-V Server 2019 操作系统(安装进硬盘) 刀箱USB插入安装系统U盘,登录192.168... IBM BlandeCenter Restart Blande 5,如果Restart 没反应,那就 Power Off Blade 然后再 Power On 重启后进入BIOS界面设置usb存储为开机启动项 …

【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面

本地部署DeepSeek-R1:8b大模型 一、摘要及版本选择说明1.1 摘要1.2 版本选择 二、下载并安装Ollama三、运行DeepSeek-R1:8b大模型四、安装Open WebUI增强交互体验五、关闭Ollama开机自动启动六、DeepSeek大模型启停步骤 一、摘要及版本选择说明 1.1 摘要 作为一名对 AI 和生成…

6、使用one-api管理统一管理大模型,并开始使用本地大模型

文章目录 本节内容介绍集中接入&#xff1a;将大模型统一管理起来当使用了大模型代理大模型代理示例 开源模型&#xff1a;如何使用Hugging Face上的模型modelscope使用 pipeline 调用模型用底层实现调用模型流式输出 如何在项目中使用开源模型使用 LangChain使用集中接入开始使…

绕组电感 - Ansys Maxwell 磁通链与电流

在本博客中&#xff0c;我将演示如何使用 Ansys Maxwell 中磁瞬态求解器的磁通链和电流结果来计算绕组电感。Ansys Maxwell 磁瞬态求解器在场计算中考虑了涡流效应&#xff0c;我将展示一种使用磁通链和电流结果来计算绕组电感的简单方法。 实际上&#xff0c;电感是非线性的…

【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案

建筑设计公司在项目执行过程中&#xff0c;会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求&#xff1a;为了方便内部管理和向客户交付完整的设计方案&#xff0c;公司需要将每个项目文件…

Formality:探针(Probe Point)的设置与使用

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一般情况下&#xff0c;verify命令会对参考设计和实现设计所有匹配的比较点各自进行验证&#xff0c;但有些时候为了调试&#xff0c;可能需要验证参考设计和实现设…

Cherry Studio之DeepSeek联网/本地,建属于自己的AI助理!

上一篇文章&#xff0c;讲了DeepSeek-R1部署到本地的方法。这一篇文章&#xff0c;我们让DeepSeek再一次升级&#xff0c;通过图形化界面来交互&#xff0c;从而变成我们的AI助理&#xff0c;让DeepSeek R1发挥最大实力&#xff01; 首选需要借助硅基流动的API接口&#xff0c…

HarmonyOS Next 方舟字节码文件格式介绍

在开发中&#xff0c;可读的编程语言要编译成二进制的字节码格式才能被机器识别。在HarmonyOS Next开发中&#xff0c;arkts会编译成方舟字节码。方舟字节码长什么样呢&#xff1f;我们以一个demo编译出的abc文件&#xff1a; 二进制就是长这样&#xff0c;怎么去理解呢&…

AMD 8845HS 780M核显部署本地deepseek大模型的性能

测试了一下笔记本电脑AMD 8845HS的780M核显是否能本地部署deepseek大模型。 测试软件环境&#xff1a;LM Studio 0.3.9 、Windows 11 24H2 硬件&#xff1a;荣耀X16笔记本 CPU&#xff1a;AMD 8845HS 显卡&#xff1a;780M核显&#xff0c;显存为共享内存自动分配模式&…

实验7 路由器之间IPsec VPN配置

实验7 路由器之间IPsec VPN配置 1.实验目的 通过在两台路由器之间配置IPsec VPN连接&#xff0c;掌握IPsec VPN配置方法&#xff0c;加深对IPsec协议的理解。 2.实验内容 &#xff08;1&#xff09;按照实验拓扑搭建实验环境。 &#xff08;2&#xff09;在路由器R1和R4配置IP…