uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名

项目场景:

uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名

例如:
在这里插入图片描述


问题描述

官方给的文档有限,需要自己下载地图json数据然后自己渲染和编写鼠标悬浮显示内容以及获取点击地址名称,官方只给了@getIndex事件获取下标
官方地址:https://www.ucharts.cn/v2/#/guide/index
在这里插入图片描述


解决方案:

第一步引用:

既然用的uniapp,那么在插件市场直接下载导入ucharts组件
地址:https://ext.dcloud.net.cn/plugin?id=271

第二步使用:

<view class="charts-box" style="height: 520px;padding-top: 30px;"><qiun-data-charts type="map" tooltipFormat="tooltipFun" canvasId="mapma":opts="{extra:{map:{mercator:true,fillOpacity:1,TextColor:'#000'}}}":chartData="chartsDataMap" @getIndex="getIndex" />
</view>

tooltipFormat是悬浮提示显示内容
getIndex是点击事件

在script 里引入

import mapdata from '@/mockdata/mapdata.json'   //这是组件里给的地图数据
import uCharts from '@/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js' //在uniapp 插件库下载下来就是这个路径 可以自己改

data数据里写入

//地图数据chartsDataMap: {series: []},// 覆盖的是 optionconfig: {extra: {map: {mercator: true}}},

created里写入

