Задать вопрос

Как рендерить много объектов в яндекс картах(yandex maps) next.js?

Когда пытаюсь рендерить данные сайт просто зависает. объектов много около 10000. Как можно оптимизировать рендеринг такого количество объектов, что бы сайт не зависал и прогружался быстрее?
Код выглядит таким образом:

"use client";

import {Map, Placemark, YMaps} from '@pbe/react-yandex-maps';
import {useState} from 'react'

import {useQuery} from "@tanstack/react-query";
import {getApzs} from "@/app/(main)/page";
import {APZ} from "@/types/APZ";

const MapBox = () => {
    const {data,  isFetching} = useQuery({
        queryKey: ['posts'],
        queryFn: getApzs,
        initialData: [],
    })

    const [center, setCenter] = useState<number[]>([41.323829, 69.255752]);


    const handleBoundsChange = (event: any): void => {
        const newCenter = event.get('newCenter');
        setCenter(newCenter);
    };


    return (

        <>
            {isFetching ? <p>Loadinng...</p>
                :
                <YMaps>
                    <Map className="w-full h-full"
                         state={{center: center, zoom: 12}}
                         onBoundsChange={handleBoundsChange}
                    >
                        {
                            data.result.data.map((el: APZ) => (
                                <Placemark
                                    key={el.id}
                                    onClick={() => {
                                        alert("Вы нажали метку " + (1));
                                    }}
                                    geometry={[41.323829, 69.255752]}
                                    options={{
                                        iconLayout: 'default#image',
                                        iconImageHref: "/img/metro.svg",
                                        iconImageSize: [50, 50],
                                    }}
                                />
                            ))
                        }
                    </Map>
                </YMaps>
            }
        </>
    );
};

export default MapBox;


Спасибо!
  • Вопрос задан
  • 459 просмотров
Подписаться 2 Средний 6 комментариев
Решения вопроса 1
@Jumaniyozov Автор вопроса
Ответом оказался использование Object Manager в Yandex Maps Api
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы