模板

<template><div class="wrapper"><div class="chart" id="chart"></div><el-dialogtitle="提示":visible.sync="dialogVisible"width="30%":before-close="handleClose"><span>这是一段信息</span><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="dialogVisible = false">确 定</el-button></span></el-dialog></div>
</template>

js

1 、2d地图是平面的,可以设置倾斜度,边加阴影,这样就有立体感了

2 、tooltips上设置点击事件,在methods不会触发的,要先在全局下挂载

<script>
import shanghai from "../../static/map/js/province/shanghai";
// params 当前tooltip数据,
window.onClickSeries = function(params, key) {testFun(params, key); // 直接通过window方法去调用methods中对应方法console.log(params);
};export default {data() {return {dialogVisible: false,city: "",dataS: [{ name: `浦东新区`, value: [121.567706, 31.245944, 1] },{ name: `宝山区`, value: [121.489934, 31.398896, 2] },{ name: `崇明区`, value: [121.526, 31.658, 3] },{ name: `嘉定区`, value: [121.250333, 31.383524, 4] },{ name: `青浦区`, value: [121.113021, 31.151209, 5] },{ name: `杨浦区`, value: [121.522797, 31.270755, 6] },{ name: `虹口区`, value: [121.491832, 31.26097, 7] },{ name: `普陀区`, value: [121.392499, 31.241701, 8] },{ name: `静安区`, value: [121.448224, 31.229003, 9] },{ name: `黄浦区`, value: [121.490317, 31.222771, 10] },{ name: `长宁区`, value: [121.4222, 31.218123, 11] },{ name: `徐汇区`, value: [121.43752, 31.179973, 12] },{ name: `松江区`, value: [121.223543, 31.03047, 13] },{ name: `闵行区`, value: [121.375972, 31.111658, 14] },{ name: `金山区`, value: [121.458472, 30.912345, 15] },{ name: `奉贤区`, value: [121.458472, 30.912345, 16] }]};},created() {},mounted() {this.drawChart();window.testFun = this.testFun;},methods: {// vue内部方法testFun(va1, va2) {console.log(va1, va2);this.dialogVisible = true;},// 弹框handleClose(done) {this.$confirm("确认关闭?").then(_ => {done();}).catch(_ => {});},drawChart() {// 基于准备好的dom,初始化echarts实例let chart = this.$echarts.init(document.getElementById("chart"));// 监听屏幕变化自动缩放图表window.addEventListener("resize", function() {chart.resize();});// 绘制图表chart.setOption({// 图表主标题title: {text: "全国各省人口", // 主标题文本,支持使用 \n 换行top: 20, // 定位 值: 'top', 'middle', 'bottom' 也可以是具体的值或者百分比left: "center", // 值: 'left', 'center', 'right' 同上textStyle: {// 文本样式fontSize: 24,fontWeight: 600,color: "#fff"}},// 提示框组件tooltip: {trigger: "item", // 触发类型, 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用// 提示框浮层内容格式器,支持字符串模板和回调函数两种形式// 使用函数模板  传入的数据值 -> value: number | ArraytriggerOn: "click",enterable: true,formatter: function(val) {console.log(val);let valu = val.data.value;return (val.data.name +"<br>人口数量: " +val.data.value[2] +"万" +`<button  onclick="onClickSeries(\'` +valu +`\',\' ` +1 +`\')">这是显示的文本</button>`);}},geo: {zoom: 1,// geoIndex: 1,aspectScale: 1, //长宽比map: "上海", // 地图类型show: true, // 是否显示地理坐标系组件// 是否开启鼠标缩放和平移漫游 默认不开启 如果只想要开启缩放或者平移,// 可以设置成 'scale' 或者 'move' 设置成 true 为都开启roam: false,// 图形上的文本标签label: {show: false // 是否显示对应地名},// 地图区域的多边形 图形样式itemStyle: {normal: {areaColor: "#053fc4", // 地图颜色borderWidth: 5, // 边框的宽度shadowColor: "#0098d9", //  阴影颜色borderColor: "#00FFFF", // 边框颜色// shadowOffsetX: -5,// shadowOffsetY: 10,shadowBlur: 12, // 阴影的模糊大小shadowOffsetX: 0, //阴影水平方向上的偏移距离shadowOffsetY: 12 // 阴影垂直方向上的偏移距离},emphasis: {show: false}},// 高亮状态下的多边形和标签样式emphasis: {label: {show: true, // 是否显示标签color: "#fff" // 文字的颜色 如果设置为 'auto',则为视觉映射得到的颜色,如系列色},itemStyle: {areaColor: "#9cc3f5" // 地图区域的颜色}}},series: [{type: "map",map: "上海",// center: [112.194115019531, 23.582111640625],zoom: 1,geoIndex: 1,aspectScale: 1, //长宽比showLegendSymbol: false, // 存在legend时显示label: {normal: {show: true,textStyle: {fontSize: 8,color: "#ccc"}},emphasis: {show: false,textStyle: {color: "#ccc"}}},roam: false,itemStyle: {normal: {areaColor: "#053fc4",borderColor: "#fff",fontWeightL: 700,borderWidth: 1},emphasis: {areaColor: {type: "linear",x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: "#3f15d6" // 0% 处的颜色},{offset: 1,color: "#d243cd" // 100% 处的颜色}],globalCoord: false // 缺省为 false}}},data: this.dataS},{type: "scatter", // 类型coordinateSystem: "geo", // 该系列使用的坐标系 可选: 'cartesian2d','polar','geo'// 标记的图形, 标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond',// 'pin', 'arrow', 'none'symbol: "circle",symbolSize: 8, // 标记的大小// 图形的样式itemStyle: {normal: {// areaColor: '#00FFFF', // 地图颜色borderWidth: 1, // 边框的宽度shadowColor: "#0098d9", //  阴影颜色borderColor: "#00FFFF", // 边框颜色// shadowOffsetX: -5,// shadowOffsetY: 10,shadowBlur: 12, // 阴影的模糊大小shadowOffsetX: 0, //阴影水平方向上的偏移距离shadowOffsetY: 12 // 阴影垂直方向上的偏移距离},emphasis: {show: false}},// 系列中的数据内容数组, 数组项通常为具体的数据项data: this.dataS},{type: "effectScatter", // 类型coordinateSystem: "geo", // 该系列使用的坐标系 可选: 'cartesian2d','polar','geo'// 标记的图形, 标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond',// 'pin', 'arrow', 'none'symbol: "circle",// 标记的大小, 如果需要每个数据的图形大小不一样,可以设置为如下格式的回调函数// (value: Array|number, params: Object) => number|Array// 其中第一个参数 value 为 data 中的数据值。第二个参数params 是其它的数据项参数symbolSize: function(val) {return val[2] / 600;},// 图形的样式itemStyle: {normal: {// areaColor: '#00FFFF', // 地图颜色borderWidth: 1, // 边框的宽度shadowColor: "#0098d9", //  阴影颜色borderColor: "#00FFFF", // 边框颜色// shadowOffsetX: -5,// shadowOffsetY: 10,shadowBlur: 12, // 阴影的模糊大小shadowOffsetX: 0, //阴影水平方向上的偏移距离shadowOffsetY: 12 // 阴影垂直方向上的偏移距离},emphasis: {show: false}},// 系列中的数据内容数组。数组项通常为具体的数据项data: [{ name: `长宁区`, value: [121.4222, 31.218123, 11] },{ name: `徐汇区`, value: [121.43752, 31.179973, 12] },{ name: `松江区`, value: [121.223543, 31.03047, 13] },{ name: `闵行区`, value: [121.375972, 31.111658, 14] },{ name: `金山区`, value: [121.458472, 30.912345, 15] },{ name: `奉贤区`, value: [121.458472, 30.912345, 16] }]}]});}}
};
</script>

样式

<style scoped>
.wrapper {width: 100%;
}
.wrapper .chart {width: 800px;height: 500px;margin: 100px 50px 0;border: 1px solid #eeeeee;background-size: 100% 100%;
}
#chart {pointer-events: all;
}
</style>