created() {uCharts.map = {"type": "map","canvasId": "","canvas2d": false,"background": "none","animation": true,"timing": "easeOut","duration": 1000,// "color": ['#ff4455'],"padding": [0,0,0,0],"fontSize": 8,"rotate": false,"errorReload": true,"fontSize": 8,"fontColor": "#666666","enableScroll": false,"touchMoveLimit": 60,"enableMarkLine": false,"dataLabel": true,"dataPointShape": true,"dataPointShapeType": "solid","tapLegend": true,"extra": {"map": {"border": true,"mercator": false,"borderWidth": 1,"borderColor": "#666666","fillOpacity": 0.6,"activeBorderColor": "#55aa00",// "activeFillColor": "#FF0033", //设置 鼠标 悬停 地图展示的背景颜色"activeFillOpacity": 1},"tooltip": {"showBox": true,"showArrow": true,"showCategory": false,"borderWidth": 0,"borderRadius": 0,"borderColor": "#000000","borderOpacity": 0.7,"bgColor": "#000000","bgOpacity": 0.7,"gridType": "solid","dashLength": 4,"gridColor": "#CCCCCC","fontColor": "#FFFFFF","splitLine": true,"horizentalLine": false,"xAxisLabel": false,"yAxisLabel": false,"labelBgColor": "#FFFFFF","labelBgOpacity": 0.7,"labelFontColor": "#666666"}}}//模拟从服务器获取数据this.getServerDatas()//自定义格式化Tooltip显示内容   悬浮显示的内容   return `${item.name}地区:${item.data.amount}` 这里可以根据后端给的数据取自己需要的字段名称即可uCharts.formatter.tooltipFun = (item, category, index, opts) => {// console.log(item, index, "=item, category, index, opts=")return `${item.name}地区:${item.data.amount}`}},

methods里写入

methods: {//e.currentIndex是获取的下标名称   e.opts.series[e.currentIndex].data.regionProvince) 是根据下标定位到咱们数据里的下标里的对应地址名称即可,这样就可以直接获取到地址名称了getIndex(e) {console.log('1111', e.currentIndex,e.opts.series[e.currentIndex].data.regionProvince)},//地图getServerDatas() {uni.request({url: 'http://192.168.68.6:10896/api/ScreenStatistics/GetTotalDataByProvince', //仅为示例,并非真实接口地址。headers: {'Content-Type': 'application/json'},credentials: 'include', // 允许发送和接收 cookiesuccess: (res) => {// console.log(res.data.data, '1111');let mapseries = mapdata.features.map((item) => {//根据接口数据查找到当前匹配的数据,我的数据是res.data.data,所以根据这个里面的地址字段名regionProvince 来匹配json数据里的地址名称对应,amount是我要悬浮时显示的数量,可以自己需要啥加啥,看自己需要let dataItem = res.data.data.find((x) => x.regionProvince == item.properties.name) || {amount: 0, //数量storeName: item.properties.name, //地区}//添加到 json data中item.data = dataItem//设置颜色return item})this.chartsDataMap.series = mapseries}});},}

这样就完成了地图里我需要的功能
自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go语言day08 泛型 自定义错误处理 go关键字:协程

泛型&#xff1a; 抛错误异常 实现error接口类型 用java语言解释的话&#xff0c;实现类需要重写error类型的抽象方法Error().这样就可以自定义异常处理。 回到go语言&#xff0c;在Error()方法中用*argError 这样一个指针类来充当error接口的实现类。 在f2()方法中定义返回值…

荣耀电脑误删U盘文件?别慌,这里有找回方法

荣耀电脑误删U盘文件怎么找回&#xff1f;在日常工作和生活中&#xff0c;U盘是我们存储和传输数据的重要工具之一。然而&#xff0c;在使用荣耀电脑时&#xff0c;如果不小心误删了U盘中的文件&#xff0c;可能会给我们带来不小的困扰。但是&#xff0c;别慌&#xff01;本文将…

免费的才是王道,有哪些业务类、合同类的管理系统能够让我们受益终身?

看了题主提问&#xff0c;深感当今中小企业生存环境的艰辛。一方面是现在的智能生活软件有了很深的普及和使用习惯&#xff0c;另外一个是行业竞争压力越来越大不变不行。 但是生存不易&#xff0c;且行且珍惜&#xff0c;每一份钱都要用在刀刃上&#xff0c;各种预算一再压缩…

CDC实时同步进行时遇到不可抗力中断了怎么办?

目录 一、CDC技术的概念 二、CDC技术的应用场景 1.数据复制和同步 2.实时数据仓库 3.业务过程监控和审计 4.ETL 进程优化 三、CDC与数据管道的关系 1.区别 CDC&#xff08;Change Data Capture&#xff09; 数据管道&#xff08;Data Pipeline&#xff09; 2.联系 CDC是数据管道…

《Linux开发笔记》C语言编译

C语言编译过程 编译过程主要分为四步&#xff1a;预处理、编译、汇编、链接 预处理&#xff1a;主要用于查找头文件、展开宏 编译&#xff1a;把.i文件编译成.s文件 汇编&#xff1a;把.s文件汇编为.o文件 链接&#xff1a;把多个.o文件链接成一个app 以上四个步骤主要由3个命…

JavaScript基础知识5(对象)

JavaScript基础知识5&#xff08;对象&#xff09; 对象创建对象使用对象字面量使用 new Object() 访问和修改属性点表示法方括号表示法 动态添加和删除属性添加属性删除属性 对象方法对象的遍历常用属性和方法数学常量数学函数三角函数 使用示例生成随机整数计算圆的面积求最大…

QStringListModel 绑定到QListView

1.QStringListModel 绑定到listView&#xff0c;从而实现MV模型视图 2.通过QStringListModel的新增、删除、插入、上下移动&#xff0c;listView来展示出来 3.下移动一行&#xff0c;传入curRow2 的个人理解 布局 .h声明 private:QStringList m_strList;QStringListModel *m_m…

Matlab|基于改进鲸鱼优化算法的微网系统能量优化管理matlab-源码

目录 一、主要内容 二、部分代码 三、运行结果 四、下载链接 一、主要内容 该程序为《基于改进鲸鱼优化算法的微网系统能量优化管理》源码&#xff0c;主要内容如下&#xff1a; 针对包含多种可再生能源的冷热电联供型微网系统的能量优化问题&#xff0c;为了优化其运行过程…

中级职称如何查询真假呢?

关于中级职称如何查询真假&#xff0c;大家都会有疑问&#xff0c;办到职称的人员肯定是想查一查手里的证书&#xff0c;那么没有证书的人员也想了解一下&#xff0c;今天甘建二告诉大家几个通俗的职称查询方式&#xff1a; 1.电话查询&#xff08;以前办理职称是这种查询方式…

20W+喜爱的Pathview网页版 | 整合表达谱数据KEGG通路可视化

Pathview网站简介 网址&#xff1a;https://pathview.uncc.edu/ 前段时间介绍了一个R包 — Pathview。它可以整合表达谱数据并可视化KEGG通路&#xff0c;操作是先自动下载KEGG官网上的通路图&#xff0c;然后整合输入数据对通路图进行再次渲染。从而对KEGG通路图进行一定程度…

RedHat9 | kickstart无人值守批量安装

一、知识补充 kickstart Kickstart是一种用于Linux系统安装的自动化工具&#xff0c;它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。 kickstart的工作原理 Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数&#xff0c;…

漏洞分析 | PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)

漏洞概述 PHP CGI&#xff08;Common Gateway Interface&#xff09;是在Windows平台上运行PHP的一种方式。CGI是一种标准接口&#xff0c;允许Web服务器与外部应用程序&#xff08;如PHP脚本&#xff09;进行交互&#xff0c;从而生成动态网页内容。 近期&#xff0c;PHP发布…

Logstash安装插件失败的问题

Logstash安装插件失败的问题 安装 logstash-output-jdbc 失败 报错为&#xff1a; Unable to download data from https://rubygems.org - Net::OpenTimeout: Failed to open TCP connection to rubygems.org:443 (execution expired) (https://rubygems.org/latest_specs.4.…

【算法 - 哈希表】两数之和

这里写自定义目录标题 两数之和题目解析思路解法一 &#xff1a;暴力枚举 依次遍历解法二 &#xff1a;使用哈希表来做优化 核心逻辑为什么之前的暴力枚举策略不太好用了&#xff1f;所以&#xff0c;这就是 这道题选择 固定一个数&#xff0c;再与其前面的数逐一对比完后&…

Linux系统(CentOS)安装iptables防火墙

1&#xff0c;先检查是否安装了iptables 检查安装文件-执行命令&#xff1a;rpm -qa|grep iptables 检查安装文件-执行命令&#xff1a;service iptables status 2&#xff0c;如果安装了就卸装(iptables-1.4.21-35.el7.x86_64 是上面命令查出来的版本) 执行命令&#xff1a…

蓝牙信标和蓝牙标签我们如何区分,区分方法有哪些?

蓝牙信标和蓝牙标签其实是两种不同的技术&#xff0c;很多人可能会把蓝牙信标和蓝牙标签搞混&#xff0c;因为区分不开来&#xff0c;但实际上&#xff0c;区分这两种技术也很简单&#xff0c;因为它们各自都有不一样的特性&#xff0c;通过这些特性&#xff0c;我们也能正常区…

相机光学(二十四)——CRA角度

CRA角度 0.参考资料1.什么是CRA角度2.为什么 CRA 会导致luma shading3.为什么 CRA 会导致color shading4.CRA相差过大的具体表现5.CRA Matching6.怎样选择sensor的CRA 0.参考资料 1.芯片CRA角度与镜头的匹配关系&#xff08;一&#xff09;   2.芯片CRA角度与镜头选型的匹配关…

爬虫进阶:Selenium与Ajax的无缝集成

爬虫与Ajax的挑战 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。这为用户带来了更好的体验&#xff0c;但同时也使得爬虫在抓取数据时面临以下挑战&#xff1a; 动态内容加载&#xff…

vue中数组出现__ob__: Observer属性,导致不能正确使用问题解决

直接上图&#xff0c;如下图&#xff0c;数组中出现__ob__: Observer属性&#xff0c;导致无法取值。 解决方案为&#xff1a;JSON.parse(JSON.stringify(数组变量名))深拷贝数组&#xff0c;重新生成一个可枚举数组。 // 处理代码如let tempIds JSON.parse(JSON.stringify(i…

一文带你初探FreeRTOS信号量

本文记录我初步学习FreeRTOS的信号量的知识&#xff0c;在此记录分享&#xff0c;希望我的分享对你有所帮助&#xff01; 什么是信号量 在FreeRTOS中&#xff0c;信号量&#xff08;Semaphore&#xff09;是一种用于任务间同步和资源共享的机制。信号量主要用于管理对共享资源的…