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 相关文章推荐
IE浏览器PNG图片透明效果代码
Sep 02 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
Vue中计算属性computed的示例解读
Jul 26 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
Sep 20 Javascript
js中url对象化管理分析
Dec 29 Javascript
vuejs中父子组件之间通信方法实例详解
Jan 17 Javascript
详解Typescript里的This的使用方法
Jan 08 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加密解密的代码
2006/10/09 PHP
php 执行系统命令的方法
2009/07/07 PHP
如何判断php数组的维度
2013/06/10 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
python 深度学习中的4种激活函数
2020/09/18 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
校园会短篇的广播稿
2014/10/21 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
Python制作春联的示例代码
2022/01/22 Python
python 详解turtle画爱心代码
2022/02/15 Python