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 相关文章推荐
XMLHTTPRequest的属性和方法简介
Nov 23 Javascript
javascript中的void运算符语法及使用介绍
Mar 10 Javascript
easyui validatebox验证
Apr 29 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
JavaScript中立即执行函数实例详解
Nov 04 Javascript
React如何避免重渲染
Apr 10 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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下删除字符串中HTML标签的函数
2008/08/27 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
php5.3 注意事项说明
2013/07/01 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
详解Node 定时器
2018/02/26 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
Python群发邮件实例代码
2014/01/03 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python Requests库基本用法示例
2018/08/20 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
Python bisect模块原理及常见实例
2020/06/17 Python
JSF的标签库有哪些
2012/04/27 面试题
客服实习的个人自我鉴定
2013/10/20 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
微信营销策划方案
2014/02/24 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
房屋公证委托书
2014/04/03 职场文书
法人代表任命书范本
2014/06/05 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
先进教师事迹材料
2014/12/16 职场文书
优秀教师单行材料
2014/12/16 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书