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中if语句的几种优化代码写法
Mar 12 Javascript
实现变速回到顶部的JavaScript代码
May 09 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
解决vue移动端适配问题
Dec 12 Javascript
express中static中间件的具体使用方法
Oct 17 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如何利用P3P实现跨域
2013/08/24 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
accesskey 提交
2006/06/26 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python实现文件的分割与合并
2019/08/29 Python
python的等深分箱实例
2019/11/22 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python代码区分大小写吗
2020/06/17 Python
浅析Python 序列化与反序列化
2020/08/05 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
企业给企业的表扬信
2014/01/13 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
素质教育培训心得体会
2016/01/19 职场文书
js实现上传图片到服务器
2021/04/11 Javascript