首页 > 其他分享 >Echarts5之地图实现

Echarts5之地图实现

时间:2024-07-14 20:08:28浏览次数:9  
标签:name show 实现 true 地图 Echarts5 import type echarts

示例图

效果图

说明

去除内置的geoJSON

依赖目录【左v5右v4】

说明文件

实现

<template>
    <div id="bmap" ref="canvas" class="canvas" :style="{width: '100%', height: canHeight+'px'}"></div>
</template>
<script setup lang="ts">
import { defineProps, computed, onMounted } from 'vue'
import { createPinia } from 'pinia'
import china from '@/components/maps/map/json/china.json'
import * as echarts from 'echarts/core';
import {
  TooltipComponent,
  type TooltipComponentOption,
  GeoComponent,
  type GeoComponentOption,
  LegendComponent,
  type LegendComponentOption,
  VisualMapComponent,
  type VisualMapComponentOption,
  GridComponent, 
  type GridComponentOption,
  MarkPointComponent,
  type MarkPointComponentOption,
  TitleComponent,
  type TitleComponentOption
} from 'echarts/components';
import { LabelLayout } from 'echarts/features';
import { CanvasRenderer } from 'echarts/renderers';
import { MapChart, type MapSeriesOption } from 'echarts/charts';
import { useChartsStore } from '@/stores/charts';
const pinia = createPinia();
const chartStore = useChartsStore(pinia)
echarts.use([
  TooltipComponent,
  GeoComponent,
  LegendComponent,
  CanvasRenderer,
  LabelLayout,
  VisualMapComponent,
  MapChart,
  GridComponent,
  MarkPointComponent,
  LegendComponent,
  TitleComponent
]);

type EChartsOption = echarts.ComposeOption<
  | TooltipComponentOption
  | GeoComponentOption
  | LegendComponentOption
  | VisualMapComponentOption
  | MapSeriesOption
  | GridComponentOption
  | MarkPointComponentOption
  | LegendComponentOption
  | TitleComponentOption
>;
const props = defineProps({
    canvasHeight: {
        type:Number,
        default: 300
    },
    data: {
        type: Object,
        default: () => { } 
    }
})
let canHeight = computed(() => { return props.canvasHeight })
onMounted(() => {
    echarts.registerMap('china', china);
    var chartDom = document.getElementById('bmap')!;
    var myChart = echarts.init(chartDom);
    var option: EChartsOption;

    option = {
        title: {show: true, name: "中国地图"},
        color: chartStore.colors,
        grid: { show: true, left: "0", right: "0", bottom: "0", top: "0", borderColor: "transparent" },
        geo: {
            show: true,
            map: 'china',
            roam: true,
            zoom: 1.2,
            nameMap: {'China' : '中国'},
            label: { show: true, color: '#ffffff'},
            itemStyle: {
                areaColor: '#1764E8',
                borderColor: '#fefefe',
                borderWidth: 2,
                borderType: 'dashed'
            },
            emphasis: {
                disabled: false,
                label: { show: true, color: '#ffffff', fontSize: 20,},
                itemStyle: {
                    areaColor: '#0e3c8b',
                    borderColor: '#2e74ea',
                    borderWidth: 4,
                    borderType: 'soild'
                },
            },
            select: {
                disabled: false,
                label: { show: true, color: '#000000', fontSize: 24},
                itemStyle: {
                    areaColor: '#5d93ef',
                    borderColor: '#2e74ea',
                    borderWidth: 4,
                    borderType: 'soild'
                },
            },
            
            left: '10%',
            top: '10%',
        },
        tooltip: {
            show: true,
            position: 'right',
            formatter: (param, index) => {
                return param.value ?  [param.name+":", param.value].join('\n') : null
            },
            backgroundColor: '#a2c1f6',
            borderColor: '#0e3c8b',
            borderWidth: 2,
            textStyle: { 
                color: 'blue',
                fontSize: 18,
                fontWeight: 600
            }
        },
        series: [
            {
                type: 'map',
                map: 'china', // 指定为苏州地图
                geoIndex: 0,
                selectedMode: 'multiple',
                data: [
                    { name: "黑龙江", value: 1000, selected: true,},
                    { name: "北京", value: 120, selected: true,},
                    { name: "广东", value: 100, selected: true,},
                    { name: "上海", value: 150, selected: true,},
                ],
            }
        ]
    };

    option && myChart.setOption(option);
})
</script>
<style scope></style>

标签:name,show,实现,true,地图,Echarts5,import,type,echarts
From: https://www.cnblogs.com/min77/p/18301929

相关文章

  • 线性插值法的MATLAB实现——对股票非交易日缺失数据进行插值
    1.为什么要处理非交易日股票缺失数据  由于在计算无风险利率时,常常使用国债利率,但国债利率按360天计息,因此股票收益率需要和债券计息相匹配,所以需要对股票缺失数据进行插值。2.为什么使用线性插值法  当数据点之间距离很短时,就可以近似认为两点间可以用直线连接。类......
  • usbip-server,Windows使用WSL实现usb设备的远程接入ubuntu
    一.写在前面    本篇内容参考微软写的WSL教程,整理了在实现项目的过程中遇到的问题和解决方案,希望可以帮到大家,原文链接连接USB设备|MicrosoftLearn二.目标    使用开源项目usbip-win,将在windows上接入的usb设备连接到在WSL上运行的linux发行版三.先决......
  • C语言实现扫雷游戏
    目录一、引言二、游戏规则三、设计思路 1.游戏概述2.数据结构设计3.游戏流程设计4.功能模块划分5.主要算法设计四、游戏设计 1.菜单函数2.主函数3.选择难度函数 4.初始化函数5.布置地雷函数  6.打印函数7.计算雷数函数 8.递归排雷函数9.标记(删除......
  • [Unity] Dreamteck Splines实现沿路径移动功能
    DreamteckSplines实现沿路径移动功能最近有一个“让物体沿固定路径移动”的需求,因此接触到了DreamteckSplines插件。DreamteckSplines可以很方便地绘制各种插值曲线,但在实现物体移动的时候却遇到了很多坑,因此在这里记录一下。1.绘制路径线首先,让我们在场景上创建一个空物......
  • springboot“爱相连”儿童慈善管理系统的设计与实现
    #系统介绍随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而信息管理系统是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促进了“爱相连”儿童慈善管理的发展。然而,由于用户量和需求......
  • springboot 基于uni-app的蛋糕订购小程序的设计与实现
     #系统介绍相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低商家的运营人员成本,实现了蛋糕订购的标准化、制度化、程序化的管理,有效地防止了蛋糕订购的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正蛋糕信息、购物车、订单等信息。课题主要采......
  • Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
    1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源@目录1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源1.1SpringMVC视图支持可配置1.2SpringMVC支持的常见视图1.3实现视图机制的核心接口1.4实现视图机制......
  • Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
    1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源文章目录1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源1.1SpringMVC视图支持可配置1.2SpringMVC支持的常见视图1.3实现视图机制的核心接口1.4......
  • springboot“爱相连”儿童慈善管理系统的设计与实现
    系统介绍随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而信息管理系统是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促进了“爱相连”儿童慈善管理的发展。然而,由于用户量和需求......
  • springboot 基于uni-app的蛋糕订购小程序的设计与实现
    #系统介绍相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低商家的运营人员成本,实现了蛋糕订购的标准化、制度化、程序化的管理,有效地防止了蛋糕订购的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正蛋糕信息、购物车、订单等信息。课题主要采用......