[echarts]基础地图

实现基础地图,可以拖拽。

import React, { useEffect, useRef } from 'react';
import * as echarts from 'echarts';

import geoJson from './china.json';   //从网上down一下china.json

const Map = ({ mapDetails = [] }) => {  //mapDetails中有具体要点亮的地区信息,地名要跟china.json中对上
    const chartRef = useRef(null);

    useEffect(() => {
        if (chartRef.current) {
            echarts.registerMap('china', geoJson);
            const chartMap = echarts.init(chartRef.current);

            const option = {
                //这里如果注释的话就不会展示tooltip
                // tooltip: {
                //     trigger: 'item',
                //     alwaysShowContent: true,
                //     show: true,
                // },
                roam: true,
                geo: {
                    map: 'china',
                    zoom: 1.8,
                    center: [115.97, 29.71],  //地图的中心坐标
                    scaleLimit: {
                        min: 1,
                        max: 3
                    },
                    itemStyle: {
                        borderColor: "rgba(147, 235, 248, 1)",
                        areaColor: {
                            type: "radial",
                            x: 0.5,
                            y: 0.5,
                            r: 0.9,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: "rgba(17, 217, 245, 0.3)",
                                },
                                {
                                    offset: 1,
                                    color: "rgba(10, 209, 231, 0.02)",
                                },
                            ],
                            globalCoord: false,
                        },
                        borderWidth: 1,
                    },
                    emphasis: {  //鼠标到一个地区上面的样式展示
                        label: {
                            show: true,
                            color: "#ffffff",
                        },
                        itemStyle: {
                            areaColor: "#026aa9",
                            borderColor: "#fff",
                            borderWidth: 2,
                        },
                    },
                    regions: mapDetails.map(item => {
                        return {
                            name: item.province,
                            itemStyle: {
                                areaColor: '#2FBCEB',
                            },
                        }
                    }),
                    //本来想做一个鼠标到地区上面之后展示tooltip的样式,领导说要一直展示,但是tooltip每次只能展示一个,所以改用了label
                    tooltip: {  
                        show: false,
                        trigger: 'item',
                        alwaysShowContent: true,
                        formatter: function (params) {
                            const currentCity = mapDetails.find(item => item.province == params.name)
                            if (!!currentCity) {
                                return `${currentCity.province}: 在线${currentCity.online}台, 离线${currentCity.offline}`;
                            }
                        },
                        backgroundColor: '#13ADF2',
                        textStyle: {
                            color: '#fff',
                            fontSize: '0.8rem',
                        }
                    },
                    label: {
                        show: true,
                        color: '#fff',
                        fontSize: '0.8rem',
                        formatter: function (params) {
                            const currentCity = mapDetails.find(item => item.province == params.name)
                            if (!!currentCity) {
                                return `${currentCity.province}:在线${currentCity.online}台,离线${currentCity.offline}`;
                            } else {
                                return ''
                            }
                        },
                        offset: [110,0],
                        textStyle: {
                            color: '#fff',
                            fontSize: '0.8rem',
                        }
                    }
                }
            };

            chartMap.setOption(option);

            const handleResize = () => {
                chartMap.resize();
            };
            window.addEventListener('resize', handleResize);

            return () => {
                window.removeEventListener('resize', handleResize);
                chartMap.dispose();
            };
        }
    }, [mapDetails]);
    return (
        <>
            <div className={styles['card-content']}>
                <div style={{ width: '100%', height: '100%' }} ref={chartRef}></div>
            </div>
        </>
    )

}

export default Map;

Matlab基于粒子群优化算法及鲁棒MPPT控制器提高光伏并网的效率内容概要:本文围绕Matlab在电力系统优化与控制领域的应用展开,重点介绍了基于粒子群优化算法(PSO)和鲁棒MPPT控制器提升光伏并网效率的技术方案。通过Matlab代码实现,结合智能优化算法与先进控制策略,对光伏发电系统的最大功率点跟踪进行优化,有效提高了系统在不同光照条件下的能量转换效率和并网稳定性。同时,文档还涵盖了多种电力系统应用场景,如微电网调度、储能配置、鲁棒控制等,展示了Matlab在科研复现与工程仿真中的强大能力。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事新能源系统开发的工程师;尤其适合关注光伏并网技术、智能优化算法应用与MPPT控制策略研究的专业人士。; 使用场景及目标:①利用粒子群算法优化光伏系统MPPT控制器参数,提升动态响应速度与稳态精度;②研究鲁棒控制策略在光伏并网系统中的抗干扰能力;③复现已发表的高水平论文(如EI、SCI)中的仿真案例,支撑科研项目与学术写作。; 阅读建议:建议结合文中提供的Matlab代码与Simulink模型进行实践操作,重点关注算法实现细节与系统参数设置,同时参考链接中的完整资源下载以获取更多复现实例,加深对优化算法与控制系统设计的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值