37-实现地图配置项(完结)

下面我们实现一下下面的效果

首先我们在 pie-map.json 里面添加地图销售数据

json 复制代码
"saleMap": [
        {
            "areaName": "北京市",
            "saleNum": 1250000
        },
        {
            "areaName": "天津市",
            "saleNum": 88500
        },
        {
            "areaName": "河北省",
            "saleNum": 11200
        },
        {
            "areaName": "山西省",
            "saleNum": 37200
        },
        {
            "areaName": "内蒙古自治区",
            "saleNum": 506800
        },
        {
            "areaName": "辽宁省",
            "saleNum": 19800
        },
        {
            "areaName": "吉林省",
            "saleNum": 26500
        },
        {
            "areaName": "黑龙江省",
            "saleNum": 37800
        },
        {
            "areaName": "上海市",
            "saleNum": 1520000
        },
        {
            "areaName": "江苏省",
            "saleNum": 713800
        },
        {
            "areaName": "浙江省",
            "saleNum": 1320000
        },
        {
            "areaName": "安徽省",
            "saleNum": 99200
        },
        {
            "areaName": "福建省",
            "saleNum": 1050000
        },
        {
            "areaName": "江西省",
            "saleNum": 197500
        },
        {
            "areaName": "山东省",
            "saleNum": 12800
        },
        {
            "areaName": "河南省",
            "saleNum": 11800
        },
        {
            "areaName": "湖北省",
            "saleNum": 680000
        },
        {
            "areaName": "湖南省",
            "saleNum": 313313313
        },
        {
            "areaName": "广东省",
            "saleNum": 1450000
        },
        {
            "areaName": "广西壮族自治区",
            "saleNum": 708800
        },
        {
            "areaName": "海南省",
            "saleNum": 58000
        },
        {
            "areaName": "重庆市",
            "saleNum": 919500
        },
        {
            "areaName": "四川省",
            "saleNum": 11500
        },
        {
            "areaName": "贵州省",
            "saleNum": 786800
        },
        {
            "areaName": "云南省",
            "saleNum": 98200
        },
        {
            "areaName": "西藏自治区",
            "saleNum": 603200
        },
        {
            "areaName": "陕西省",
            "saleNum": 890000
        },
        {
            "areaName": "甘肃省",
            "saleNum": 862000
        },
        {
            "areaName": "青海省",
            "saleNum": 433800
        },
        {
            "areaName": "宁夏回族自治区",
            "saleNum": 564200
        },
        {
            "areaName": "新疆维吾尔自治区",
            "saleNum": 7200
        },
        {
            "areaName": "台湾省",
            "saleNum": 129800
        },
        {
            "areaName": "香港特别行政区",
            "saleNum": 6800
        },
        {
            "areaName": "澳门特别行政区",
            "saleNum": 32800
        },
        {
            "areaName": "南海诸岛",
            "saleNum": 280000
        }
    ]

页面配置

html 复制代码
<template>
    <div id="map" style="width: 100%;height:700px;"></div>
</template>

<script lang='ts' setup>
import { watch } from 'vue'
import * as echarts from 'echarts'
import chinaGeojson from '@/mock/data/china.geojson.json'
// ECharts 提供的 API,用于注册地图数据
// 注册后,在 ECharts 的 option 中设置 map: 'china' 即可显示中国地图。
echarts.registerMap('china', chinaGeojson as any)

const props = defineProps<{
    data: {
        areaName: string
        saleNum: number
    }[]
}>()
let myMap: echarts.ECharts;

watch(() => props.data, () => {
    const data = props.data.map(item => ({ name: item.areaName, value: item.saleNum }))
    console.log('data----->', data)
    // 基于准备好的dom,初始化echarts实例
    if(!myMap) {
        myMap = echarts.init(document.getElementById('map'));
        const option = {
            tooltip: {
                show: true,
                formatter: '{b}<br />销量:{c}',
                borderWidth: 0,
                backgroundColor: 'rgba(50, 50, 50, 0.7)',
                textStyle: {
                    color: '#fff'
                }
            },
            series: {
                type: 'map',
                map: 'china',
                itemStyle: {
                    borderColor: '#fff'
                },
                emphasis: {
                    label: {
                        show: false
                    },
                    itemStyle: {
                        areaColor: 'skyblue'
                    }
                },
                data
            },
            // 连续型视觉映射组件
            visualMap: {
                type: 'continuous',
                min: 0,
                max: 1000000,
                calculable: true, // 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)
                inRange: {
                    color: ['#eeeeee', '#aaaaaa', 'green', 'yellow', 'orange', 'red']
                }
            }
        }
        myMap.setOption(option);
    }
})
</script>

<style lang='less' scoped>

</style>
相关推荐
我才是银古2 天前
当 360° 全景遇上真实地图:Vue 3 实现全景-地图双向联动的工程实践
3d·vue3·360影像
张人玉3 天前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
XLYcmy3 天前
HTML/CSS/JS 基础与 Vue 技术栈深度解析
java·前端·css·html·vue3·vue2·api
张人玉4 天前
基于 Python + PyQt5 的水果目标检测与分割可视化系统——水果深度学习识别可视化大屏
python·深度学习·qt·目标检测·sqlite·echarts
paopaokaka_luck5 天前
基于springboot3+vue3+uniapp的河南非遗数字图谱小程序(协同过滤算法、数字图谱展示、ECharts 图形化分析)
java·前端·spring boot·学习·小程序·uni-app·echarts
码视野6 天前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
码视野6 天前
基于 Spring Boot + Vue3 的【高校化学实验室安全准入考试与危化品配伍排查系统】设计与实现(含PRD/三端高保真源码/大屏)
前端·人工智能·spring boot·后端·安全·vue3
fxshy6 天前
WebGIS 游戏化实践:基于 Cesium + Vue3 实现全球飞行模拟系统:从球体坐标、飞行动力学到地形碰撞实战
游戏·vue3·cesium·webgis·飞行模拟
jonyleek7 天前
技术实践:基于 Vue3 + Spring Cloud 微服务实现私有化文档系统的类 SaaS 协同体验
微服务·私有化部署·vue3·springcloud·协同编辑·jvs企业文档·无忧企业文档