@exterio/react-native-yamap-lite 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -57
- package/android/src/main/java/com/yamaplite/Events/CameraPositionChangeEvent.kt +2 -2
- package/android/src/main/java/com/yamaplite/Events/PressEvent.kt +2 -2
- package/ios/ClusteredYamapLiteView.mm +4 -0
- package/ios/YamapLiteCircleView.mm +4 -0
- package/ios/YamapLiteMarkerView.mm +4 -0
- package/ios/YamapLitePolygonView.mm +4 -0
- package/ios/YamapLitePolylineView.mm +4 -0
- package/ios/YamapLiteView.mm +4 -0
- package/ios/YamapUtils.mm +4 -0
- package/package.json +1 -1
- package/android/settings.gradle +0 -1
package/README.md
CHANGED
|
@@ -96,63 +96,6 @@ AppRegistry.registerComponent(appName, () => App);
|
|
|
96
96
|
> ℹ️ Android-зависимость MapKit (`com.yandex.android:maps.mobile`) уже входит в
|
|
97
97
|
> библиотеку — добавлять её в `android/app/build.gradle` вручную не нужно.
|
|
98
98
|
|
|
99
|
-
## Миграция с react-native-yamap
|
|
100
|
-
|
|
101
|
-
Это **не форк** [`react-native-yamap`](https://github.com/volga-volga/react-native-yamap) (volga-volga) — нативная часть написана с нуля на Swift и Kotlin под Fabric. Но публичный JS-API я старался держать максимально совместимым, чтобы переезд был как можно ближе к «поменять импорт». Для большинства проектов, использующих карту, маркеры и оверлеи, миграция сводится к нескольким правкам.
|
|
102
|
-
|
|
103
|
-
### Что совместимо
|
|
104
|
-
|
|
105
|
-
Компоненты и их основные пропсы совпадают по именам и форме данных:
|
|
106
|
-
|
|
107
|
-
| Сущность | react-native-yamap | react-native-yamap-lite |
|
|
108
|
-
|--|--|--|
|
|
109
|
-
| Карта | `YaMap` (default + named) | ✅ так же |
|
|
110
|
-
| Примитивы | `Marker`, `Circle`, `Polygon`, `Polyline` | ✅ так же |
|
|
111
|
-
| Кластеры | `ClusteredYamap` | ✅ так же |
|
|
112
|
-
| Координата | `{ lat, lon }` (`Point`) | ✅ так же |
|
|
113
|
-
| Управление камерой | `setCenter`, `setZoom`, `fitAllMarkers` (через `ref`) | ✅ так же |
|
|
114
|
-
|
|
115
|
-
```diff
|
|
116
|
-
- import YaMap, { Marker, Circle } from 'react-native-yamap';
|
|
117
|
-
+ import YaMap, { Marker, Circle } from '@exterio/react-native-yamap-lite';
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Что изменилось
|
|
121
|
-
|
|
122
|
-
- **Инициализация.** Вместо статического `YaMap.init(apiKey)` / `YaMap.setLocale(...)` используйте модуль `YamapUtils`:
|
|
123
|
-
|
|
124
|
-
```diff
|
|
125
|
-
- import YaMap from 'react-native-yamap';
|
|
126
|
-
- YaMap.init('YOUR_API_KEY');
|
|
127
|
-
- YaMap.setLocale('ru_RU');
|
|
128
|
-
+ import { YamapUtils } from '@exterio/react-native-yamap-lite';
|
|
129
|
-
+ await YamapUtils.init('YOUR_API_KEY');
|
|
130
|
-
+ YamapUtils.setLocale('ru_RU');
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
- **`getCameraPosition` возвращает `Promise`**, а не принимает колбэк:
|
|
134
|
-
|
|
135
|
-
```diff
|
|
136
|
-
- mapRef.current.getCameraPosition((pos) => console.log(pos));
|
|
137
|
-
+ const pos = await mapRef.current.getCameraPosition();
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Аналогично промисы возвращают `getVisibleRegion`, `getScreenPoints`, `getWorldPoints`. Для совместимости со старым событийным стилем оставлены колбэк-пропсы `onCameraPositionReceived`, `onVisibleRegionReceived`, `onWorldToScreenPointsReceived`, `onScreenToWorldPointsReceived`.
|
|
141
|
-
|
|
142
|
-
- **Только новая архитектура.** Библиотека работает исключительно на Fabric + TurboModules. Если проект ещё на старой архитектуре — нужно сначала включить New Architecture.
|
|
143
|
-
|
|
144
|
-
### Чего нет (ограничения lite SDK)
|
|
145
|
-
|
|
146
|
-
Библиотека построена на **MapKit Lite**, поэтому всё, что связано с сетевыми сервисами Яндекса, в неё не входит:
|
|
147
|
-
|
|
148
|
-
- ❌ **Маршруты** (`findRoutes` / `findMasstransitRoutes` / `findDrivingRoutes` и компоненты маршрутов)
|
|
149
|
-
- ❌ **Геокодер, поиск и подсказки** (`Suggest`, поиск по адресу)
|
|
150
|
-
- ❌ **Слой пробок** — `setTrafficVisible(visible)` оставлен как no-op для совместимости
|
|
151
|
-
- ⚠️ **`fitMarkers(markers)`** — это алиас для `fitAllMarkers()`: lite SDK не умеет нацеливаться на конкретные маркеры
|
|
152
|
-
- ⚠️ **`marker.animatedMoveTo()` / `animatedRotateTo()`** не поддерживаются — обновляйте проп `point` маркера вместо императивной анимации
|
|
153
|
-
|
|
154
|
-
Если проект использует маршрутизацию, геокодер или поиск — этот пакет их не заменит, тут нужен полноценный `react-native-yamap`.
|
|
155
|
-
|
|
156
99
|
## Использование
|
|
157
100
|
|
|
158
101
|
### Базовый пример
|
|
@@ -9,13 +9,13 @@ import com.yandex.mapkit.map.CameraUpdateReason
|
|
|
9
9
|
class CameraPositionChangeEvent(
|
|
10
10
|
surfaceId: Int,
|
|
11
11
|
viewTag: Int,
|
|
12
|
-
private val
|
|
12
|
+
private val name: String,
|
|
13
13
|
private val cameraPosition: CameraPosition,
|
|
14
14
|
private val reason: CameraUpdateReason,
|
|
15
15
|
private val finished: Boolean,
|
|
16
16
|
) : Event<CameraPositionChangeEvent>(surfaceId, viewTag) {
|
|
17
17
|
|
|
18
|
-
override fun getEventName(): String =
|
|
18
|
+
override fun getEventName(): String = name
|
|
19
19
|
|
|
20
20
|
override fun getEventData(): WritableMap =
|
|
21
21
|
Arguments.createMap().apply {
|
|
@@ -8,11 +8,11 @@ import com.yandex.mapkit.geometry.Point
|
|
|
8
8
|
class PressEvent(
|
|
9
9
|
surfaceId: Int,
|
|
10
10
|
viewTag: Int,
|
|
11
|
-
private val
|
|
11
|
+
private val name: String,
|
|
12
12
|
private val point: Point,
|
|
13
13
|
) : Event<PressEvent>(surfaceId, viewTag) {
|
|
14
14
|
|
|
15
|
-
override fun getEventName(): String =
|
|
15
|
+
override fun getEventName(): String = name
|
|
16
16
|
|
|
17
17
|
override fun getEventData(): WritableMap =
|
|
18
18
|
Arguments.createMap().apply {
|
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
#import <react/renderer/components/YamapLiteViewSpec/RCTComponentViewHelpers.h>
|
|
18
18
|
|
|
19
19
|
#import "RCTFabricComponentsPlugins.h"
|
|
20
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
21
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
22
|
+
#else
|
|
20
23
|
#import "YamapLite-Swift.h"
|
|
24
|
+
#endif
|
|
21
25
|
#import <YandexMapsMobile/YMKMapKitFactory.h>
|
|
22
26
|
|
|
23
27
|
using namespace facebook::react;
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
#import <react/renderer/graphics/Color.h>
|
|
14
14
|
|
|
15
15
|
#import "RCTFabricComponentsPlugins.h"
|
|
16
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
17
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
18
|
+
#else
|
|
16
19
|
#import "YamapLite-Swift.h"
|
|
20
|
+
#endif
|
|
17
21
|
|
|
18
22
|
using namespace facebook::react;
|
|
19
23
|
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
#import <React/RCTConversions.h>
|
|
9
9
|
|
|
10
10
|
#import "RCTFabricComponentsPlugins.h"
|
|
11
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
12
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
13
|
+
#else
|
|
11
14
|
#import "YamapLite-Swift.h"
|
|
15
|
+
#endif
|
|
12
16
|
#import <react/renderer/components/YamapLiteViewSpec/ComponentDescriptors.h>
|
|
13
17
|
#import <react/renderer/components/YamapLiteViewSpec/EventEmitters.h>
|
|
14
18
|
#import <react/renderer/components/YamapLiteViewSpec/Props.h>
|
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
|
|
15
15
|
#import "RCTFabricComponentsPlugins.h"
|
|
16
16
|
#import "Utils/PointsEqual.h"
|
|
17
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
18
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
19
|
+
#else
|
|
17
20
|
#import "YamapLite-Swift.h"
|
|
21
|
+
#endif
|
|
18
22
|
#import <YandexMapsMobile/YMKMapKitFactory.h>
|
|
19
23
|
|
|
20
24
|
using namespace facebook::react;
|
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
|
|
15
15
|
#import "RCTFabricComponentsPlugins.h"
|
|
16
16
|
#import "Utils/PointsEqual.h"
|
|
17
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
18
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
19
|
+
#else
|
|
17
20
|
#import "YamapLite-Swift.h"
|
|
21
|
+
#endif
|
|
18
22
|
#import <YandexMapsMobile/YMKMapKitFactory.h>
|
|
19
23
|
|
|
20
24
|
using namespace facebook::react;
|
package/ios/YamapLiteView.mm
CHANGED
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
#import <react/renderer/components/YamapLiteViewSpec/RCTComponentViewHelpers.h>
|
|
18
18
|
|
|
19
19
|
#import "RCTFabricComponentsPlugins.h"
|
|
20
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
21
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
22
|
+
#else
|
|
20
23
|
#import "YamapLite-Swift.h"
|
|
24
|
+
#endif
|
|
21
25
|
|
|
22
26
|
using namespace facebook::react;
|
|
23
27
|
|
package/ios/YamapUtils.mm
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
#import <React/RCTBridge.h>
|
|
9
9
|
#import <React/RCTUIManager.h>
|
|
10
10
|
|
|
11
|
+
#if __has_include("YamapLite/YamapLite-Swift.h")
|
|
12
|
+
#import "YamapLite/YamapLite-Swift.h"
|
|
13
|
+
#else
|
|
11
14
|
#import "YamapLite-Swift.h"
|
|
15
|
+
#endif
|
|
12
16
|
#import <YandexMapsMobile/YMKMapKitFactory.h>
|
|
13
17
|
#import <YandexMapsMobile/YRTI18nManager.h>
|
|
14
18
|
|
package/package.json
CHANGED
package/android/settings.gradle
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rootProject.name = 'react-native-yamap-lite'
|