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 相关文章推荐
Javascript document.referrer判断访客来源网址
May 15 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
jQuery Ajax中的事件详细介绍
Apr 16 Javascript
jQuery验证插件validation使用指南
Apr 21 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
解决vue中provide inject的响应式监听
Apr 19 Vue.js
如何手动实现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的几个常用数字判断函数代码
2012/04/24 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
vue实现图片懒加载的方法分析
2020/02/05 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
python黑魔法之参数传递
2016/02/12 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python机器学习实现决策树
2019/11/11 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
应用服务器有那些
2012/01/19 面试题
职业生涯规划书基本格式
2014/01/06 职场文书
教师产假请假条
2014/04/10 职场文书
应急处置方案
2014/06/16 职场文书
写得不错的求职信范文
2014/07/11 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android