下面是完整代码

<template>

<div class="wrapper">

<div class="chart" id="chart"></div>

<el-dialog

title="提示"

:visible.sync="dialogVisible"

width="30%"

:before-close="handleClose"

>

<span>这是一段信息</span>

<span slot="footer" class="dialog-footer">

<el-button @click="dialogVisible = false">取 消</el-button>

<el-button type="primary" @click="dialogVisible = false"

>确 定</el-button

>

</span>

</el-dialog>

</div>

</template>

<script>

import shanghai from "../../static/map/js/province/shanghai";

// 用来保存所有的地图实例

const globalMap = {};

// params 当前tooltip数据, key: 当前实例的键值

window.onClickSeries = function(params, key) {

testFun(params, key); // 直接通过window方法去调用methods中对应方法

// 获取当前id地图的回调方法并执行

console.log(params);

};

export default {

data() {

return {

dialogVisible: false,

city: "",

dataS: [

{ name: `浦东新区`, value: [121.567706, 31.245944, 1] },

{ name: `宝山区`, value: [121.489934, 31.398896, 2] },

{ name: `崇明区`, value: [121.526, 31.658, 3] },

{ name: `嘉定区`, value: [121.250333, 31.383524, 4] },

{ name: `青浦区`, value: [121.113021, 31.151209, 5] },

{ name: `杨浦区`, value: [121.522797, 31.270755, 6] },

{ name: `虹口区`, value: [121.491832, 31.26097, 7] },

{ name: `普陀区`, value: [121.392499, 31.241701, 8] },

{ name: `静安区`, value: [121.448224, 31.229003, 9] },

{ name: `黄浦区`, value: [121.490317, 31.222771, 10] },

{ name: `长宁区`, value: [121.4222, 31.218123, 11] },

{ name: `徐汇区`, value: [121.43752, 31.179973, 12] },

{ name: `松江区`, value: [121.223543, 31.03047, 13] },

{ name: `闵行区`, value: [121.375972, 31.111658, 14] },

{ name: `金山区`, value: [121.458472, 30.912345, 15] },

{ name: `奉贤区`, value: [121.458472, 30.912345, 16] }

]

};

},

created() {},

mounted() {

this.drawChart();

window.testFun = this.testFun;

},

methods: {

// vue内部方法

testFun(va1, va2) {

console.log(va1, va2);

this.dialogVisible = true;

},

// 弹框

handleClose(done) {

this.$confirm("确认关闭?")

.then(_ => {

done();

})

.catch(_ => {});

},

drawChart() {

// 基于准备好的dom,初始化echarts实例

let chart = this.$echarts.init(document.getElementById("chart"));

// 监听屏幕变化自动缩放图表

window.addEventListener("resize", function() {

chart.resize();

});

// 绘制图表

chart.setOption({

// 图表主标题

title: {

text: "全国各省人口", // 主标题文本,支持使用 \n 换行

top: 20, // 定位 值: 'top', 'middle', 'bottom' 也可以是具体的值或者百分比

left: "center", // 值: 'left', 'center', 'right' 同上

textStyle: {

// 文本样式

fontSize: 24,

fontWeight: 600,

color: "#fff"

}

},

// 提示框组件

tooltip: {

trigger: "item", // 触发类型, 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用

// 提示框浮层内容格式器,支持字符串模板和回调函数两种形式

// 使用函数模板  传入的数据值 -> value: number | Array

triggerOn: "click",

enterable: true,

formatter: function(val) {

console.log(val);

let valu = val.data.value;

return (

val.data.name +

"<br>人口数量: " +

val.data.value[2] +

"万" +

`<button  οnclick="onClickSeries(\'` +

valu +

`\',\' ` +

1 +

`\')">这是显示的文本</button>`

);

}

},

geo: {

zoom: 1,

// geoIndex: 1,

aspectScale: 1, //长宽比

map: "上海", // 地图类型

show: true, // 是否显示地理坐标系组件

// 是否开启鼠标缩放和平移漫游 默认不开启 如果只想要开启缩放或者平移,

// 可以设置成 'scale' 或者 'move' 设置成 true 为都开启

roam: false,

// 图形上的文本标签

label: {

show: false // 是否显示对应地名

},

// 地图区域的多边形 图形样式

itemStyle: {

normal: {

areaColor: "#053fc4", // 地图颜色

borderWidth: 5, // 边框的宽度

shadowColor: "#0098d9", //  阴影颜色

borderColor: "#00FFFF", // 边框颜色

// shadowOffsetX: -5,

// shadowOffsetY: 10,

shadowBlur: 12, // 阴影的模糊大小

shadowOffsetX: 0, //阴影水平方向上的偏移距离

shadowOffsetY: 12 // 阴影垂直方向上的偏移距离

},

emphasis: {

show: false

}

},

// 高亮状态下的多边形和标签样式

emphasis: {

label: {

show: true, // 是否显示标签

color: "#fff" // 文字的颜色 如果设置为 'auto',则为视觉映射得到的颜色,如系列色

},

itemStyle: {

areaColor: "#9cc3f5" // 地图区域的颜色

}

}

},

series: [

{

type: "map",

map: "上海",

// center: [112.194115019531, 23.582111640625],

zoom: 1,

geoIndex: 1,

aspectScale: 1, //长宽比

showLegendSymbol: false, // 存在legend时显示

label: {

normal: {

show: true,

textStyle: {

fontSize: 8,

color: "#ccc"

}

},

emphasis: {

show: false,

textStyle: {

color: "#ccc"

}

}

},

roam: false,

itemStyle: {

normal: {

areaColor: "#053fc4",

borderColor: "#fff",

fontWeightL: 700,

borderWidth: 1

},

emphasis: {

areaColor: {

type: "linear",

x: 0,

y: 0,

x2: 0,

y2: 1,

colorStops: [

{

offset: 0,

color: "#3f15d6" // 0% 处的颜色

},

{

offset: 1,

color: "#d243cd" // 100% 处的颜色

}

],

globalCoord: false // 缺省为 false

}

}

},

data: this.dataS

},

{

type: "scatter", // 类型

coordinateSystem: "geo", // 该系列使用的坐标系 可选: 'cartesian2d','polar','geo'

// 标记的图形, 标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond',

// 'pin', 'arrow', 'none'

symbol: "circle",

symbolSize: 8, // 标记的大小

// 图形的样式

itemStyle: {

normal: {

// areaColor: '#00FFFF', // 地图颜色

borderWidth: 1, // 边框的宽度

shadowColor: "#0098d9", //  阴影颜色

borderColor: "#00FFFF", // 边框颜色

// shadowOffsetX: -5,

// shadowOffsetY: 10,

shadowBlur: 12, // 阴影的模糊大小

shadowOffsetX: 0, //阴影水平方向上的偏移距离

shadowOffsetY: 12 // 阴影垂直方向上的偏移距离

},

emphasis: {

show: false

}

},

// 系列中的数据内容数组, 数组项通常为具体的数据项

data: this.dataS

},

{

type: "effectScatter", // 类型

coordinateSystem: "geo", // 该系列使用的坐标系 可选: 'cartesian2d','polar','geo'

// 标记的图形, 标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond',

// 'pin', 'arrow', 'none'

symbol: "circle",

// 标记的大小, 如果需要每个数据的图形大小不一样,可以设置为如下格式的回调函数

// (value: Array|number, params: Object) => number|Array

// 其中第一个参数 value 为 data 中的数据值。第二个参数params 是其它的数据项参数

symbolSize: function(val) {

return val[2] / 600;

},

// 图形的样式

itemStyle: {

normal: {

// areaColor: '#00FFFF', // 地图颜色

borderWidth: 1, // 边框的宽度

shadowColor: "#0098d9", //  阴影颜色

borderColor: "#00FFFF", // 边框颜色

// shadowOffsetX: -5,

// shadowOffsetY: 10,

shadowBlur: 12, // 阴影的模糊大小

shadowOffsetX: 0, //阴影水平方向上的偏移距离

shadowOffsetY: 12 // 阴影垂直方向上的偏移距离

},

emphasis: {

show: false

}

},

// 系列中的数据内容数组。数组项通常为具体的数据项

data: [

{ name: `长宁区`, value: [121.4222, 31.218123, 11] },

{ name: `徐汇区`, value: [121.43752, 31.179973, 12] },

{ name: `松江区`, value: [121.223543, 31.03047, 13] },

{ name: `闵行区`, value: [121.375972, 31.111658, 14] },

{ name: `金山区`, value: [121.458472, 30.912345, 15] },

{ name: `奉贤区`, value: [121.458472, 30.912345, 16] }

]

}

]

});

}

}

};

