@javascript_variable/react-native-yandex-mapkit
v0.2.0
Published
Yandex MapKit for React Native with New Architecture (Fabric + TurboModules)
Maintainers
Readme
react-native-yandex-mapkit
Нативная обёртка над Yandex MapKit для React Native 0.76+ с поддержкой New Architecture (Fabric + TurboModules).
Замена устаревшему react-native-yamap без legacy interop и patch-package.
Возможности
YaMap— карта (Fabric)Marker/Polygon— декларативные дочерние элементыGeocoder— HTTP Geocoder API (как в react-native-yamap)Suggest— нативные подсказки через MapKit Search- Команды ref:
setCenter,fitAllMarkers - События:
onMapPress,onMarkerPress,onCameraPositionChange,onCameraPositionChangeEnd
Требования
- React Native >= 0.76 (протестировано на 0.83)
- New Architecture включена (
newArchEnabled=true) - iOS 15.5+
- Android minSdk 26+
- Yandex MapKit 4.19.0-full
Установка
yarn add react-native-yandex-mapkit
# или из git:
# yarn add git+https://github.com/your-org/react-native-yandex-mapkit.git
# или локально:
# yarn add file:../react-native-yandex-mapkitiOS
В Podfile уже должен быть YandexMapsMobile (подтянется через podspec):
cd ios && pod installAndroid
Autolinking подхватит пакет автоматически. MapKit подтягивается из build.gradle библиотеки.
Инициализация
import YaMap, { Geocoder } from 'react-native-yandex-mapkit';
await YaMap.init('YOUR_MAPKIT_API_KEY');
Geocoder.init('YOUR_GEOCODER_API_KEY');Пример
import YaMap, { Marker, Polygon, Animation } from 'react-native-yandex-mapkit';
const mapRef = useRef(null);
<YaMap
ref={mapRef}
style={{ flex: 1 }}
initialRegion={{ lat: 53.9, lon: 27.56, zoom: 11 }}
showUserPosition
onMapPress={(e) => console.log(e.nativeEvent)}
>
<Marker
point={{ lat: 53.9, lon: 27.56 }}
source={require('./marker.png')}
onPress={() => {}}
/>
<Polygon
points={[{ lat: 53.91, lon: 27.55 }, /* ... */]}
strokeColor="#FF8732"
fillColor="rgba(255, 135, 50, 0.2)"
/>
</YaMap>
mapRef.current?.setCenter({ lat: 53.9, lon: 27.56 }, 14, 0, 0, 0.4, Animation.SMOOTH);Миграция с react-native-yamap
- Замените зависимость и импорты:
- import YaMap, { Marker, Geocoder } from 'react-native-yamap';
+ import YaMap, { Marker, Geocoder } from 'react-native-yandex-mapkit';Удалите
patch-packageпатчи для yamap и legacy interop вAppDelegate(RCTLegacyViewManagerInterop...).Пересоберите нативные проекты.
API совместим с основными сценариями BK: рестораны, адрес, зоны доставки.
Лицензия
MIT
