vue3+echarts+DataV实现省市县地图

server/2025/1/19 18:52:08/

地图json数据从这里下面
DataV.GeoAtlas地理小工具系列

1.效果图

2.html

<div class="map"><div style="width: 750px;height: 584px;" id="myMap"></div></div>

3.javaScript

javascript"><script setup lang="ts">
import * as echarts from 'echarts';
import huanggang from '@/assets/map/json/huanggang.json';
let mapOption = {geo: {// 地图类型,指定使用的地图map: "huanggang",// roam: true,zoom: 1.21, //地图放大// 地图区域标签的样式配置label: {// 通常状态下的样式// show: true, // 显示标签color: "#ffffff", // 标签文本颜色为白色},// 地图区域的样式设置itemStyle: {// 区域边界的颜色和宽度borderColor: "rgba(147, 235, 248)",borderWidth: 1,// 区域颜色设置为径向渐变areaColor: {type: "radial", // 渐变类型为径向渐变x: 0.5, // 渐变的 x 坐标(相对于区域)y: 0.5, // 渐变的 y 坐标(相对于区域)r: 0.8, // 渐变的半径colorStops: [{offset: 0,color: "rgba(64, 143, 240)", // 0% 位置的颜色(透明)},{offset: 1,color: "rgba(94, 168, 248)", // 100% 位置的颜色},],globalCoord: false, // 是否使用全局坐标系统(默认 false)},// 阴影设置shadowColor: "rgba(128, 217, 248, 1)", // 阴影颜色shadowOffsetX: -2, // 阴影在 x 轴的偏移shadowOffsetY: 2, // 阴影在 y 轴的偏移shadowBlur: 10, // 阴影模糊半径},emphasis: {itemStyle: {areaColor: '',color:'#fff'},label: {show: true,color: 'white'}}},};
const initChartMap = () => {let that = this// 基于准备好的dom,初始化echarts实例let myMapChart = echarts.init(document.getElementById('myMap'))echarts.registerMap('huanggang', huanggang as any)myMapChart.setOption(mapOption);getMapData({ cityId: 16031 }).then((res: any) => {const option = {series: [{type: "effectScatter",name: "散点",coordinateSystem: "geo",data: res.data,effectType: 'ripple',rippleEffect: { //设置涟漪特效 period: 0, //设置动画的时间,数字越小,动画越快 scale: 4, //设置动画中波纹的最大缩放比例 brushType: 'stroke', //设置波纹的绘制方式,可选'stroke'和'fill' },itemStyle: {color: '#e1d02b', shadowBlur: 10, // 设置散点的阴影模糊大小shadowColor: '#e1d02b', // 设置散点阴影的颜色为深灰色},symbol: 'image://' + icon1,emphasis: {scale: true, // 鼠标悬停时缩放图片symbol: 'image://' + icon2, // 悬停时替换的图片symbolSize: 10 // 悬停时的图片大小},symbolSize: 25, // 设置所有散点的大小为 10label: {show: false, // 默认不显示标签},hoverAnimation: true,}],// 为散点添加tooltip的显示内容,这里假设数据中的name属性为要显示的名称tooltip: {show: true, // 始终启用 Tooltip,但无内容时不显示trigger: "item",position:'top',formatter: function (params:any) {// 显示散点的名称作为提示信息if (params.seriesType == "effectScatter" && params.data) {return `${params.name}`;}else{return "";}},backgroundColor: "rgba(50, 50, 50, 0.8)", // Tooltip 背景色borderWidth: 0,textStyle: {color: "#fff", // Tooltip 文本颜色},},};// 地图注册,第一个参数的名字必须和option.geo.map一致myMapChart.setOption(option);})}
</script>


http://www.ppmy.cn/server/159688.html

相关文章

element表格滚动错位问题,使用uniapp写的项目

element表格设置滚动条滚动到底错位_element表格滚动条无法滚动到最后-CSDN博客 参考上面的博主写的 ::v-deep ::-webkit-scrollbar {display: block !important;width: 8px !important;height: 8px !important;background: rgb(241, 241, 241) !important;-webkit-appearance…

Golang——常用库sync

本文详细介绍Golang的常用库sync&#xff0c;提供了一系列工具来处理 并发编程 中的同步问题。 文章目录 sync1. sync.Mutex - 互斥锁2. sync.RWMutex - 读写锁3. sync.WaitGroup - 等待组4. sync.Once - 单次执行5. sync.Cond - 条件变量6. sync.Pool - 对象复用池7. sync.Map…

WebSocket——推送方案选型

一、前言&#xff1a;为何需要服务端主动推送&#xff1f; 在现代应用中&#xff0c;很多功能都依赖于“消息推送”。比如&#xff1a; 小红点提醒&#xff1a;我们经常在手机应用里看到的一个小红点提示&#xff0c;表示有新的消息或任务需要我们关注。新消息提醒&#xff1…

Redis系列之底层数据结构整数集IntSet

Redis系列之底层数据结构整数集IntSet 什么是IntSet IntSet&#xff0c;整数集合&#xff0c;是Redis集合类型的一种底层数据结构&#xff0c;当一个集合只包含整数值元素&#xff0c;并且这个集合的元素数量不多时&#xff0c;redis就会选用intset作为底层实现。 IntSet的数…

Redisson分布式锁的原理和实践?

目录 Redisson分布式锁的原理和实践? 一、Redisson分布式锁的原理 二、Redisson分布式锁的实践 Redisson通过看门狗(Watchdog)定时任务自动续锁原理 一、看门狗机制的核心作用 二、看门狗机制的实现原理 三、看门狗机制的使用场景 四、注意事项 Redisson分布式锁的原…

SpringBoot+Vue的前后端分离项目完成跨域资源共享

在SpringBootVue的前后端分离项目中&#xff0c;实现跨域资源共享&#xff08;CORS&#xff09;是开发过程中的一个重要环节。以下是一些常见且有效的方法来解决跨域问题&#xff1a; 一、CORS&#xff08;跨源资源共享&#xff09;简介 CORS定义了一种浏览器和服务器交互的方…

vue3+ts+uniapp 微信小程序(第一篇)—— 微信小程序定位授权,位置信息权限授权

文章目录 简介一、先看效果1.1 授权定位前&#xff0c;先弹出隐私协议弹框1.2 上述弹框点击同意&#xff0c;得到如下弹框1.3 点击三个点&#xff0c;然后点设置 1.4 在1.2步骤下&#xff0c;无论同意或者拒绝 二、manifest.json 文件配置三、微信公众平台配置3.1 登录进入微信…

npm的包管理

从哪里下载包 国外有一家 IT 公司&#xff0c;叫做 npm,Inc.这家公司旗下有一个非常著名的网站: https://www.npmjs.com/&#xff0c;它是全球最大的包共享平台&#xff0c;你可以从这个网站上搜索到任何你需要的包&#xff0c;只要你有足够的耐心!到目前位置&#xff0c;全球约…