Перейти к основному содержимому

Быстрый старт

@pbe/react-yandex-maps — это обертка для API Яндекс.Карт, которая позволяет отображать карты Яндекса в вашем React приложении с минимальными усилиями 🎉

Установка

Используйте npm/yarn для установки библиотеки из npm:

Через npm:

npm install --save @pbe/react-yandex-maps

Через yarn:

yarn add @pbe/react-yandex-maps

Добавляем карту в приложение

Добавление карт в приложение можно разделить на два этапа.

Во-первых, мы добавим компонент провайдера, который будет обрабатывать загрузку API Яндекс.Карт и предоставлять его любому интересующему компоненту на странице. Обычно вы не хотите иметь несколько провайдеров на одной странице. Хорошее место для размещения вашего провайдера, может быть в верхней части вашего приложения:

import { YMaps } from '@pbe/react-yandex-maps';

const App = () => (
<YMaps>
<div>My awesome application with maps!</div>
</YMaps>
);

Затем добавьте компонент Map с желаемым состоянием где-нибудь на странице:

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

const App = () => (
<YMaps>
<div>
My awesome application with maps!
<Map defaultState={{ center: [55.75, 37.57], zoom: 9 }} />
</div>
</YMaps>
);

Вот и все! Теперь, как только API Яндекс.Карт загружается YMaps компонентом провайдера, Map компонент будет отображать ymaps.Map объект на странице.

Прежде чем вы начнете экспериментировать с библиотекой, я настоятельно рекомендую быстро просмотреть раздел "Что поддерживается?" и "Основные принципы"

Что поддерживается?

Эта библиотека представляет собой тонкую обертку над API Яндекс.Карт, многие объекты и функции API Яндекс.Карт поддерживаются компонентами React, но не все и не все их возможности.

Поддерживаемые возможности

  • Изменение запроса API Яндекс.Карт через YMaps компонент провайдера
  • Получение доступа к API Яндекс.Карт в ваших компонентах через withYMaps HOC
  • Точечная загрузка необходимых модулей API с API модулей Яндекс.Карт
  • Контролируемые и неконтролируемые компоненты для каждого поддерживаемого объекта
  • Корпоративный API через YMaps query проп

Контролируемые компоненты не 100% контролируемые, так как нет возможностей остановить обновление объектов Яндекс.Карты. Поэтому, при использовании контролируемых компонентов, вы должны держать в голове, что state/properties/options и объекты Яндекс.Карты могут быть не синхронизированны.

MapObjects

Map, Panorama

GeoObjects

GeoObject, Placemark, Polyline, Rectangle, Polygon, Circle, Clusterer, ObjectManager

Controls

Button, FullscreenControl, GeolocationControl, ListBox, ListBoxItem, RouteButton, RouteEditor, RoutePanel, RulerControl, SearchControl, TrafficControl, TypeSelector, ZoomControl

Что не поддерживается?

Отрисовка React DOM нод для Яндекс.Карты фабрики шаблонов, не поддерживается (т.е. вы не можете визуализировать содержимое балуна с помощью этой библиотеки), смотри FAQ для больше информации.