React 使用recharts实现散点地图的示例代码


Posted in Javascript onDecember 07, 2018

一、前端框架react+ant design UI

二、首先安装recharts

npm install recharts

或者

yarn add recharts

三、引入插件及chinaJSON.js(里面有经纬度信息)

由于项目需要我是全部存数据库的,因为也需要自己添加,下面附一份儿全国省市县经纬度数据

import React,{Component} from 'react';
import {message} from 'antd';
import echarts from "echarts";
import {mapJson,geoCoordMap} from './chinaJSON.js';

三、具体实现代码如下

import React,{Component} from 'react';
import {message} from 'antd';
import echarts from "echarts";
import {mapJson,geoCoordMap} from './chinaJSON.js';

const convertData = (data) => {
  var res = [];
  for (var i = 0; i < data.length; i++) {
    var geoCoord = geoCoordMap[data[i].name];
    if (geoCoord) {
      res.push({
        value: geoCoord.concat(data[i].value),
        name: data[i].name,
      });
    }
  }
  return res;
};


class LayoutImg extends Component {
  constructor() {
   super();
   this.state = {
    loading: true,
    loaded:false,
    vmData:[
        {name: '云浮', value: 24,num:10},
        {name: '烟台', value: 28,num:5},
        {name: '昆山', value: 33,num:8},
        {name: '泰州', value: 36,num:10},
        {name: '广州', value: 38,num:8},
        {name: '深圳', value: 41,num:10},
        {name: '三亚', value: 54,num:12},
        {name: '成都', value: 58,num:20},
        {name: '重庆', value: 66,num:5},
        {name: '大庆', value: 279,num:10}
        ]
   }
  }
  componentDidMount() {
   this.initMapDidMount();
  }

  initMapDidMount(){
   echarts.registerMap('china', mapJson); // 注册地图
   var mapChart = echarts.init(document.getElementById('map'));
   var option = {
     backgroundColor: '#404a59',
     title: {
      text: '分布',
      // subtext: '点击进入',
      // sublink: 'http://www.baidu.com/',
      left: 'center',
      textStyle: {
        color: '#fff'
      }
     },
     tooltip : {
      trigger: 'item',
      formatter: function (params) {      //格式化鼠标指到点上的弹窗返回的数据格式
        return params.name + ' : ' + params.value[2];
      }
     },
     geo: {         //地里坐标系组件(相当于每个省块)
      map: 'china',
      roam:true,      //是否开启缩放 
      label: {
        emphasis: {        //鼠标划到后弹出的文字 显示省份
         color: '#FF0000',    //高亮背景色
         show: true,       //是否高亮显示
         fontSize:12       //字体大小
        }
      },
      itemStyle: {         //坐标块本身
        normal: {         //坐标块默认样式控制
         areaColor: '#323c48',  //坐标块儿颜色
         borderColor: '#111'
        },
        emphasis: {
         areaColor: '#79FF79'  //放坐标块儿上,块儿颜色
        }
      }
     },
     series: [
      {
        name: '信息',   // series名称
        type: 'effectScatter',    // series图表类型
        effectType: 'ripple',     // 圆点闪烁样式,目前只支持ripple波纹式
        coordinateSystem: 'geo',   // series坐标系类型
        data:convertData(this.state.vmData),// series数据内容
        showEffectOn: 'emphasis',    //配置何时显示特效 render 一直显示,emphasis放上去显示
        symbolSize: function (val) {
          return val[2] / 10;
        },
        rippleEffect: {        // ripple的样式控制
         brushType: 'stroke',
         color: '#28FF28',
        },
        label: {
          normal: {
            formatter: '{b}',
            position: 'right',
            show: true   //显示位置信息,
          }
        },

        itemStyle: {         //散点本身显示控制
         normal: {
           color: '#28FF28',
           shadowBlur: 10,
           shadowColor: '#28FF28'
         }
        },
        zlevel: 1
      }
     ],
     symbolSize: 12,
   }
   if (option && typeof option === "object") {
     mapChart.setOption(option);
   }
  }
  render() {
   return (
     <div className="cloudhost-box">
        <div id="map" style={{width: '1100px',height: '550px',mergeLeft:"0px"}} />
     </div>
   );
  }
}
 
export default LayoutImg;

效果图如下:

React 使用recharts实现散点地图的示例代码

附:有什么其它的相关配置可以看官网再做具体修改recharts地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中关于new Object时传参的一些细节分析
Mar 13 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
原生javascript获取元素样式
Dec 31 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 Javascript
jquery ajax 如何向jsp提交表单数据
Aug 23 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
浅谈vue3中effect与computed的亲密关系
Oct 10 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
Apr 17 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 Javascript
如何手动实现es5中的bind方法详解
Dec 07 #Javascript
JavaScript时间与时间戳的转换操作实例分析
Dec 07 #Javascript
vue+SSM实现验证码功能
Dec 07 #Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 #Javascript
JS实现随机生成10个手机号的方法示例
Dec 07 #Javascript
angular学习之动态创建表单的方法
Dec 07 #Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 #Javascript
You might like
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
深入分析php之面向对象
2013/05/15 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
python能开发游戏吗
2020/06/11 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
管事部库房保管员岗位职责
2014/02/21 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
设计大赛策划方案
2014/06/13 职场文书
工程技术员岗位职责
2015/04/11 职场文书
聘任通知书
2015/09/21 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python