Echarts 绘制地图

ops/2024/11/30 4:36:28/

一、Apache Echarts
官网地址:https://echarts.apache.org/ 

npm install echarts --save

二、获取地图的GeoJSON
地址:DataV.GeoAtlas地理小工具系列

 左侧是地图,右侧是JSON数据路径,点击你想要生成的地图省市、地级(以中华人名共和国为例为例)

注意:地图点击可以下钻,再点进去是二级,直到你想要的省市地区(点击旁边的空白可以返回上一级);右侧JSON数据的链接地址,可以选择下载下来(放在json文件夹中),也可以使用在线地址!(json API与geoJSON数据地址均可用)

三、项目中引用

import * as echarts from 'echarts';


四、准备放地图的容器

<div style="width:800px;height:600px" id="main"></div>


五、配置地图option信息

let mapOption = {tooltip: {trigger: 'item',formatter: () => {let showHtml = ''showHtml += `<span style="display: flex; font-size: 12px;">${'装机量'}:${params.name}</br></span>`return showHtml},},legend: {orient: 'vertical',left: 'left',data: [],},series: [{name: '安装信息',type: 'map',mapType: 'china',roam: false,label: {normal: {show: true,},emphasis: {show: true,},},emphasis: {scale: true,itemStyle: {areaColor: '#fff',},},symbolSize: function (val) {return val[2] / 15},showEffectOn: 'render',itemStyle: {areaColor: '#2043AA',borderColor: '#111',color: '#fff',},zlevel: 1,data: [{name: '北京',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '天津',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '上海',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '重庆',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{ name: '河北', value: Math.round(Math.random() * 100) },{ name: '河南', value: Math.round(Math.random() * 100) },{ name: '云南', value: Math.round(Math.random() * 100) },{ name: '辽宁', value: Math.round(Math.random() * 100) },{ name: '黑龙江', value: Math.round(Math.random() * 100) },{ name: '湖南', value: Math.round(Math.random() * 100) },{ name: '安徽', value: Math.round(Math.random() * 100) },{ name: '山东', value: Math.round(Math.random() * 100) },{ name: '新疆', value: Math.round(Math.random() * 100) },{ name: '江苏', value: Math.round(Math.random() * 100) },{ name: '浙江', value: Math.round(Math.random() * 100) },{ name: '江西', value: Math.round(Math.random() * 100) },{ name: '湖北', value: Math.round(Math.random() * 100) },{ name: '广西', value: Math.round(Math.random() * 100) },{ name: '甘肃', value: Math.round(Math.random() * 100) },{ name: '山西', value: Math.round(Math.random() * 100) },{ name: '内蒙古', value: Math.round(Math.random() * 100) },{ name: '陕西', value: Math.round(Math.random() * 100) },{ name: '吉林', value: Math.round(Math.random() * 100) },{ name: '福建', value: Math.round(Math.random() * 100) },{ name: '贵州', value: Math.round(Math.random() * 100) },{ name: '广东', value: Math.round(Math.random() * 100) },{ name: '青海', value: Math.round(Math.random() * 100) },{ name: '西藏', value: Math.round(Math.random() * 100) },{ name: '四川', value: Math.round(Math.random() * 100) },{ name: '宁夏', value: Math.round(Math.random() * 100) },{ name: '海南', value: Math.round(Math.random() * 100) },// {name: '台湾',value: Math.round(Math.random()*100)},{ name: '香港', value: Math.round(Math.random() * 100) },{ name: '澳门', value: Math.round(Math.random() * 100) },],},],}


六、初始化地图
我的地图Json文件是下载放到项目里assets下的,你可以使用在线的也可以引用本地的

var myChart = echarts.init(document.getElementById('main')); //获取当前的div
echarts.registerMap('china', data) // 注册china.json的数据到初始化的echarts对象
myChart.setOption(mapOption) // 绑定地图的配置参数对象,参考第二步
myChart.resize()

效果如下:

完整代码如下:

<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><div id="main" style="width:1000px;height:800px;"></div></div>
</template><script>
import * as echarts from 'echarts';
import data from './assets/map.json'export default {name: 'App',mounted() {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {tooltip: {trigger: 'item',formatter: (params) => {let showHtml = ''showHtml += `<span style="display: flex; font-size: 12px;">${'装机量'}:${params.name}</br></span>`return showHtml},},legend: {orient: 'vertical',left: 'left',data: [],},series: [{name: '安装信息',type: 'map',mapType: 'china',roam: false,label: {normal: {show: true,},emphasis: {show: true,},},emphasis: {scale: true,itemStyle: {areaColor: '#fff',},},symbolSize: function (val) {return val[2] / 15},showEffectOn: 'render',itemStyle: {areaColor: '#2043AA',borderColor: '#111',color: '#fff',},zlevel: 1,data: [{name: '北京',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '天津',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '上海',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{name: '重庆',value: Math.round(Math.random() * 100),warn: 10,problem: 12,},{ name: '河北', value: Math.round(Math.random() * 100) },{ name: '河南', value: Math.round(Math.random() * 100) },{ name: '云南', value: Math.round(Math.random() * 100) },{ name: '辽宁', value: Math.round(Math.random() * 100) },{ name: '黑龙江', value: Math.round(Math.random() * 100) },{ name: '湖南', value: Math.round(Math.random() * 100) },{ name: '安徽', value: Math.round(Math.random() * 100) },{ name: '山东', value: Math.round(Math.random() * 100) },{ name: '新疆', value: Math.round(Math.random() * 100) },{ name: '江苏', value: Math.round(Math.random() * 100) },{ name: '浙江', value: Math.round(Math.random() * 100) },{ name: '江西', value: Math.round(Math.random() * 100) },{ name: '湖北', value: Math.round(Math.random() * 100) },{ name: '广西', value: Math.round(Math.random() * 100) },{ name: '甘肃', value: Math.round(Math.random() * 100) },{ name: '山西', value: Math.round(Math.random() * 100) },{ name: '内蒙古', value: Math.round(Math.random() * 100) },{ name: '陕西', value: Math.round(Math.random() * 100) },{ name: '吉林', value: Math.round(Math.random() * 100) },{ name: '福建', value: Math.round(Math.random() * 100) },{ name: '贵州', value: Math.round(Math.random() * 100) },{ name: '广东', value: Math.round(Math.random() * 100) },{ name: '青海', value: Math.round(Math.random() * 100) },{ name: '西藏', value: Math.round(Math.random() * 100) },{ name: '四川', value: Math.round(Math.random() * 100) },{ name: '宁夏', value: Math.round(Math.random() * 100) },{ name: '海南', value: Math.round(Math.random() * 100) },// {name: '台湾',value: Math.round(Math.random()*100)},{ name: '香港', value: Math.round(Math.random() * 100) },{ name: '澳门', value: Math.round(Math.random() * 100) },],},],}echarts.registerMap('china', data) // 注册china.json的数据到初始化的echarts对象myChart.setOption(option) // 绑定地图的配置参数对象,参考第二步myChart.resize()}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>


http://www.ppmy.cn/ops/137825.html

相关文章

金融智能化的明日之星:量化交易模型的演化与发展

量化交易模型作为金融领域中的重要创新手段&#xff0c;已经从传统交易方式中脱颖而出&#xff0c;成为数据与算法驱动金融决策的核心工具。从简单的技术分析到复杂的多因子模型&#xff0c;再到融合人工智能与大数据的智能交易系统&#xff0c;量化模型的探索与发展推动了金融…

Java基于SSM框架的校园综合服务小程序【附源码、文档】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

Opencv+ROS实现摄像头读取处理画面信息

一、工具 ubuntu18.04 ROSopencv2 编译器&#xff1a;Visual Studio Code 二、原理 图像信息 ROS数据形式&#xff1a;sensor_msgs::Image OpenCV数据形式&#xff1a;cv:Mat 通过cv_bridge()函数进行ROS向opencv转换 cv_bridge是在ROS图像消息和OpenCV图像之间进行转…

【python】摄像头调用马赛克恶搞

摄像头调用 代码展示安装库代码解释实时视频画面添加马赛克效果 使用python调用电脑摄像头 代码展示 import cv2 cap cv2.VideoCapture(0) while(cap.isOpened()):retval, frame cap.read()cv2.imshow(Live, frame)if cv2.waitKey(5) > 0:break shao安装库 这个代码引用…

Redis笔记

Redis笔记 前言 Redis概述 Redis介绍 应用场景 相关技术 Redis数据类型 Redis字符串(String) 概述 数据结构 Redis列表&#xff08;List) 概述 数据结构 Redis集合&#xff08;Set&#xff09; 概述 数据结构 Redis哈希&#xff08;Hash&#xff09; 概述 数…

【论文速读】| 人工智能驱动的网络威胁情报自动化

基本信息 原文标题&#xff1a;AI-Driven Cyber Threat Intelligence Automation 原文作者&#xff1a;Shrit Shah, Fatemeh Khoda Parast 作者单位&#xff1a;加拿大圭尔夫大学计算机科学学院 关键词&#xff1a;网络威胁情报&#xff0c;AI自动化&#xff0c;攻击技术和…

UE5安装教程及设置

学习链接&#xff1a;01-安装UE5及设置_哔哩哔哩_bilibili

《C++搭建神经网络基石:开启智能编程新征程》

在人工智能的璀璨星空中&#xff0c;神经网络无疑是最为耀眼的星座之一。而 C以其卓越的性能和高效的执行效率&#xff0c;成为构建神经网络模型的有力武器。今天&#xff0c;就让我们一同探索如何使用 C构建一个基础的神经网络模型&#xff0c;踏上智能编程的奇妙旅程。 一、…