当前位置: 首页 > news >正文

vue+Echarts导入自定义地图

在vue项目先安装echarts

//在vue文件中的<script>中引入
import * as echarts from "echarts";
import geoJson from '../assets/map/Fmap.json';  //自定义地图的位置
import * as topojson from "topojson-client";    //使用组件topojson-client

自定义地图教程

使用阿里云旗下的一个的数据可视化平台 DataV.GeoAtlas。
以创建四大区为例:东北地区、东部地区、中部地区、西部地区。
进入到范围选择器,下载全国各个地区。
在这里插入图片描述
东北地区有黑龙江省、辽宁省、吉林省。
依次下载好后选择边界生成器,导入数据。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
其余大区完成步骤一致,导出4个大区。
导出数据后选择层级生成器
根区域绑定数据中国在这里插入图片描述
点击批量导入子节点
在这里插入图片描述
导入4个大区的数据
在这里插入图片描述
点击右下角导出层级(开放格式)
在这里插入图片描述
获得这俩组数据
在这里插入图片描述
层级是地图数据
层级映射的地图互相关联信息
在这里插入图片描述
将层级重命名放入assets下的map文件夹中
完善代码

<template><div ref="mapBar" class="map-class"></div>
</template>
<script>
import * as echarts from "echarts";
import geoJson from '../assets/map/Fmap.json';
import * as topojson from "topojson-client";
export default {data() {return {chartData: [ // 这里是中国和大区之间的映射关系{name: "中国",treeID: "1",parent: null,treeName: "中国_1",},{name: "东北",treeID: "1-1",parent: "1",treeName: "东北_1-1",value:8000,//ename: 'north' // 新增的字段,方便地图下钻},{name: "东部",treeID: "1-2",parent: "1",treeName: "东部_1-2",//ename: 'north' // 新增的字段,方便地图下钻},{name: "中部",treeID: "1-3",parent: "1",treeName: "中部_1-3",//ename: 'north' // 新增的字段,方便地图下钻},{name: "西部",treeID: "1-4",parent: "1",treeName: "西部_1-4",//ename: 'north' // 新增的字段,方便地图下钻},],options:{tooltip: {triggerOn: 'mousemove',formatter: function (e) {return e.name + ':' + e.value}},// geo为地理坐标系组件,用于地图的绘制,支持在地理坐标系上绘制散点图,线集。geo: {map: 'china', // 使用 registerMap 注册的地图名称。},series: [{name: '随机数',type: 'map',geoIndex: 0,data:[]}]}};},methods: {init() {this.chart = echarts.init(this.$refs.mapBar);// 使用数据 geoJson 注册名为 'china' 的地图// 通过组件topojson-client把topojson转换为geojson 只取payloadconst ChinaResult = topojson.feature(geoJson.payload,geoJson.payload.objects.collection);this.chartData.forEach((i, index) => {if (index > 0 ) {let result = topojson.feature(geoJson.children[i.treeID].payload,geoJson.children[i.treeID].payload.objects.collection,);ChinaResult.features = [...ChinaResult.features, ...result.features];}});echarts.registerMap('china', ChinaResult);// 要渲染的数据this.options.series[0].data = this.chartData;this.$nextTick(() => {this.chart.setOption(this.options);})}},mounted() {this.init();},
};
</script>
<style scoped>
.map-class{width: 65%;height: 80vh;border: 1px solid #ccc;
}
</style>

代码完善后地图并不能正确的出现分区,也无法将各个区域依次选中
打开地图重命名的json地图数据,搜索adcode

在这里插入图片描述

找到如下内容

在这里插入图片描述

在"adcode" : " " 后加入"name" : “对应大区名称”,一共需要加入4个。 最后运行项目,地图完善。
在这里插入图片描述

http://www.lryc.cn/news/44525.html

相关文章:

  • dp-组合总和 Ⅳ
  • 46-堆
  • Mysql高可用高性能存储应用系列3 - mysqld_multi配置主从集群
  • 天干地支(Java)
  • 码住,虹科工业树莓派应用小tips
  • 美国新规-带绳窗帘亚马逊ANSI/WCMA A100.1-20测试标准详解
  • 【华为OD机试 2023最新 】 模拟商场优惠打折(C++)
  • 前端直接生成GIF动态图实践
  • 2023年Java岗面试八股文及答案整理(金三银四最新版)
  • centos8上安装redis
  • 新六级阅读通关特训
  • 【AI绘画】如何使用Google Colab安装Stable Diffusion
  • C++:STL架构图
  • [Ubuntu][网络][教程]端口转发以及端口管理
  • @Scheduled 定时任务不执行
  • 我是怎样被卷的(二)
  • Linux- 浅谈ELF目标文件格式
  • C++ MVC模式
  • IntelliJ IDEA2021安装教程
  • day16—选择题
  • LLVM 的中间代码(IR) 基本语法
  • 多标签在单行出现省略的实现
  • 第二十七章 纹理总结
  • 【Linux面试】-(腾讯,百度,美团,滴滴)
  • 编译链接和预处理
  • 基于sprinmgboot实现实习管理系统的设计【源码+论文】
  • 动态规划入门
  • day26 SpringBootWeb案例(二)
  • 力扣-《剑指offer》-哈希表-刷题笔记
  • 【SpringBoot】| 邮箱发送验证码,你会了吗?