Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Как выполнить fitAllMarkers() и fitMarkers() при инициализации карты? #268

Open
seregafanman91 opened this issue Nov 10, 2023 · 1 comment

Comments

@seregafanman91
Copy link

Здравствуйте. Спасибо за библиотеку.

У меня проблема с методами fitAllMarkers() и fitMarkers().
Я хочу при инициализации карты установить несколько маркеров и подобрать положение камеры, чтобы вместить указанные маркеры на ней.

Я использую для этого методы fitAllMarkers() и fitMarkers() внутри метода жизненного цикла useEffect при монтировании компонента с моей картой.

export const PlacesMap: FC<Props> = ({ city, style }) => {
  const { places } = city;

  const mapRef = useRef<YaMap>(null);

  useEffect(() => {
    mapRef.current?.fitAllMarkers();
  }, []);

  return (
    <YaMap style={style} ref={mapRef}>
      {places.map((place) => (
        <Marker key={place.id} point={{ lat: place.lat, lon: place.lon }} />
      ))}
    </YaMap>
  );
};

С одним маркером этот код работает отлично но если маркеров больше то происходит ошибка:

image

Можно переписать код и использовать эти методы внутри onMapLoaded но тогда происходит эффект с отображением полной карты и затем анимировананное позиционирование к нужным координатам на карте. Это создает неприятный пользовательский опыт.

Кто то сталкивался с такой проблемой? Есть ли решения?

@ProSysYo
Copy link

ProSysYo commented Nov 18, 2023

Снимок экрана 2023-11-18 в 19 03 10

Не помню нужен ли первый useEffect, ваш случай useEffect который ниже

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants