import { Fragment, useState, useRef } from "react"; import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; import { XMarkIcon } from "@heroicons/react/24/outline"; import { ChevronUpIcon, ChevronDownIcon, FunnelIcon, MinusIcon, PlusIcon, } from "@heroicons/react/20/solid"; import Map, { Layer, Source, Popup, ScaleControl } from "react-map-gl"; import mapstyle from "./points.json"; mapstyle.sources.remap.url = import.meta.env.MODE === "development" ? "http://localhost:8080/capabilities/remap.json" : mapstyle.sources.remap.url const MAPBOX_TOKEN = "pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2wzbHR0YW1sMXB0YjNkcXd5NWpqaWpybiJ9.jyLcIcB7NLbtZzGYIJZWWg"; const paintedLayers = mapstyle.layers.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}) const pointsColors = mapstyle.layers.find(layer => layer.id == "Объекты").paint["circle-color"].slice(2, -1).reduce((acc, cur, i, source) => (i % 2 == 0 ? [...acc, { name: cur, color: source[i + 1] }] : acc), []) const pointsSizes = mapstyle.layers.find(layer => layer.id == "Объекты").paint["circle-radius"].slice(3).reduce((acc, cur, i, source) => (i % 2 == 0 ? [...acc, { value: cur, size: source[i + 1] }] : acc), []) const initialFilters = [ { id: "id_tech", name: "ВИЭ-технология", options: [ { "value": 1, "label": "СЭС", "checked": true }, { "value": 2, "label": "ВЭС", "checked": true }, { "value": 3, "label": "мГЭС", "checked": true }, { "value": 4, "label": "БиоЭС (биомасса)", "checked": true }, { "value": 5, "label": "БиоЭС (биогаз)", "checked": true }, { "value": 6, "label": "БиоЭС (свалочный газ)", "checked": true }, { "value": 8, "label": "ПЭС", "checked": true }, { "value": 9, "label": "ГеоЭС", "checked": true } ] }, { "id": "region_name", "name": "Регион размещения", "options": [ { "value": "Республика Адыгея ", "label": "Республика Адыгея ", "checked": true }, { "value": "Республика Алтай", "label": "Республика Алтай", "checked": true }, { "value": "Республика Башкортостан", "label": "Республика Башкортостан", "checked": true }, { "value": "Республика Бурятия", "label": "Республика Бурятия", "checked": true }, { "value": "Республика Дагестан", "label": "Республика Дагестан", "checked": true }, { "value": "Республика Ингушетия", "label": "Республика Ингушетия", "checked": true }, { "value": "Кабардино-Балкарская Республика", "label": "Кабардино-Балкарская Республика", "checked": true }, { "value": "Республика Калмыкия", "label": "Республика Калмыкия", "checked": true }, { "value": "Карачаево-Черкесская Республика", "label": "Карачаево-Черкесская Республика", "checked": true }, { "value": "Республика Карелия", "label": "Республика Карелия", "checked": true }, { "value": "Республика Коми", "label": "Республика Коми", "checked": true }, { "value": "Республика Крым", "label": "Республика Крым", "checked": true }, { "value": "Республика Марий Эл", "label": "Республика Марий Эл", "checked": true }, { "value": "Республика Мордовия", "label": "Республика Мордовия", "checked": true }, { "value": "Республика Саха (Якутия)", "label": "Республика Саха (Якутия)", "checked": true }, { "value": "Республика Северная Осетия – Алания", "label": "Республика Северная Осетия – Алания", "checked": true }, { "value": "Республика Татарстан ", "label": "Республика Татарстан ", "checked": true }, { "value": "Республика Тыва", "label": "Республика Тыва", "checked": true }, { "value": "Удмуртская Республика", "label": "Удмуртская Республика", "checked": true }, { "value": "Республика Хакасия", "label": "Республика Хакасия", "checked": true }, { "value": "Чеченская Республика", "label": "Чеченская Республика", "checked": true }, { "value": "Чувашская Республика", "label": "Чувашская Республика", "checked": true }, { "value": "Алтайский край", "label": "Алтайский край", "checked": true }, { "value": "Забайкальский край", "label": "Забайкальский край", "checked": true }, { "value": "Камчатский край", "label": "Камчатский край", "checked": true }, { "value": "Краснодарский край", "label": "Краснодарский край", "checked": true }, { "value": "Красноярский край", "label": "Красноярский край", "checked": true }, { "value": "Пермский край", "label": "Пермский край", "checked": true }, { "value": "Приморский край", "label": "Приморский край", "checked": true }, { "value": "Ставропольский край", "label": "Ставропольский край", "checked": true }, { "value": "Хабаровский край", "label": "Хабаровский край", "checked": true }, { "value": "Амурская область", "label": "Амурская область", "checked": true }, { "value": "Архангельская область", "label": "Архангельская область", "checked": true }, { "value": "Астраханская область", "label": "Астраханская область", "checked": true }, { "value": "Белгородская область", "label": "Белгородская область", "checked": true }, { "value": "Брянская область", "label": "Брянская область", "checked": true }, { "value": "Владимирская область", "label": "Владимирская область", "checked": true }, { "value": "Волгоградская область", "label": "Волгоградская область", "checked": true }, { "value": "Вологодская область", "label": "Вологодская область", "checked": true }, { "value": "Воронежская область", "label": "Воронежская область", "checked": true }, { "value": "Ивановская область", "label": "Ивановская область", "checked": true }, { "value": "Иркутская область", "label": "Иркутская область", "checked": true }, { "value": "Калининградская область", "label": "Калининградская область", "checked": true }, { "value": "Калужская область", "label": "Калужская область", "checked": true }, { "value": "Кемеровская область", "label": "Кемеровская область", "checked": true }, { "value": "Кировская область", "label": "Кировская область", "checked": true }, { "value": "Костромская область", "label": "Костромская область", "checked": true }, { "value": "Курганская область", "label": "Курганская область", "checked": true }, { "value": "Курская область", "label": "Курская область", "checked": true }, { "value": "Ленинградская область", "label": "Ленинградская область", "checked": true }, { "value": "Липецкая область", "label": "Липецкая область", "checked": true }, { "value": "Магаданская область", "label": "Магаданская область", "checked": true }, { "value": "Московская область", "label": "Московская область", "checked": true }, { "value": "Мурманская область", "label": "Мурманская область", "checked": true }, { "value": "Нижегородская область", "label": "Нижегородская область", "checked": true }, { "value": "Новгородская область", "label": "Новгородская область", "checked": true }, { "value": "Новосибирская область", "label": "Новосибирская область", "checked": true }, { "value": "Омская область", "label": "Омская область", "checked": true }, { "value": "Оренбургская область", "label": "Оренбургская область", "checked": true }, { "value": "Орловская область", "label": "Орловская область", "checked": true }, { "value": "Пензенская область", "label": "Пензенская область", "checked": true }, { "value": "Псковская область", "label": "Псковская область", "checked": true }, { "value": "Ростовская область", "label": "Ростовская область", "checked": true }, { "value": "Рязанская область", "label": "Рязанская область", "checked": true }, { "value": "Самарская область", "label": "Самарская область", "checked": true }, { "value": "Саратовская область", "label": "Саратовская область", "checked": true }, { "value": "Сахалинская область", "label": "Сахалинская область", "checked": true }, { "value": "Свердловская область", "label": "Свердловская область", "checked": true }, { "value": "Смоленская область", "label": "Смоленская область", "checked": true }, { "value": "Тамбовская область", "label": "Тамбовская область", "checked": true }, { "value": "Тверская область", "label": "Тверская область", "checked": true }, { "value": "Томская область", "label": "Томская область", "checked": true }, { "value": "Тульская область", "label": "Тульская область", "checked": true }, { "value": "Тюменская область", "label": "Тюменская область", "checked": true }, { "value": "Ульяновская область", "label": "Ульяновская область", "checked": true }, { "value": "Челябинская область", "label": "Челябинская область", "checked": true }, { "value": "Ярославская область", "label": "Ярославская область", "checked": true }, { "value": "Город Москва", "label": "Город Москва", "checked": true }, { "value": "Город Санкт-Петербург", "label": "Город Санкт-Петербург", "checked": true }, { "value": "Город Севастополь", "label": "Город Севастополь", "checked": true }, { "value": "Еврейская автономная область", "label": "Еврейская автономная область", "checked": true }, { "value": "Ненецкий автономный округ", "label": "Ненецкий автономный округ", "checked": true }, { "value": "Ханты-Мансийский автономный округ – Югра", "label": "Ханты-Мансийский автономный округ – Югра", "checked": true }, { "value": "Чукотский автономный округ", "label": "Чукотский автономный округ", "checked": true }, { "value": "Ямало-Ненецкий автономный округ", "label": "Ямало-Ненецкий автономный округ", "checked": true } ] }, { "id": "id_support", "name": "Форма поддержки", "options": [ { "value": 1, "label": "ДПМ ВИЭ 1.0 (оптовый рынок)", "checked": true }, { "value": 2, "label": "ДПМ ВИЭ 2.0 (оптовый рынок)", "checked": true }, { "value": 3, "label": "Розничный рынок (с поддержкой)", "checked": true }, { "value": 4, "label": "Розничный рынок (без поддержки)", "checked": true }, { "value": 5, "label": "Оптовый рынок (без поддержки)", "checked": true }, { "value": 6, "label": "Собственная генерация промышленности", "checked": true }, { "value": 7, "label": "ВИЭ в изолированнных энергосистемах", "checked": true } ] }, { "id": "main_company_for_site", "name": "Компания-владелец", "options": [ { "value": "ООО \"Вершина Девелопмент\"", "label": "ООО \"Вершина Девелопмент\"", "checked": true }, { "value": "АО \"НоваВинд\"", "label": "АО \"НоваВинд\"", "checked": true }, { "value": "ООО \"Ветропарки ФРВ\"", "label": "ООО \"Ветропарки ФРВ\"", "checked": true }, { "value": "ПАО \"ТГК-1\"", "label": "ПАО \"ТГК-1\"", "checked": true }, { "value": "ООО \"Солар Системс\"", "label": "ООО \"Солар Системс\"", "checked": true }, { "value": "ГК \"Хевел\"", "label": "ГК \"Хевел\"", "checked": true }, { "value": "ПАО \"ЭЛ5-Энерго\"", "label": "ПАО \"ЭЛ5-Энерго\"", "checked": true }, { "value": "ПАО \"Форвард Энерго\"", "label": "ПАО \"Форвард Энерго\"", "checked": true }, { "value": "Другие", "label": "Другие", "checked": true } ] }, { "id": "year_commissioning_filter", "name": "Год ввода в эксплуатацию", "options": [ { "value": "1905-2009", "label": "1905-2009", "checked": true }, { "value": "2010", "label": "2010", "checked": true }, { "value": "2011", "label": "2011", "checked": true }, { "value": "2012", "label": "2012", "checked": true }, { "value": "2013", "label": "2013", "checked": true }, { "value": "2014", "label": "2014", "checked": true }, { "value": "2015", "label": "2015", "checked": true }, { "value": "2016", "label": "2016", "checked": true }, { "value": "2017", "label": "2017", "checked": true }, { "value": "2018", "label": "2018", "checked": true }, { "value": "2019", "label": "2019", "checked": true }, { "value": "2020", "label": "2020", "checked": true }, { "value": "2021", "label": "2021", "checked": true }, { "value": "2022", "label": "2022", "checked": true }, { "value": "2023", "label": "2023", "checked": true } ] } ] export default function Points({ mapOptions, onMapOptionClick }) { const mapRef = useRef(null); const [open, setOpen] = useState(false) const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); const [popupInfo, setPopupInfo] = useState(null); const [filters, setFilters] = useState(initialFilters); const generatePopup = (info) => { console.log(info) return (
| Установленная мощность | {info.power_fact_parc_mw.toFixed(2).replace(".", ",")} МВт |
|---|---|
| Год ввода в эксплуатацию | {info.year_commissioning} |
| Год квалификации | {info.year_qualification} |
| Механизм поддержки | {info.support_name} |
| Регион размещения | {info.region_name} |
| Район размещения | {[info.residence_area, info.settlement, info.natural_object].filter(item => item).join(", ")} |
| Владелец объекта | {info.current_owner_name && info.main_owner_company != info.current_owner_name ? `${info.current_owner_name} (${info.main_owner_company})` : info.main_owner_company} |
Ссылка на компанию: {info.company_link_rreda}
} {info.date_actualization &&Дата актуализации: {info.date_actualization}
}