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 相关文章推荐
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Feb 09 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
Jun 23 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
jQuery回调函数的定义及用法实例
Dec 23 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
Apr 21 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
Jul 31 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 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 变量未定义等错误的解决方法
2011/01/12 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
javascript函数库-集合框架
2007/04/27 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
JavaScript闭包详解
2015/02/02 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
Python查找第n个子串的技巧分享
2018/06/27 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
简单了解django索引的相关知识
2019/07/17 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
python with语句的原理与用法详解
2020/03/30 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
文秘求职信范文
2014/04/10 职场文书
2014年三万活动总结
2014/04/26 职场文书
关于教师节的广播稿
2014/09/10 职场文书
公司宣传语大全
2015/07/13 职场文书
企业团队精神心得体会
2016/01/19 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
如何用python清洗文件中的数据
2021/06/18 Python