</script>

<style scoped>

.wrapper {

width: 100%;

}

.wrapper .chart {

width: 800px;

height: 500px;

margin: 100px 50px 0;

border: 1px solid #eeeeee;

/* background: url(../../public/static/bg.png) no-repeat; */

background-size: 100% 100%;

}

#chart {

pointer-events: all;

}

</style>

echarts 2D地图散点图(带立体效果)tooltips中点击事件相关推荐

  1. ECharts 实现地图散点图上(转载)

    转载来源:https://efe.baidu.com/blog/echarts-map-tutorial/ ECharts 实现地图散点图(上)  小红  2016-04-28  ECharts, 教 ...

  2. echarts 2D地图3D效果(附:山东省市地图——济南莱芜合并)

    应客户需求,必须用2D地图做出3D效果样式(地图色块渐变色后续维护).本菜翻遍echarts官方文档以及网上的各种资料,做出了自己的整合.为了防止下次踩坑,故整理此篇文章与各位看客老爷共勉.废话不多说 ...

  3. 柱状图带立体效果_PS教程!手把手教你打造立体感欧美风人像大片效果(已打包好素材资料见文末)...

    在PS的众多技法中,磨皮教程种类繁多.本期教给大家的方法完全可以保留原片的细节和质感,既可以修掉面部不需要的瑕疵,又可以在保留皮肤质感的基础上,打造画面的立体感,而不是把人物的皮肤处理得如同镜面一般光 ...

  4. echarts中地图与表格联动效果

    echarts中地图与表格数据联动,当鼠标在地图上滑入某个区域时,不仅地图中该区域高亮显示,数据表格中的该条数据也会高亮显示.另外当鼠标移入表格中的某条数据时,地图中想对应的区域会自动高亮提示. 鼠标 ...

  5. echarts 中国地图散点图渲染

    准备 echarts 中国地图的json(在最后) GitHub的demo地址,可以直接拉下来 先注册地图 import * as echarts from 'echarts'; import { d ...

  6. echarts中国地图散点涟漪效果

    echarts中国地图例子:http://gallery.echartsjs.com/editor.html?c=effectScatter-map var data = [{name: '郑州',v ...

  7. echarts中formatter修改鼠标悬浮事件信息操作、echarts地图块、散点区分触发点击事件 只触发散点问题详解

    这里写目录标题 1.实例 2.案例详解 1.实例 这次我拿echarts中 地图组合散点图的实例 !!!实现效果:滑到散点显示不同于地图块的信息 及 formatter 提示窗自定义!!! 这个显示项 ...

  8. echarts中国地图使省份选择性滑动或点击高亮

    本文介绍echarts显示中国省份图,对于需要高亮的省份进行筛选.并且对省份进行选择性交互. 首先我们需要一个颜色集合,代表我们要设置多少种颜色.这里用到了dataRange. dataRange: ...

  9. Android学习笔记(三)——Button之圆角、按压效果、点击事件

    自定义背景形状 圆角按钮 在drawabale 中new一个drawable resource file: 将root element设置为shape,命名为button_2: 在button_2 x ...

最新文章

  1. int b = 1;int c = b^0xff;求C
  2. 【若依(ruoyi)】table定制列宽
  3. Android 第八课 创建自定义控件
  4. Velocity语法参考
  5. emplode php|,字符串的分割/组合/逆序等
  6. 131. 理解MVC
  7. 11. CSS 文本属性
  8. python矢量化运算_Python里面的矩阵与矢量化运算
  9. jupyter代码无法运行
  10. 查看自己本地IP地址方法
  11. 猎聘、BOSS、智联、前程无忧这几个招聘网站我都用过
  12. 计算机互联网职业高中排名,职业高中有哪些热门专业可选择
  13. php.ini maxfileuploads,细说PHP高洛峰文件上传类源文件
  14. java如何将网页表格导出为excel
  15. ARC101E Ribbons on Tree 容斥原理+dp
  16. WPH4003-1E 1700V3A N沟道 功率MOSFET 低损耗实现高效率
  17. GPS定位,经纬度附近地点查询–C 实现方法
  18. luogu2161 SHOI2009 会场预约
  19. android录视频花屏,拍大师录制视频花屏怎么办 拍大师录制视频花屏的解决方法...
  20. 切换RequiredFieldValidator和RegularExpressionValidator提示信息的控件

热门文章

  1. titan框架的使用_如何设置和使用Google Titan密钥捆绑包
  2. 2017 多校4 Wavel Sequence
  3. 联想第一季度业绩超预期,增长势头强劲
  4. 年度盘点!Flink 社区全年的精华内容都在这里啦(内附福利)
  5. 双胺基修饰MOF/GO烯复合材料|硫修饰Cu基MOF材料|磁性纳米多孔碳材料FeO@C|mof材料的复杂定制
  6. 国际高中成绩差但是想读名校怎么办(文末附自救指南)
  7. Java正则验证经纬度
  8. 【python 生成自己的二维码】推广二维码带log图片
  9. 【渝粤教育】国家开放大学2018年秋季 7179-22T文献检索 参考试题
  10. 多线程服务器的典型适用场合