在vue中使用echarts渲染地图,geo点击某个区域可高亮,取消

一、安装echarts

npm install echarts --save

二、main.js引入注册

import Vue from "vue";import * as echarts from "echarts";Vue.prototype.$echarts = echarts;

三、vue文件中使用echarts

<template><div class="page-warp"><div ref="mapEchart" class="map-box"></div></div>
</template><script>
import geoJson from "地图数据json文件";export default {data() {return {markerData: [{name: "测试地址1",value: [118.77,32.00],},{name: "测试地址1",value: [118.73,31.91],},{name: "测试地址2",value: [118.88,31.91],},{name: "测试地址3",value: [118.77,32.02],},{name: "测试地址4",value: [118.86,32.06],},],features: [],};},mounted() {this.$nextTick(() => {this.getInitEchart();this.getMapId();});},methods: {getMapId() {this.features = this.$echarts.getMap("geoJson").geoJson.features;},getInitEchart() {let that = this;let myChart = this.$echarts.init(this.$refs.mapEchart);// var img = new Image();var canvas = document.createElement("canvas");// var ctx = canvas.getContext("2d");canvas.width = myChart.getWidth() * window.devicePixelRatio;canvas.height = myChart.getHeight() * window.devicePixelRatio;// var fullImage = new Image();// img.onload = function () {//     ctx.drawImage(img, 0, 0, canvas.width, canvas.height);//     fullImage.src = canvas.toDataURL();//     setTimeout(function () {//         myChart.resize();//     }, 100);// };// img.src = require("");//背景图地址可以不加this.$echarts.registerMap("geoJson", geoJson);let option = {tooltip: {show: false,trigger: "item",axisPointer: {type: "shadow",},},grid: {height: "100%",width: "100%",},geo: {map: "nantong",aspectScale: 0.9,silent: false,label: {show: false,emphasis: {show: false, // 高亮状态下显示区域名称areaColor: "rgba(35, 99, 150,0.1)",},},top: "center",left: "center",roam: false, //禁止拖拽selectedMode: "single", //单选clickable: true,animationDurationUpdate: 0,scaleLimit: {min: 1,max: 1,},zoom: 1.02,itemStyle: {normal: {areaColor: {//   image: img,//背景图repeat: "repeat",label: {show: false,},},shadowColor: "#246496",shadowBlur: 0,shadowOffsetX: 0,shadowOffsetY: 10,borderColor: "#0fcef9",borderWidth: 2,},emphasis: {areaColor: "rgba(35, 99, 150,0.1)",borderWidth: 1,color: "green",label: {show: false,},},},select: {disabled: false, //可以被选中label: {show: false,},//相关配置项很多,可以参考echarts官网itemStyle: {areaColor: "rgba(35, 99, 150,0.1)",},},},series: [{//底部图片type: "custom",coordinateSystem: "geo",clickable: true,data: that.markerData,renderItem: function (params, api) {return {type: "image",name: "",style: {image: require("@/assets/images/图片.png"),width: 30,height: 94,x: api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[0],y: api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[1],},};},},{//头部文字type: "custom",coordinateSystem: "geo",clickable: true,data: that.markerData,renderItem: function (params, api) {let x = api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[0];let y = api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[1];return {type: "text",name: "文字",style: {text: that.markerData[params.dataIndex].name,backgroundColor: "rgba(0,0,0,0.5)",padding: [10, 15, 10, 40],borderRadius: 15,x: x - 30,y: y,fill: "#fff",},};},},{//头部图片type: "custom",coordinateSystem: "geo",clickable: true,data: that.markerData,renderItem: function (params, api) {let x = api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[0];let y = api.coord([that.markerData[params.dataIndex].value[0],that.markerData[params.dataIndex].value[1],])[1];return {type: "image",name: "",style: {image: require("@/assets/images/图片.png"),width: 20,height: 20,x: x - 20,y: y + 4,},};},},],};myChart.on("click", function (data) {console.log("data: ", data);myChart.dispatchAction({//点击高亮设置type: "select",// geo 中名称name: data.name,});});myChart.clear();myChart.setOption(option);window.onresize = function () {myChart.resize();};},},
};
</script><style lang="scss" scoped>
.page-warp {
width:100%;
height:100vh;
.map-box{
width:100%;
height:100%;
}}
</style>

四、显示效果图:

**

在这里插入图片描述
点击效果:
在这里插入图片描述

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

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

相关文章

Python-基础篇-类与对象/面向对象程序设计-py脚本

面向对象基础 第一个面向对象 class Cat:def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫要喝水")# 创建猫对象 tom Cat()tom.eat() tom.drink()print(tom)addr id(tom) print("%x" % addr)新建两个猫对象 class Cat:def ea…

day05_流程控制语句

今日内容 零、 复习昨日 一、流程控制语句 零、 复习昨日 1 解释/(除法)的特殊点 整数相除,除不尽舍弃小数 2 i和i有什么相同点和不同点 都会自增 1i,先用后自增,i先自增后用以后经常使用的就是i,并不会特别区分前后 3 && 短路与,是如何短路的? 第一个式子会错,后面式…

(设置非自定义Bean)学习Spring的第六天

一 . 获取Bean的方法详解 , 如下图 : 二 . Spring配置非自定义bean----DruidDatasource 我们举个例子 : 配置Druid数据源交由Spring管理 首先导入在pom文件Druid坐标 然后考虑 : 被配置的Bean的实例化方式是什么 : 无参构造 被配置的Bena是否要注入必要属性 : 四个基本信息…

计算机组成原理 CPU的功能和基本结构和指令执行过程

文章目录 CPU的功能和基本结构CPU的功能CPU的基本结构 指令执行过程指令周期概念指令执行方案指令数据流取周期数据流析指周期数据流执行周期数据流中断周期数据流 数据通路的功能和基本结构数据通路的功能数据通路的结构单总线 CPU的功能和基本结构 #mermaid-svg-ZDowjZMUit41…

庞伟:《一本书读懂企业破产法》——企业危机解决之道

在当今复杂多变的市场环境中&#xff0c;企业破产问题日益凸显。如何妥善解决企业危机&#xff0c;保障各方利益&#xff0c;成为了业界关注的焦点恰逢北京市亿达律师事务所成功入选第一届北京市破产管理人协会并成为会员单位之际&#xff0c;为此&#xff0c;北京市亿达律师事…

从临床和科研场景分析ChatGPT在医疗健康领域的应用可行性

2023年4月发表在Journal Medical Systems的文献《Evaluating the Feasibility of ChatGPT in Healthcare: An Analysis of Multiple Clinical and Research Scenarios》&#xff08;评估 ChatGPT 在医疗健康领域的可行性&#xff1a;对多种临床和研究场景的分析&#xff09;介绍…

给WordPress网站增加一个带时间的led广告牌

WordPress 后台》外观》小工具》自定义html》添加到合适位置 其他系统可自行添加合适位置 <style type"text/css">.studytextgzbox {background: #F9F9F9; border: 1px solid #999999;margin: 1px;text-align:center; float: left;line-height: 28px;hei…

Facebook广告投放指南,如何运营多个Facebook广告账户不被封?

许多卖家做广告投放会选择 Facebook 作为主要的业务和产品推广平台。然而&#xff0c;要在这个竞争激烈的平台上脱颖而出并成功拓宽广告覆盖面并不容易&#xff0c;通常情况下大家会运营多个Facebook广告账号&#xff0c;但是很多人因此遭遇Facebook账号被封的情况&#xff0c;…

【状态压缩】【动态规划】【C++算法】691贴纸拼词

作者推荐 【动态规划】【数学】【C算法】18赛车 本文涉及知识点 状态压缩 动态规划 LeetCode:691 贴纸拼词 我们有 n 种不同的贴纸。每个贴纸上都有一个小写的英文单词。 您想要拼写出给定的字符串 target &#xff0c;方法是从收集的贴纸中切割单个字母并重新排列它们。如…

MyBatisPlus学习笔记二

接上&#xff1a;MyBatisPlus学习笔记一&#xff1a; MyBatisPlus学习笔记一-CSDN博客 1、条件构造器 MyBatisPlus支持各种复杂的where条件&#xff0c;可以满足日常开发的所有需求。 1.1、集成体系 1.2、实例 查询 lambda查询 更新 1.3、总结 2、自定义sql 我们可以利用MyB…

SSL之mkcert构建本地自签名

文章目录 1. 什么是SSL2. mkcert&#xff1a;快速生成自签名证书2.1 mkcert的工作流程如下&#xff1a;2.2 window 本地实现自签证书2.2.1 下载安装2.2.2 下载,生成本地 SSL2.2.3 生成 pem 自签证书,可供局域网内使用其他主机访问。2.2.4 使用-psck12 生成*.p12 文件 2.3 Sprin…

竞赛保研 大数据房价预测分析与可视

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据房价预测分析与可视 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适合…