React Next项目中导入Echart世界航线图

devtools/2025/3/14 9:22:04/

公司业务要求做世界航线图,跑了三个ai未果,主要是引入world.json失败,echart包中并不携带该文件,源码的world.json文件页面404找不到。需要自己寻找。这是整个问题卡壳的关键点,特此贴出资源网址。

一、安装

npm install echarts

二、下载world.json

world.json在最下面,点开直接粘贴到自己项目中引入

Index of /examples/data/asset/geo

三、创建地图组件WorldMap.js

javascript">import React, { useRef, useEffect } from "react";
import * as echarts from "echarts";const geoCoordMap = {"New York": [-74.0060, 40.7128],"London": [-0.1278, 51.5074],"Tokyo": [139.6917, 35.6895],"Beijing": [116.4074, 39.9092],
};const SHData = [[{ name: "Beijing", value: 105 }, { name: "New York", value: 105 }],[{ name: "Beijing", value: 105 }, { name: "London", value: 105 }],[{ name: "Beijing", value: 105 }, { name: "Tokyo", value: 105 }],
];const convertData = (data) => {const res = [];for (let i = 0; i < data.length; i++) {const dataItem = data[i];const fromCoord = geoCoordMap[dataItem[0].name];const toCoord = geoCoordMap[dataItem[1].name];if (fromCoord && toCoord) {res.push({fromName: dataItem[0].name,toName: dataItem[1].name,coords: [fromCoord, toCoord],});}}return res;
};const WorldMap = () => {const chartRef = useRef(null);useEffect(() => {// 动态加载世界地图数据fetch("/world.json") // 确保文件路径正确,这里假设 world.json 放在 public 文件夹下.then((res) => res.json()).then((mapData) => {echarts.registerMap("world", mapData); // 注册地图数据const myChart = echarts.init(chartRef.current);const seriesData = [{type: "lines",zlevel: 1,effect: {show: true,period: 6,trailLength: 0.7,color: "#fff",symbolSize: 3,},lineStyle: {color: "#46bee9",width: 0,curveness: 0.2,},data: convertData(SHData),},{type: "lines",zlevel: 2,symbol: ["none", "arrow"],symbolSize: 10,effect: {show: true,period: 6,trailLength: 0,symbol: "path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z",symbolSize: 15,},lineStyle: {color: "#46bee9",width: 1,opacity: 0.6,curveness: 0.2,},data: convertData(SHData),},{type: "effectScatter",coordinateSystem: "geo",zlevel: 2,rippleEffect: {brushType: "stroke",},label: {show: true,position: "right",formatter: "{b}",},symbolSize: (val) => val[2] / 8,itemStyle: {color: "#46bee9",},data: SHData.map((dataItem) => ({name: dataItem[1].name,value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]),})),},];myChart.setOption({geo: {map: "world",roam: true,itemStyle: {areaColor: "#404a59",borderColor: "#61727a",},emphasis: {itemStyle: {areaColor: "#7acfd6",},},},series: seriesData,});}).catch((error) => {console.error("Failed to load world map data:", error);});}, []);return <div ref={chartRef} style={{ width: "100%", height: "600px" }} />;
};export default WorldMap;

四、引入地图组件到页面上

javascript">import React from "react";
import styles from "../styles/AfterSalesPage.module.css";
import WorldMap from "../components/WorldMap"; // 确保使用默认导入const AfterSales = () => {return (<div className={styles.newsContainer}><WorldMap /></div>);
};export default AfterSales;

成果展示:


http://www.ppmy.cn/devtools/166981.html

相关文章

13. Pandas :使用 to_excel 方法写入 Excel文件

一 to_excel 方法的相关参数 用它来指定要将 DataFrame 写入哪些工作表的哪些单元格&#xff0c;以及是否需要包含列标题和 DataFrame 索引。如何处理特殊值&#xff08;如 np.nan 和 np.inf&#xff09;。 1.指定工作表和单元格 sheet_name&#xff1a;指定将 DataFrame 写入的…

STM32F407 cubeIDE Bootloader APP 如何写

一、bootloader 代码如下&#xff1a; #define FLASH_JUMP_ADDR (0x0800c000) /* USER CODE END PD *//* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ----------…

高效数据分析实战指南:Python零基础入门

高效数据分析实战指南 —— 以Python为基石&#xff0c;构建您的数据分析核心竞争力 大家好&#xff0c;我是kakaZhui&#xff0c;从事数据、人工智能算法多年&#xff0c;精通Python数据分析、挖掘以及各种深度学习算法。一直以来&#xff0c;我都发现身边有很多在传统行业从…

工作记录 2017-01-06

工作记录 2017-01-06 序号 工作 相关人员 1 协助BPO进行Billing的工作。 修改CSV、EDI837的导入。 修改邮件上的问题。 更新RD服务器。 郝 修改的问题&#xff1a; 1、 In “Full Job Summary” (patient info.), sometime, the Visit->Facility is missed, then …

RHCE(RHCSA复习:虚拟的安装和设置)

一、安装虚拟机&#xff08;见截图&#xff09; 虚拟机放大&#xff1a;ctrlshift加号 虚拟机缩小&#xff1a;ctrl减号 连接xshell的命令&#xff1a; ssh root(加上自己的ip)虚拟机关机的命令&#xff1a; systemctl poweroff 或者init 0&#xff08;该命令很古老&#xff…

LeetCode:93. 复原 IP 地址(DFS Java)

目录 93. 复原 IP 地址 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 93. 复原 IP 地址 题目描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xf…

阿里云魔笔低代码应用开发平台快速搭建教程

AI低代码&#xff0c;大模型时代应用开发新范式 什么是魔笔 介绍什么是魔笔低代码应用开发平台。 魔笔是一款面向全端&#xff08;Web、H5、全平台小程序、App&#xff09;场景的模型驱动低代码开发平台&#xff0c;提供一站式的应用全生命周期管理&#xff0c;包括可视化开发…

Spring 事务失效的 8 种场景!

在日常工作中&#xff0c;如果对Spring的事务管理功能使用不当&#xff0c;则会造成Spring事务不生效的问题。而针对Spring事务不生效的问题&#xff0c;也是在跳槽面试中被问的比较频繁的一个问题。 点击上方卡片关注我 今天&#xff0c;我们就一起梳理下有哪些场景会导致Sp…