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 解析后的xml对象的读取方法细解
Jul 25 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
Dec 26 Javascript
JS判断表单输入是否为空(示例代码)
Dec 23 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
Oct 23 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
Bootstrap Table 删除和批量删除
Sep 22 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 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版(1)
2006/10/09 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
python列表操作使用示例分享
2014/02/21 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
python代码实现图书管理系统
2020/11/30 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
简历中求职的个人自我评价
2013/12/03 职场文书
项目合作意向书范本
2014/04/01 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
家长通知书家长意见
2014/12/30 职场文书
学雷锋广播稿大全
2015/08/19 职场文书