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.pswp.cn/diannao/41216.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41216.shtml
英文地址,請注明出處:http://en.pswp.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;各種預算一再壓縮…

Java中的服務治理與API網關實現

Java中的服務治理與API網關實現 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在分布式系統中&#xff0c;隨著服務數量的增加和復雜度的提升&#xff0c;如…

Android與Java后端聯調RSA加密的注意事項

項目中常常會遇到Android前端使用后端提供的公鑰加密數據的場景。需要注意Java后端的java.util.Base64默認Base64標準和Android的android.util.Base64是不一樣的。 此外&#xff0c;RSA算法標準也需要前后端顯式約定。 示例代碼&#xff1a; import android.util.Base64;impo…

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通路圖進行一定程度…

uniapp+nodejs實現小程序支付

1.準備商戶號、企業級小程序(或者個體工商戶級別的) 2.在小程序端調用uni.login獲取code&#xff0c;傳遞給后端 uni.login({success: loginRes > {uni.request({url: "http://127.0.0.1:3003/wxpay/pay",data: {code: loginRes.code},method: "get",…

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發布…

Request safe_get 小工具

接口安全獲取請求參數小工具&#xff08; python&#xff09; flask import logging import traceback from flask import (Blueprint, request, Response, jsonify, g, send_file)def safe_get(req: request, attr: str, defaultNone):try:if attr in req.form:return req.f…

拍攝泡咖啡的劇本!

泡咖啡的過程可以是一種放松和享受的儀式&#xff0c;同時也是一個記錄生活美好瞬間的好機會。以下是一些步驟和提示&#xff0c;幫助您記錄泡咖啡的過程&#xff1a; 1. **準備材料**&#xff1a; 確保您有新鮮的咖啡豆、磨豆機、咖啡壺、濾紙、熱水和杯子。 2. **選擇音樂**&…

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…