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 写的简单进度条控件
Jan 22 Javascript
JavaScript中的View-Model使用介绍
Aug 11 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
May 03 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
node.js中的fs.utimes方法使用说明
Dec 15 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
广告显示判断
2006/08/31 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python入门之基础语法学习笔记
2020/02/08 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
乡镇精神文明建设汇报材料
2014/08/15 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
总结Python连接CS2000的详细步骤
2021/06/23 Python
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技