Echarts 地图(map)插件之 鼠标HOVER和tooltip自定义数据

在项目开发中,有需要用到地图的地方,百度的echarts地图插件就是个不错的选择,

这里总结一下地图自定义鼠标HOVER时的事件和自定义tooltip数据;

一、鼠标HOVER时的事件:

参照官方文档解释,

  

可以看出这款插件有丰富的鼠标事件可供选择:

  调用鼠标HOVER事件的方法很简单,只需把以下代码放到charts()调用的函数的最底部即可

  

1 var ecConfig = require(‘echarts/config‘);
2     myChart.on(ecConfig.EVENT.HOVER, function (param){
3         var selected = param.name;
4         //write your code here
5         //console.log(selected);打印参数
6         //hoverin();调用自定义函数
7         //document.getElementById(‘wrong-message‘).innerHTML = str;
8     });

二、tooltip的数据自定义;

  这块研究了一段时间,都是浅浅的研究,

  tooltip就是鼠标放在地图上显示的提示,如图红框里的就是tooltip的内容;

这里总结的主要是这块数据的自定义;

官方文档介绍说需要修改formatter;

option = {
    tooltip : {
        trigger: ‘item‘,
        formatter: ‘{b}‘
    }
},

文档中说明:formatter支持函数自定义数据及模板

那么,我们可以把上面的代码改造一下:

首先自定义一些数据:(例子)这里是图片的url

var $imgs = [
        {area: ‘北京‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘天津‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘上海‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘重庆‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘河北‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘河南‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘云南‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘辽宁‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘黑龙江‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘湖南‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘安徽‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘山东‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘新疆‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘江苏‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘浙江‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘江西‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘湖北‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘广西‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘甘肃‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘山西‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘内蒙古‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘陕西‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘吉林‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘福建‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘贵州‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘广东‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘青海‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘西藏‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘四川‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘宁夏‘, url:‘http://www.blingschool.com/template/33/pc/images//logo2.png‘},
        {area: ‘海南‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘台湾‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘香港‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘},
        {area: ‘澳门‘, url:‘http://www.blingschool.com/template/33/pc/images//logo3.png‘}
    ];

当鼠标HOVER的时候,去判断取哪些值来显示;

tooltip : {
            trigger: ‘item‘,
            formatter: function (params,ticket,callback){
                var $pna = params.name;
                var res = ‘‘;

                for(var i = 0;i<$imgs.length;i++){
                    if($imgs[i].area == $pna){
                        res = ‘<img src="‘+ $imgs[i].url +‘" />‘;//设置自定义数据的模板,这里的模板是图片
                        //console.log(res);
                        break;
                    }
                }

                setTimeout(function (){
                    // 仅为了模拟异步回调
                    callback(ticket, res);//回调函数,这里可以做异步请求加载的一些代码
                }, 1000)
                return ‘loading‘;
            }
        }

最终完成的效果如图

时间: 2024-10-23 15:21:09

Echarts 地图(map)插件之 鼠标HOVER和tooltip自定义数据的相关文章

解决:Map的area属性标签鼠标Hover可以给area加背景

css的area标签是不支持hover的,只有a标签才支持.li标签在IE浏览器下才支持,所以采用jquery的mouseenter和mouseleave事件完成.首先讲jQuery对应的事件:1.mouseenter事件 当鼠标指针穿过元素时,会发生 mouseenter 事件.该事件大多数时候会与mouseleave 事件一起使用. 与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件.如果鼠标指针穿过任何子元素,同样会触发 mouseover

ECharts地图详解 【转】

$(function() { // 路径配置 require.config({ paths : { // echarts: 'http://echarts.baidu.com/build/dist' echarts : './plugins/echarts-2.2.7/doc/example/www/js' } }); // 使用 require( [ 'echarts', 'echarts/chart/map' // 使用柱状图就加载bar模块,按需加载 ], function(ec) { /

echarts地图定时切换散点及多图表级联联动

本文目录 1. 摘要 2.引入ECharts以及地图相关json 3. 界面布局 4. js实现图形布局 5.定时循环jquery实现 6. 总结 1.  摘要 最近做项目遇到个统计相关需求,一个页面中大概四个或更多图形统计,百度地图.饼图.柱状图.线型图.百度地图上显示所有店面在全国各地大概位置,目前暂定每省一个,在地图上显示散点.如默认显示郑州散点闪动,其他图形显示郑州相关数据:5秒切换下一个区域点,其他的图表数据对应改变.先上个图,各位有需要的可以再接着往下 2.  引入ECharts以及

ECharts地图详解

1.引入echarts库文件 <script charset="utf-8" type="text/javascript" language="javascript" src="echarts-2.2.7/doc/example/www/js/echarts.js"></script> 2.在页面中新建div用于地图展示 <div id="main" style="h

echarts地图中城市与省份之间的切换

在使用echarts地图中,可能会用到显示各省份的数据和显示各城市的数据.综合了这两种的配置项,只需传四个参数即可完成对这两种模式的切换. 下面就是配置项代码: //地图配置 //mapData:图表所需数据:mapType:地图模式或散点图模式(即按省份显示数据或按城市显示数据) //minValue:视觉映射组件最小值:maxValue:视觉映射最大值 function _setMap(mapData, mapType, minValue, maxValue) { var option =

分享一个jquery插件,弥补一下hover事件的小小不足

hover事件有一个缺点:当你的鼠标无意划过一个dom元素(瞬间划过,这个时候用户可能不想触发hover事件),会触发hover事件 应该设置一个时差来控制hover事件的触发 比如jd左边的菜单 你用鼠标瞬间划过他子菜单会弹出然后立即消失, 用户体验非常的不好. 易迅的菜单就没有这个问题 delayHover来解决这个问题 啥也不说了先看调用---------- 调用方式: var duration = 500;// 延迟500毫秒 $('#div1').delayHover(function

echarts 地图 动态 展示 结合css+js

echarts地图展示功能非常强大,官网上静态展示的样例非常多了,动态的资料少.研究了下.我眼下实现的通过ajax从server获取数据动态展示地图. 另外,我们有时候希望在地图之上做些自己定义的东西,比方:通知框.或者其它的东西.我们能够通过css图层的方式在地图之上实现.我实现的效果例如以下: 附上源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&qu

百度地图地点搜索和鼠标点击地点获取经纬度

百度地图地点搜索和鼠标点击地点获取经纬度,这些都是地图比较基本 效果图:如下 代码部分: <!DOCTYPE html><html>    <head>    <meta charset="utf-8">    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

shp数据转为geojson格式作为ECharts地图扩展文件

项目中进行图表信息展示时采用了Eharts的图表样式,需要用到地图展示方式,但是已有的地图并不能满足项目的个性化需求,采用地图图片的方式既不灵活,也不美观.ECharts地图扩展文件使用geoJson格式,制作方式有很多种,我选择通过shp数据转换为geojson格式,因为可以通过ArcMap制作自己个性化的shp数据,也就能灵活得到满足项目需求的geojson数据,制作方式如下: 1.制作shp数据.地理信息行业的人员都对ArcGis和shp格式的数据编辑比较了解,也不是简单能说清楚的,不再详