手把手教你 Vue3 + vite + Echarts 5 +TS 绘制中国地图,看完就会

废话不多说,看图!

本篇文章介绍 Vue3 + vite +TS 项目内使用 Echarts 5 绘制中国地图,标记分布点!之前没有接触过 Echarts 的,可以先去官方示例看看,里面图形特别齐全。但是官方文档看着费劲的,太多了根本记不住,所以自己做个总结,下次就可以直接使用了,不用做重复无用功。

一、安装 Echarts

npm install echarts --save

安装完成之后,在 package.json 中检查是否安装成功?

二、下载地图的 json 数据

可以下载中国以及各个省份地图数据。免费的文件下载地址:

http://datav.aliyun.com/portal/school/atlas/area_selector#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5

三、引入

引入 echarts 可以全局引入:

import * as echarts from "echarts"


/* vue3 */
app.config.globalProperties.$echarts = echarts

也可以直接在绘制页面内按需引用。

引入需要绘制的地图数据 json 或 js 文件,本文使用的是 json 格式:

import chinaJSON from '../../assets/json/china.json'

注意:引入的时候先引入 echarts ,后引入 chinaJSON 文件,顺序不能反哦!

四、开始绘制地图

template 部分代码:

<template>
 <div>
  <div
   ref="chinaMap"
   style="height: 700px;border: solid 1px red;width: 100%;background: #010111;"
    >
   地图1
  </div>
 </div>
</template>

script 部分代码:

<script lang="ts" setup>
import * as echarts from 'echarts'
import chinaJSON from '../../assets/json/china.json'
import { onMounted, ref } from 'vue'
const chinaMap = ref()
onMounted(() => {
 drawChina()
})
let regions = [
 {
  name: '新疆维吾尔自治区',
  itemStyle: {
   areaColor: '#374ba4',
   opacity: 1,
  },
 },
 {
  name: '四川省',
  itemStyle: {
   areaColor: '#fe9b45',
   opacity: 1,
  },
 },
 {
  name: '陕西省',
  itemStyle: {
   areaColor: '#fd691b',
   opacity: 1,
  },
 },
 {
  name: '黑龙江省',
  itemStyle: {
   areaColor: '#ffc556',
   opacity: 1,
  },
 },
]
let scatter = [
 { name: '北京烤鸭', value: [116.46122, 39.97886, 9] },
 { name: '兰州拉面', value: [103.86615, 36.040129, 9] },
 { name: '新疆烤肉', value: [87.613228, 43.810394, 9] },
 { name: '长沙臭豆腐', value: [112.915204, 28.207735, 9] },
 { name: '西安肉夹馍', value: [108.953445, 34.288842, 9] },
 { name: '云南', value: [102.710002, 25.045806, 9] },
]
function drawChina() {
 var myChart = echarts.init(chinaMap.value)
 echarts.registerMap('china', chinaJSON) //注册可用的地图
 var option = {
  geo: {
   map: 'china',
   roam: true, //是否允许缩放,拖拽
   zoom: 1, //初始化大小
   //缩放大小限制
   scaleLimit: {
    min: 1, //最小
     max: 2, //最大
    },
    //设置中心点
    center: [115.97, 29.71],
    //省份地图添加背景
    regions: regions,
    itemStyle: {
     areaColor: '#0b122e',
     color: 'red',
     borderColor: '#232652',
     borderWidth: 2,
   },
   //高亮状态
   emphasis: {
     itemStyle: {
     areaColor: '#1af9e5',
      color: '#fff',
     },
    },
  },
  //配置属性
  series: {
   type: 'effectScatter',
   coordinateSystem: 'geo',
   data: scatter, 
   showEffectOn: 'render',
    rippleEffect: {
     //涟漪特效相关配置
     brushType: 'stroke', //波纹的绘制方式,可选 'stroke' 和 'fill'
       },
    hoverAnimation: true, //是否开启鼠标 hover 的提示动画效果
    label: {
     //图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等,
     normal: {
      formatter: '{b}',
      position: 'right',
      show: true,
     },
    },
    itemStyle: {
    //图形样式,normal 是图形在默认状态下的样式;emphasis 是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时
     normal: {
      color: '#ffffff', //散点的颜色
      shadowBlur: 10,
      shadowColor: 20,
      fontSize: '12px',
     },
    },
    zlevel: 1,
   },
 }
 myChart.setOption(option)
}
</script>

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3 + TypeScript + Vite项目中使用echarts来请求并展示两个图表的数据,你可以按照以下步骤进行操作: 1. 在项目中安装echarts依赖。可以使用npm或yarn命令来安装echarts,例如:`npm install echarts --save`。 2. 在main.ts文件中引入echarts,并将其挂载到Vue实例上。你可以按照以下代码示例来实现: ```typescript import { createApp } from "vue"; import App from "./App.vue"; import echarts from "echarts"; const app = createApp(App); app.config.globalProperties.$echarts = echarts; ``` 通过以上代码,你已经将echarts挂载到了Vue实例的全局属性$echarts上。 3. 在需要使用echarts的组件中引入echarts,并在页面渲染成后使用echarts来请求并展示图表数据。假设你要在App.vue组件中展示两个图表的数据,你可以按照以下代码示例来实现: ```vue <template> <div> <div ref="chart1" style="width: 400px; height: 300px;"></div> <div ref="chart2" style="width: 400px; height: 300px;"></div> </div> </template> <script> import { ref, onMounted } from "vue"; export default { name: "App", setup() { const chart1 = ref(null); const chart2 = ref(null); onMounted(() => { // 请求图表1的数据绘制图表 const chart1Data = fetchDataForChart1(); // 根据实际情况获取图表1的数据 const chart1Instance = $echarts.init(chart1.value); chart1Instance.setOption(chart1Data); // 请求图表2的数据绘制图表 const chart2Data = fetchDataForChart2(); // 根据实际情况获取图表2的数据 const chart2Instance = $echarts.init(chart2.value); chart2Instance.setOption(chart2Data); }); return { chart1, chart2, }; }, }; function fetchDataForChart1() { // 根据实际情况请求图表1的数据并返回 // 例如:return axios.get("/api/chart1").then((res) => res.data); } function fetchDataForChart2() { // 根据实际情况请求图表2的数据并返回 // 例如:return axios.get("/api/chart2").then((res) => res.data); } </script> ``` 在以上代码中,我们使用了`ref`和`onMounted`来获取图表的DOM元素,并在页面渲染成后使用echarts来请求并展示图表数据。 请注意,以上代码仅为示例代码,你需要根据实际情况来实现`fetchDataForChart1`和`fetchDataForChart2`方法来请求图表数据。此外,你还需要根据实际需求来配置echarts的图表选项。 #### 引用[.reference_title] - *1* *2* [vue3+ts+vite 使用echarts](https://blog.csdn.net/gusensen/article/details/129445665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue3+vite+ts+echarts项目问题汇总](https://blog.csdn.net/weixin_41107170/article/details/126401617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大可-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值