@lugg/maps 0.2.0-alpha.24 → 0.2.0-alpha.26
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/android/src/main/java/com/luggmaps/LuggMapView.kt +17 -10
- package/android/src/main/java/com/luggmaps/LuggMapViewManager.kt +20 -8
- package/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt +28 -21
- package/android/src/main/java/com/luggmaps/core/MapProviderDelegate.kt +6 -5
- package/ios/LuggMapView.mm +31 -32
- package/ios/core/AppleMapProvider.mm +24 -19
- package/ios/core/GoogleMapProvider.mm +27 -15
- package/ios/core/MapProviderDelegate.h +7 -6
- package/lib/module/MapView.js +6 -4
- package/lib/module/MapView.js.map +1 -1
- package/lib/module/MapView.web.js +18 -18
- package/lib/module/MapView.web.js.map +1 -1
- package/lib/module/fabric/LuggMapViewNativeComponent.ts +6 -5
- package/lib/typescript/src/MapView.d.ts.map +1 -1
- package/lib/typescript/src/MapView.types.d.ts +9 -5
- package/lib/typescript/src/MapView.types.d.ts.map +1 -1
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts +3 -2
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/MapView.tsx +6 -4
- package/src/MapView.types.ts +9 -5
- package/src/MapView.web.tsx +22 -22
- package/src/fabric/LuggMapViewNativeComponent.ts +6 -5
|
@@ -50,9 +50,10 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
50
50
|
private var rotateEnabled: Boolean = true
|
|
51
51
|
private var pitchEnabled: Boolean = true
|
|
52
52
|
private var userLocationEnabled: Boolean = false
|
|
53
|
+
private var myLocationButtonEnabled: Boolean = false
|
|
53
54
|
private var minZoom: Double? = null
|
|
54
55
|
private var maxZoom: Double? = null
|
|
55
|
-
private var
|
|
56
|
+
private var edgeInsets: EdgeInsets = EdgeInsets()
|
|
56
57
|
|
|
57
58
|
// region View Lifecycle
|
|
58
59
|
|
|
@@ -147,10 +148,11 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
147
148
|
provider?.setRotateEnabled(rotateEnabled)
|
|
148
149
|
provider?.setPitchEnabled(pitchEnabled)
|
|
149
150
|
provider?.setUserLocationEnabled(userLocationEnabled)
|
|
151
|
+
provider?.setMyLocationButtonEnabled(myLocationButtonEnabled)
|
|
150
152
|
provider?.setTheme(theme)
|
|
151
153
|
minZoom?.let { provider?.setMinZoom(it) }
|
|
152
154
|
maxZoom?.let { provider?.setMaxZoom(it) }
|
|
153
|
-
provider?.
|
|
155
|
+
provider?.setEdgeInsets(edgeInsets)
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
fun setProvider(value: String?) {
|
|
@@ -198,6 +200,11 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
198
200
|
provider?.setUserLocationEnabled(enabled)
|
|
199
201
|
}
|
|
200
202
|
|
|
203
|
+
fun setMyLocationButtonEnabled(enabled: Boolean) {
|
|
204
|
+
myLocationButtonEnabled = enabled
|
|
205
|
+
provider?.setMyLocationButtonEnabled(enabled)
|
|
206
|
+
}
|
|
207
|
+
|
|
201
208
|
fun setMinZoom(zoom: Double) {
|
|
202
209
|
minZoom = zoom
|
|
203
210
|
provider?.setMinZoom(zoom)
|
|
@@ -213,9 +220,9 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
213
220
|
provider?.setTheme(value)
|
|
214
221
|
}
|
|
215
222
|
|
|
216
|
-
fun
|
|
217
|
-
|
|
218
|
-
provider?.
|
|
223
|
+
fun setEdgeInsets(top: Int, left: Int, bottom: Int, right: Int) {
|
|
224
|
+
edgeInsets = EdgeInsets(top, left, bottom, right)
|
|
225
|
+
provider?.setEdgeInsets(edgeInsets)
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
// endregion
|
|
@@ -228,13 +235,13 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
228
235
|
|
|
229
236
|
fun fitCoordinates(
|
|
230
237
|
coordinates: List<LatLng>,
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
238
|
+
edgeInsetsTop: Int,
|
|
239
|
+
edgeInsetsLeft: Int,
|
|
240
|
+
edgeInsetsBottom: Int,
|
|
241
|
+
edgeInsetsRight: Int,
|
|
235
242
|
duration: Int
|
|
236
243
|
) {
|
|
237
|
-
provider?.fitCoordinates(coordinates,
|
|
244
|
+
provider?.fitCoordinates(coordinates, edgeInsetsTop, edgeInsetsLeft, edgeInsetsBottom, edgeInsetsRight, duration)
|
|
238
245
|
}
|
|
239
246
|
|
|
240
247
|
// endregion
|
|
@@ -113,6 +113,11 @@ class LuggMapViewManager :
|
|
|
113
113
|
view.setUserLocationEnabled(value)
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
@ReactProp(name = "myLocationButtonEnabled", defaultBoolean = false)
|
|
117
|
+
override fun setMyLocationButtonEnabled(view: LuggMapView, value: Boolean) {
|
|
118
|
+
view.setMyLocationButtonEnabled(value)
|
|
119
|
+
}
|
|
120
|
+
|
|
116
121
|
@ReactProp(name = "minZoom")
|
|
117
122
|
override fun setMinZoom(view: LuggMapView, value: Double) {
|
|
118
123
|
view.setMinZoom(value)
|
|
@@ -128,14 +133,14 @@ class LuggMapViewManager :
|
|
|
128
133
|
view.setTheme(value ?: "system")
|
|
129
134
|
}
|
|
130
135
|
|
|
131
|
-
@ReactProp(name = "
|
|
132
|
-
override fun
|
|
136
|
+
@ReactProp(name = "edgeInsets")
|
|
137
|
+
override fun setEdgeInsets(view: LuggMapView, value: ReadableMap?) {
|
|
133
138
|
value?.let {
|
|
134
139
|
val top = if (it.hasKey("top")) it.getDouble("top").toFloat().dpToPx().toInt() else 0
|
|
135
140
|
val left = if (it.hasKey("left")) it.getDouble("left").toFloat().dpToPx().toInt() else 0
|
|
136
141
|
val bottom = if (it.hasKey("bottom")) it.getDouble("bottom").toFloat().dpToPx().toInt() else 0
|
|
137
142
|
val right = if (it.hasKey("right")) it.getDouble("right").toFloat().dpToPx().toInt() else 0
|
|
138
|
-
view.
|
|
143
|
+
view.setEdgeInsets(top, left, bottom, right)
|
|
139
144
|
}
|
|
140
145
|
}
|
|
141
146
|
|
|
@@ -157,10 +162,10 @@ class LuggMapViewManager :
|
|
|
157
162
|
override fun fitCoordinates(
|
|
158
163
|
view: LuggMapView,
|
|
159
164
|
coordinates: ReadableArray?,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
edgeInsetsTop: Double,
|
|
166
|
+
edgeInsetsLeft: Double,
|
|
167
|
+
edgeInsetsBottom: Double,
|
|
168
|
+
edgeInsetsRight: Double,
|
|
164
169
|
duration: Double
|
|
165
170
|
) {
|
|
166
171
|
val coords = mutableListOf<LatLng>()
|
|
@@ -172,7 +177,14 @@ class LuggMapViewManager :
|
|
|
172
177
|
coords.add(LatLng(lat, lng))
|
|
173
178
|
}
|
|
174
179
|
}
|
|
175
|
-
view.fitCoordinates(
|
|
180
|
+
view.fitCoordinates(
|
|
181
|
+
coords,
|
|
182
|
+
edgeInsetsTop.toInt(),
|
|
183
|
+
edgeInsetsLeft.toInt(),
|
|
184
|
+
edgeInsetsBottom.toInt(),
|
|
185
|
+
edgeInsetsRight.toInt(),
|
|
186
|
+
duration.toInt()
|
|
187
|
+
)
|
|
176
188
|
}
|
|
177
189
|
|
|
178
190
|
companion object {
|
|
@@ -53,6 +53,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
53
53
|
private var rotateEnabled: Boolean = true
|
|
54
54
|
private var pitchEnabled: Boolean = true
|
|
55
55
|
private var userLocationEnabled: Boolean = false
|
|
56
|
+
private var myLocationButtonEnabled: Boolean = false
|
|
56
57
|
|
|
57
58
|
// Zoom limits
|
|
58
59
|
private var minZoom: Float? = null
|
|
@@ -61,8 +62,8 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
61
62
|
// Theme
|
|
62
63
|
private var theme: String = "system"
|
|
63
64
|
|
|
64
|
-
//
|
|
65
|
-
private var
|
|
65
|
+
// Edge Insets
|
|
66
|
+
private var edgeInsets: EdgeInsets = EdgeInsets()
|
|
66
67
|
|
|
67
68
|
// region MapProvider
|
|
68
69
|
|
|
@@ -108,7 +109,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
108
109
|
|
|
109
110
|
applyUiSettings()
|
|
110
111
|
applyZoomLimits()
|
|
111
|
-
|
|
112
|
+
applyEdgeInsets()
|
|
112
113
|
applyTheme()
|
|
113
114
|
applyUserLocation()
|
|
114
115
|
processPendingMarkers()
|
|
@@ -180,6 +181,11 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
180
181
|
googleMap?.isMyLocationEnabled = userLocationEnabled && hasPermission
|
|
181
182
|
}
|
|
182
183
|
|
|
184
|
+
override fun setMyLocationButtonEnabled(enabled: Boolean) {
|
|
185
|
+
myLocationButtonEnabled = enabled
|
|
186
|
+
googleMap?.uiSettings?.isMyLocationButtonEnabled = enabled
|
|
187
|
+
}
|
|
188
|
+
|
|
183
189
|
override fun setTheme(value: String) {
|
|
184
190
|
theme = value
|
|
185
191
|
applyTheme()
|
|
@@ -199,9 +205,9 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
199
205
|
}
|
|
200
206
|
}
|
|
201
207
|
|
|
202
|
-
override fun
|
|
203
|
-
this.
|
|
204
|
-
|
|
208
|
+
override fun setEdgeInsets(edgeInsets: EdgeInsets) {
|
|
209
|
+
this.edgeInsets = edgeInsets
|
|
210
|
+
applyEdgeInsets()
|
|
205
211
|
}
|
|
206
212
|
|
|
207
213
|
// endregion
|
|
@@ -397,10 +403,10 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
397
403
|
|
|
398
404
|
override fun fitCoordinates(
|
|
399
405
|
coordinates: List<Any>,
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
406
|
+
edgeInsetsTop: Int,
|
|
407
|
+
edgeInsetsLeft: Int,
|
|
408
|
+
edgeInsetsBottom: Int,
|
|
409
|
+
edgeInsetsRight: Int,
|
|
404
410
|
duration: Int
|
|
405
411
|
) {
|
|
406
412
|
val map = googleMap ?: return
|
|
@@ -413,16 +419,16 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
413
419
|
latLngs.forEach { boundsBuilder.include(it) }
|
|
414
420
|
val bounds = boundsBuilder.build()
|
|
415
421
|
|
|
416
|
-
val top =
|
|
417
|
-
val left =
|
|
418
|
-
val bottom =
|
|
419
|
-
val right =
|
|
422
|
+
val top = edgeInsetsTop.toFloat().dpToPx().toInt()
|
|
423
|
+
val left = edgeInsetsLeft.toFloat().dpToPx().toInt()
|
|
424
|
+
val bottom = edgeInsetsBottom.toFloat().dpToPx().toInt()
|
|
425
|
+
val right = edgeInsetsRight.toFloat().dpToPx().toInt()
|
|
420
426
|
|
|
421
427
|
map.setPadding(
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
428
|
+
edgeInsets.left + left,
|
|
429
|
+
edgeInsets.top + top,
|
|
430
|
+
edgeInsets.right + right,
|
|
431
|
+
edgeInsets.bottom + bottom
|
|
426
432
|
)
|
|
427
433
|
|
|
428
434
|
val cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 0)
|
|
@@ -433,7 +439,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
433
439
|
else -> map.moveCamera(cameraUpdate)
|
|
434
440
|
}
|
|
435
441
|
|
|
436
|
-
map.setPadding(
|
|
442
|
+
map.setPadding(edgeInsets.left, edgeInsets.top, edgeInsets.right, edgeInsets.bottom)
|
|
437
443
|
}
|
|
438
444
|
|
|
439
445
|
// endregion
|
|
@@ -456,8 +462,8 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
456
462
|
}
|
|
457
463
|
}
|
|
458
464
|
|
|
459
|
-
private fun
|
|
460
|
-
googleMap?.setPadding(
|
|
465
|
+
private fun applyEdgeInsets() {
|
|
466
|
+
googleMap?.setPadding(edgeInsets.left, edgeInsets.top, edgeInsets.right, edgeInsets.bottom)
|
|
461
467
|
}
|
|
462
468
|
|
|
463
469
|
private fun applyTheme() {
|
|
@@ -478,6 +484,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
478
484
|
context.checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
|
|
479
485
|
android.content.pm.PackageManager.PERMISSION_GRANTED
|
|
480
486
|
googleMap?.isMyLocationEnabled = userLocationEnabled && hasPermission
|
|
487
|
+
googleMap?.uiSettings?.isMyLocationButtonEnabled = myLocationButtonEnabled
|
|
481
488
|
}
|
|
482
489
|
|
|
483
490
|
// endregion
|
|
@@ -25,10 +25,11 @@ interface MapProvider {
|
|
|
25
25
|
fun setRotateEnabled(enabled: Boolean)
|
|
26
26
|
fun setPitchEnabled(enabled: Boolean)
|
|
27
27
|
fun setUserLocationEnabled(enabled: Boolean)
|
|
28
|
+
fun setMyLocationButtonEnabled(enabled: Boolean)
|
|
28
29
|
fun setTheme(value: String)
|
|
29
30
|
fun setMinZoom(zoom: Double)
|
|
30
31
|
fun setMaxZoom(zoom: Double)
|
|
31
|
-
fun
|
|
32
|
+
fun setEdgeInsets(edgeInsets: EdgeInsets)
|
|
32
33
|
|
|
33
34
|
// Children
|
|
34
35
|
fun addMarkerView(markerView: LuggMarkerView)
|
|
@@ -44,10 +45,10 @@ interface MapProvider {
|
|
|
44
45
|
fun moveCamera(latitude: Double, longitude: Double, zoom: Double, duration: Int)
|
|
45
46
|
fun fitCoordinates(
|
|
46
47
|
coordinates: List<Any>,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
edgeInsetsTop: Int,
|
|
49
|
+
edgeInsetsLeft: Int,
|
|
50
|
+
edgeInsetsBottom: Int,
|
|
51
|
+
edgeInsetsRight: Int,
|
|
51
52
|
duration: Int
|
|
52
53
|
)
|
|
53
54
|
}
|
package/ios/LuggMapView.mm
CHANGED
|
@@ -34,10 +34,11 @@ using namespace luggmaps::events;
|
|
|
34
34
|
BOOL _rotateEnabled;
|
|
35
35
|
BOOL _pitchEnabled;
|
|
36
36
|
BOOL _userLocationEnabled;
|
|
37
|
-
|
|
37
|
+
LuggMapViewTheme _theme;
|
|
38
38
|
double _minZoom;
|
|
39
39
|
double _maxZoom;
|
|
40
|
-
UIEdgeInsets
|
|
40
|
+
UIEdgeInsets _edgeInsets;
|
|
41
|
+
UIEdgeInsets _oldEdgeInsets;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
+ (ComponentDescriptorProvider)componentDescriptorProvider {
|
|
@@ -57,8 +58,8 @@ using namespace luggmaps::events;
|
|
|
57
58
|
_rotateEnabled = YES;
|
|
58
59
|
_pitchEnabled = YES;
|
|
59
60
|
_userLocationEnabled = NO;
|
|
60
|
-
_theme =
|
|
61
|
-
|
|
61
|
+
_theme = LuggMapViewTheme::System;
|
|
62
|
+
_edgeInsets = UIEdgeInsetsZero;
|
|
62
63
|
}
|
|
63
64
|
return self;
|
|
64
65
|
}
|
|
@@ -154,7 +155,7 @@ using namespace luggmaps::events;
|
|
|
154
155
|
initialCoordinate:coordinate
|
|
155
156
|
initialZoom:viewProps.initialZoom];
|
|
156
157
|
|
|
157
|
-
[_provider
|
|
158
|
+
[_provider setEdgeInsets:_edgeInsets oldEdgeInsets:UIEdgeInsetsZero];
|
|
158
159
|
|
|
159
160
|
_initialized = YES;
|
|
160
161
|
|
|
@@ -198,15 +199,13 @@ using namespace luggmaps::events;
|
|
|
198
199
|
[_provider setRotateEnabled:_rotateEnabled];
|
|
199
200
|
[_provider setPitchEnabled:_pitchEnabled];
|
|
200
201
|
[_provider setUserLocationEnabled:_userLocationEnabled];
|
|
201
|
-
[_provider setTheme:_theme];
|
|
202
|
+
[_provider setTheme:(NSInteger)_theme];
|
|
202
203
|
[_provider setMinZoom:_minZoom];
|
|
203
204
|
[_provider setMaxZoom:_maxZoom];
|
|
204
205
|
}
|
|
205
206
|
|
|
206
207
|
- (void)updateProps:(Props::Shared const &)props
|
|
207
208
|
oldProps:(Props::Shared const &)oldProps {
|
|
208
|
-
const auto &oldViewProps =
|
|
209
|
-
*std::static_pointer_cast<LuggMapViewProps const>(oldProps);
|
|
210
209
|
const auto &newViewProps =
|
|
211
210
|
*std::static_pointer_cast<LuggMapViewProps const>(props);
|
|
212
211
|
|
|
@@ -218,7 +217,6 @@ using namespace luggmaps::events;
|
|
|
218
217
|
_mapId = newMapId;
|
|
219
218
|
}
|
|
220
219
|
|
|
221
|
-
// Cache props
|
|
222
220
|
_zoomEnabled = newViewProps.zoomEnabled;
|
|
223
221
|
_scrollEnabled = newViewProps.scrollEnabled;
|
|
224
222
|
_rotateEnabled = newViewProps.rotateEnabled;
|
|
@@ -227,25 +225,26 @@ using namespace luggmaps::events;
|
|
|
227
225
|
_minZoom = newViewProps.minZoom;
|
|
228
226
|
_maxZoom = newViewProps.maxZoom;
|
|
229
227
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
228
|
+
_theme = newViewProps.theme;
|
|
229
|
+
|
|
230
|
+
_oldEdgeInsets = _edgeInsets;
|
|
231
|
+
_edgeInsets = UIEdgeInsetsMake(
|
|
232
|
+
newViewProps.edgeInsets.top, newViewProps.edgeInsets.left,
|
|
233
|
+
newViewProps.edgeInsets.bottom, newViewProps.edgeInsets.right);
|
|
237
234
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
235
|
+
[super updateProps:props oldProps:oldProps];
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
- (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask {
|
|
239
|
+
[super finalizeUpdates:updateMask];
|
|
240
|
+
|
|
241
|
+
if (updateMask & RNComponentViewUpdateMaskProps) {
|
|
242
|
+
if (!_provider)
|
|
243
|
+
return;
|
|
242
244
|
|
|
243
|
-
if (_provider) {
|
|
244
245
|
[self applyProps];
|
|
245
|
-
[_provider
|
|
246
|
+
[_provider setEdgeInsets:_edgeInsets oldEdgeInsets:_oldEdgeInsets];
|
|
246
247
|
}
|
|
247
|
-
|
|
248
|
-
[super updateProps:props oldProps:oldProps];
|
|
249
248
|
}
|
|
250
249
|
|
|
251
250
|
#pragma mark - Commands
|
|
@@ -261,16 +260,16 @@ using namespace luggmaps::events;
|
|
|
261
260
|
}
|
|
262
261
|
|
|
263
262
|
- (void)fitCoordinates:(NSArray *)coordinates
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
263
|
+
edgeInsetsTop:(double)edgeInsetsTop
|
|
264
|
+
edgeInsetsLeft:(double)edgeInsetsLeft
|
|
265
|
+
edgeInsetsBottom:(double)edgeInsetsBottom
|
|
266
|
+
edgeInsetsRight:(double)edgeInsetsRight
|
|
268
267
|
duration:(double)duration {
|
|
269
268
|
[_provider fitCoordinates:coordinates
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
269
|
+
edgeInsetsTop:edgeInsetsTop
|
|
270
|
+
edgeInsetsLeft:edgeInsetsLeft
|
|
271
|
+
edgeInsetsBottom:edgeInsetsBottom
|
|
272
|
+
edgeInsetsRight:edgeInsetsRight
|
|
274
273
|
duration:duration];
|
|
275
274
|
}
|
|
276
275
|
|
|
@@ -103,13 +103,17 @@
|
|
|
103
103
|
_mapView.showsUserLocation = enabled;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
- (void)setTheme:(
|
|
107
|
-
|
|
106
|
+
- (void)setTheme:(NSInteger)theme {
|
|
107
|
+
switch (theme) {
|
|
108
|
+
case 1: // Dark
|
|
108
109
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
|
|
109
|
-
|
|
110
|
+
break;
|
|
111
|
+
case 0: // Light
|
|
110
112
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
|
|
111
|
-
|
|
113
|
+
break;
|
|
114
|
+
default: // System
|
|
112
115
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
|
|
116
|
+
break;
|
|
113
117
|
}
|
|
114
118
|
}
|
|
115
119
|
|
|
@@ -123,16 +127,17 @@
|
|
|
123
127
|
[self applyZoomRange];
|
|
124
128
|
}
|
|
125
129
|
|
|
126
|
-
- (void)
|
|
127
|
-
|
|
128
|
-
CGFloat
|
|
129
|
-
CGFloat
|
|
130
|
-
CGFloat
|
|
130
|
+
- (void)setEdgeInsets:(UIEdgeInsets)edgeInsets
|
|
131
|
+
oldEdgeInsets:(UIEdgeInsets)oldEdgeInsets {
|
|
132
|
+
CGFloat oldOffsetX = (oldEdgeInsets.left - oldEdgeInsets.right) / 2.0;
|
|
133
|
+
CGFloat oldOffsetY = (oldEdgeInsets.top - oldEdgeInsets.bottom) / 2.0;
|
|
134
|
+
CGFloat newOffsetX = (edgeInsets.left - edgeInsets.right) / 2.0;
|
|
135
|
+
CGFloat newOffsetY = (edgeInsets.top - edgeInsets.bottom) / 2.0;
|
|
131
136
|
|
|
132
137
|
CGFloat deltaX = newOffsetX - oldOffsetX;
|
|
133
138
|
CGFloat deltaY = newOffsetY - oldOffsetY;
|
|
134
139
|
|
|
135
|
-
_mapView.layoutMargins =
|
|
140
|
+
_mapView.layoutMargins = edgeInsets;
|
|
136
141
|
|
|
137
142
|
if (deltaX != 0 || deltaY != 0) {
|
|
138
143
|
CLLocationCoordinate2D currentCenter = _mapView.centerCoordinate;
|
|
@@ -558,10 +563,10 @@
|
|
|
558
563
|
}
|
|
559
564
|
|
|
560
565
|
- (void)fitCoordinates:(NSArray *)coordinates
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
566
|
+
edgeInsetsTop:(double)edgeInsetsTop
|
|
567
|
+
edgeInsetsLeft:(double)edgeInsetsLeft
|
|
568
|
+
edgeInsetsBottom:(double)edgeInsetsBottom
|
|
569
|
+
edgeInsetsRight:(double)edgeInsetsRight
|
|
565
570
|
duration:(double)duration {
|
|
566
571
|
if (!_mapView || coordinates.count == 0)
|
|
567
572
|
return;
|
|
@@ -582,20 +587,20 @@
|
|
|
582
587
|
}
|
|
583
588
|
free(coords);
|
|
584
589
|
|
|
585
|
-
UIEdgeInsets
|
|
586
|
-
|
|
590
|
+
UIEdgeInsets insets = UIEdgeInsetsMake(edgeInsetsTop, edgeInsetsLeft,
|
|
591
|
+
edgeInsetsBottom, edgeInsetsRight);
|
|
587
592
|
|
|
588
593
|
if (duration < 0) {
|
|
589
|
-
[_mapView setVisibleMapRect:mapRect edgePadding:
|
|
594
|
+
[_mapView setVisibleMapRect:mapRect edgePadding:insets animated:YES];
|
|
590
595
|
} else if (duration > 0) {
|
|
591
596
|
[UIView animateWithDuration:duration / 1000.0
|
|
592
597
|
animations:^{
|
|
593
598
|
[self->_mapView setVisibleMapRect:mapRect
|
|
594
|
-
edgePadding:
|
|
599
|
+
edgePadding:insets
|
|
595
600
|
animated:NO];
|
|
596
601
|
}];
|
|
597
602
|
} else {
|
|
598
|
-
[_mapView setVisibleMapRect:mapRect edgePadding:
|
|
603
|
+
[_mapView setVisibleMapRect:mapRect edgePadding:insets animated:NO];
|
|
599
604
|
}
|
|
600
605
|
}
|
|
601
606
|
|
|
@@ -14,7 +14,8 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
14
14
|
GMSMapView *_mapView;
|
|
15
15
|
BOOL _isMapReady;
|
|
16
16
|
BOOL _isDragging;
|
|
17
|
-
|
|
17
|
+
NSInteger _theme;
|
|
18
|
+
UIEdgeInsets _edgeInsets;
|
|
18
19
|
NSMutableArray<LuggMarkerView *> *_pendingMarkerViews;
|
|
19
20
|
NSMutableArray<LuggPolylineView *> *_pendingPolylineViews;
|
|
20
21
|
NSMapTable<LuggPolylineView *, GMSPolylineAnimator *> *_polylineAnimators;
|
|
@@ -116,8 +117,8 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
116
117
|
_mapView.myLocationEnabled = enabled;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
- (void)setTheme:(
|
|
120
|
-
_theme =
|
|
120
|
+
- (void)setTheme:(NSInteger)theme {
|
|
121
|
+
_theme = theme;
|
|
121
122
|
[self applyTheme];
|
|
122
123
|
}
|
|
123
124
|
|
|
@@ -125,12 +126,16 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
125
126
|
if (!_mapView)
|
|
126
127
|
return;
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
switch (_theme) {
|
|
130
|
+
case 1: // Dark
|
|
129
131
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
|
|
130
|
-
|
|
132
|
+
break;
|
|
133
|
+
case 0: // Light
|
|
131
134
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
|
|
132
|
-
|
|
135
|
+
break;
|
|
136
|
+
default: // System
|
|
133
137
|
_mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
|
|
138
|
+
break;
|
|
134
139
|
}
|
|
135
140
|
}
|
|
136
141
|
|
|
@@ -148,8 +153,15 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
148
153
|
[_mapView setMinZoom:_mapView.minZoom maxZoom:max];
|
|
149
154
|
}
|
|
150
155
|
|
|
151
|
-
- (void)
|
|
152
|
-
|
|
156
|
+
- (void)setEdgeInsets:(UIEdgeInsets)edgeInsets
|
|
157
|
+
oldEdgeInsets:(UIEdgeInsets)oldEdgeInsets {
|
|
158
|
+
UIEdgeInsets rounded =
|
|
159
|
+
UIEdgeInsetsMake(round(edgeInsets.top), round(edgeInsets.left),
|
|
160
|
+
round(edgeInsets.bottom), round(edgeInsets.right));
|
|
161
|
+
if (UIEdgeInsetsEqualToEdgeInsets(_edgeInsets, rounded))
|
|
162
|
+
return;
|
|
163
|
+
_edgeInsets = rounded;
|
|
164
|
+
_mapView.padding = rounded;
|
|
153
165
|
}
|
|
154
166
|
|
|
155
167
|
#pragma mark - GMSMapViewDelegate
|
|
@@ -410,10 +422,10 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
410
422
|
}
|
|
411
423
|
|
|
412
424
|
- (void)fitCoordinates:(NSArray *)coordinates
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
425
|
+
edgeInsetsTop:(double)edgeInsetsTop
|
|
426
|
+
edgeInsetsLeft:(double)edgeInsetsLeft
|
|
427
|
+
edgeInsetsBottom:(double)edgeInsetsBottom
|
|
428
|
+
edgeInsetsRight:(double)edgeInsetsRight
|
|
417
429
|
duration:(double)duration {
|
|
418
430
|
if (!_mapView || coordinates.count == 0)
|
|
419
431
|
return;
|
|
@@ -425,10 +437,10 @@ static NSString *const kDemoMapId = @"DEMO_MAP_ID";
|
|
|
425
437
|
bounds = [bounds includingCoordinate:CLLocationCoordinate2DMake(lat, lng)];
|
|
426
438
|
}
|
|
427
439
|
|
|
428
|
-
UIEdgeInsets
|
|
429
|
-
|
|
440
|
+
UIEdgeInsets insets = UIEdgeInsetsMake(edgeInsetsTop, edgeInsetsLeft,
|
|
441
|
+
edgeInsetsBottom, edgeInsetsRight);
|
|
430
442
|
GMSCameraUpdate *cameraUpdate = [GMSCameraUpdate fitBounds:bounds
|
|
431
|
-
withEdgeInsets:
|
|
443
|
+
withEdgeInsets:insets];
|
|
432
444
|
|
|
433
445
|
if (duration < 0) {
|
|
434
446
|
[_mapView animateWithCameraUpdate:cameraUpdate];
|
|
@@ -34,10 +34,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
34
34
|
- (void)setRotateEnabled:(BOOL)enabled;
|
|
35
35
|
- (void)setPitchEnabled:(BOOL)enabled;
|
|
36
36
|
- (void)setUserLocationEnabled:(BOOL)enabled;
|
|
37
|
-
- (void)setTheme:(
|
|
37
|
+
- (void)setTheme:(NSInteger)theme;
|
|
38
38
|
- (void)setMinZoom:(double)minZoom;
|
|
39
39
|
- (void)setMaxZoom:(double)maxZoom;
|
|
40
|
-
- (void)
|
|
40
|
+
- (void)setEdgeInsets:(UIEdgeInsets)edgeInsets
|
|
41
|
+
oldEdgeInsets:(UIEdgeInsets)oldEdgeInsets;
|
|
41
42
|
|
|
42
43
|
// Children
|
|
43
44
|
- (void)addMarkerView:(LuggMarkerView *)markerView;
|
|
@@ -57,10 +58,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
57
58
|
zoom:(double)zoom
|
|
58
59
|
duration:(double)duration;
|
|
59
60
|
- (void)fitCoordinates:(NSArray *)coordinates
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
edgeInsetsTop:(double)edgeInsetsTop
|
|
62
|
+
edgeInsetsLeft:(double)edgeInsetsLeft
|
|
63
|
+
edgeInsetsBottom:(double)edgeInsetsBottom
|
|
64
|
+
edgeInsetsRight:(double)edgeInsetsRight
|
|
64
65
|
duration:(double)duration;
|
|
65
66
|
|
|
66
67
|
@end
|
package/lib/module/MapView.js
CHANGED
|
@@ -30,7 +30,7 @@ export class MapView extends React.Component {
|
|
|
30
30
|
const first = coordinates[0];
|
|
31
31
|
if (!ref || !first) return;
|
|
32
32
|
const {
|
|
33
|
-
|
|
33
|
+
edgeInsets,
|
|
34
34
|
duration = -1
|
|
35
35
|
} = options ?? {};
|
|
36
36
|
const {
|
|
@@ -38,7 +38,7 @@ export class MapView extends React.Component {
|
|
|
38
38
|
left = 0,
|
|
39
39
|
bottom = 0,
|
|
40
40
|
right = 0
|
|
41
|
-
} =
|
|
41
|
+
} = edgeInsets ?? {};
|
|
42
42
|
if (coordinates.length === 1) {
|
|
43
43
|
const zoom = this.props.initialZoom ?? 10;
|
|
44
44
|
this.moveCamera(first, {
|
|
@@ -61,8 +61,9 @@ export class MapView extends React.Component {
|
|
|
61
61
|
scrollEnabled,
|
|
62
62
|
rotateEnabled,
|
|
63
63
|
pitchEnabled,
|
|
64
|
-
|
|
64
|
+
edgeInsets,
|
|
65
65
|
userLocationEnabled,
|
|
66
|
+
myLocationButtonEnabled,
|
|
66
67
|
theme,
|
|
67
68
|
onCameraMove,
|
|
68
69
|
onCameraIdle,
|
|
@@ -83,8 +84,9 @@ export class MapView extends React.Component {
|
|
|
83
84
|
scrollEnabled: scrollEnabled,
|
|
84
85
|
rotateEnabled: rotateEnabled,
|
|
85
86
|
pitchEnabled: pitchEnabled,
|
|
86
|
-
|
|
87
|
+
edgeInsets: edgeInsets,
|
|
87
88
|
userLocationEnabled: userLocationEnabled,
|
|
89
|
+
myLocationButtonEnabled: myLocationButtonEnabled,
|
|
88
90
|
theme: theme,
|
|
89
91
|
onCameraMove: onCameraMove,
|
|
90
92
|
onCameraIdle: onCameraIdle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","StyleSheet","LuggMapViewNativeComponent","Commands","LuggMapWrapperViewNativeComponent","jsx","_jsx","jsxs","_jsxs","MapView","Component","defaultProps","provider","OS","initialZoom","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","theme","nativeRef","createRef","moveCamera","coordinate","options","ref","current","zoom","duration","latitude","longitude","fitCoordinates","coordinates","first","
|
|
1
|
+
{"version":3,"names":["React","Platform","StyleSheet","LuggMapViewNativeComponent","Commands","LuggMapWrapperViewNativeComponent","jsx","_jsx","jsxs","_jsxs","MapView","Component","defaultProps","provider","OS","initialZoom","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","theme","nativeRef","createRef","moveCamera","coordinate","options","ref","current","zoom","duration","latitude","longitude","fitCoordinates","coordinates","first","edgeInsets","top","left","bottom","right","length","props","render","mapId","initialCoordinate","minZoom","maxZoom","userLocationEnabled","myLocationButtonEnabled","onCameraMove","onCameraIdle","onReady","children","rest","style","absoluteFill"],"sourceRoot":"../../src","sources":["MapView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -77,7 +77,7 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
77
77
|
zoomEnabled = true,
|
|
78
78
|
scrollEnabled = true,
|
|
79
79
|
pitchEnabled = true,
|
|
80
|
-
|
|
80
|
+
edgeInsets,
|
|
81
81
|
userLocationEnabled,
|
|
82
82
|
theme = 'system',
|
|
83
83
|
onCameraMove,
|
|
@@ -92,9 +92,9 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
92
92
|
const readyFired = useRef(false);
|
|
93
93
|
const [isDragging, setIsDragging] = useState(false);
|
|
94
94
|
const wasGesture = useRef(false);
|
|
95
|
-
const
|
|
96
|
-
const offsetCenter = useCallback((coord, zoom,
|
|
97
|
-
const p =
|
|
95
|
+
const prevEdgeInsets = useRef(edgeInsets);
|
|
96
|
+
const offsetCenter = useCallback((coord, zoom, edgeInsetsOverride, reverse = false) => {
|
|
97
|
+
const p = edgeInsetsOverride ?? edgeInsets;
|
|
98
98
|
const div = map?.getDiv();
|
|
99
99
|
if (!p || !div) {
|
|
100
100
|
return {
|
|
@@ -115,7 +115,7 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
115
115
|
lat,
|
|
116
116
|
lng
|
|
117
117
|
};
|
|
118
|
-
}, [map,
|
|
118
|
+
}, [map, edgeInsets]);
|
|
119
119
|
useImperativeHandle(ref, () => ({
|
|
120
120
|
moveCamera(coordinate, options) {
|
|
121
121
|
if (!map) return;
|
|
@@ -143,7 +143,7 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
143
143
|
const first = coordinates[0];
|
|
144
144
|
if (!map || !first) return;
|
|
145
145
|
const {
|
|
146
|
-
|
|
146
|
+
edgeInsets: fitEdgeInsets,
|
|
147
147
|
duration = -1
|
|
148
148
|
} = options ?? {};
|
|
149
149
|
if (coordinates.length === 1) {
|
|
@@ -161,13 +161,13 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
161
161
|
});
|
|
162
162
|
});
|
|
163
163
|
map.fitBounds(bounds, {
|
|
164
|
-
top: (
|
|
165
|
-
left: (
|
|
166
|
-
bottom: (
|
|
167
|
-
right: (
|
|
164
|
+
top: (edgeInsets?.top ?? 0) + (fitEdgeInsets?.top ?? 0),
|
|
165
|
+
left: (edgeInsets?.left ?? 0) + (fitEdgeInsets?.left ?? 0),
|
|
166
|
+
bottom: (edgeInsets?.bottom ?? 0) + (fitEdgeInsets?.bottom ?? 0),
|
|
167
|
+
right: (edgeInsets?.right ?? 0) + (fitEdgeInsets?.right ?? 0)
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
|
-
}), [map, initialZoom,
|
|
170
|
+
}), [map, initialZoom, edgeInsets, offsetCenter]);
|
|
171
171
|
useEffect(() => {
|
|
172
172
|
if (map && !readyFired.current) {
|
|
173
173
|
readyFired.current = true;
|
|
@@ -175,10 +175,10 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
175
175
|
}
|
|
176
176
|
}, [map, onReady]);
|
|
177
177
|
useEffect(() => {
|
|
178
|
-
if (!map || !
|
|
179
|
-
const prev =
|
|
180
|
-
const
|
|
181
|
-
if (
|
|
178
|
+
if (!map || !edgeInsets) return;
|
|
179
|
+
const prev = prevEdgeInsets.current;
|
|
180
|
+
const changed = prev?.top !== edgeInsets.top || prev?.left !== edgeInsets.left || prev?.bottom !== edgeInsets.bottom || prev?.right !== edgeInsets.right;
|
|
181
|
+
if (changed) {
|
|
182
182
|
const center = map.getCenter();
|
|
183
183
|
const zoom = map.getZoom() ?? initialZoom;
|
|
184
184
|
if (center) {
|
|
@@ -189,12 +189,12 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
189
189
|
const newCenter = offsetCenter({
|
|
190
190
|
latitude: logicalCenter.lat,
|
|
191
191
|
longitude: logicalCenter.lng
|
|
192
|
-
}, zoom,
|
|
192
|
+
}, zoom, edgeInsets, false);
|
|
193
193
|
map.panTo(newCenter);
|
|
194
194
|
}
|
|
195
|
-
|
|
195
|
+
prevEdgeInsets.current = edgeInsets;
|
|
196
196
|
}
|
|
197
|
-
}, [map,
|
|
197
|
+
}, [map, edgeInsets, initialZoom, offsetCenter]);
|
|
198
198
|
const handleDragStart = () => {
|
|
199
199
|
setIsDragging(true);
|
|
200
200
|
wasGesture.current = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useEffect","useId","useImperativeHandle","useRef","useState","View","ColorScheme","Map","useMap","Marker","MapContext","jsx","_jsx","jsxs","_jsxs","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","type","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","google","maps","DEMO_MAP_ID","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","padding","userLocationEnabled","theme","onCameraMove","onCameraIdle","onReady","id","map","containerRef","readyFired","isDragging","setIsDragging","wasGesture","prevPadding","offsetCenter","coord","zoom","paddingOverride","reverse","p","div","getDiv","lat","lng","dir","scale","Math","pow","offsetX","right","left","offsetY","bottom","top","latRad","PI","log","tan","cos","atan","sinh","moveCamera","options","duration","targetZoom","getZoom","center","undefined","currentZoom","zoomChanged","setZoom","panTo","fitCoordinates","coordinates","first","fitPadding","length","bounds","LatLngBounds","forEach","extend","fitBounds","current","prev","paddingChanged","getCenter","logicalCenter","newCenter","handleDragStart","handleDragEnd","handleCameraChanged","event","detail","payload","gesture","handleIdle","gestureHandling","colorScheme","DARK","LIGHT","FOLLOW_SYSTEM","defaultCenter","Provider","value","defaultZoom","disableDefaultUI","isFractionalZoomEnabled","tilt","onDragstart","onDragend","onCameraChanged","onIdle"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useId","useImperativeHandle","useRef","useState","View","ColorScheme","Map","useMap","Marker","MapContext","jsx","_jsx","jsxs","_jsxs","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","type","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","google","maps","DEMO_MAP_ID","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","edgeInsets","userLocationEnabled","theme","onCameraMove","onCameraIdle","onReady","id","map","containerRef","readyFired","isDragging","setIsDragging","wasGesture","prevEdgeInsets","offsetCenter","coord","zoom","edgeInsetsOverride","reverse","p","div","getDiv","lat","lng","dir","scale","Math","pow","offsetX","right","left","offsetY","bottom","top","latRad","PI","log","tan","cos","atan","sinh","moveCamera","options","duration","targetZoom","getZoom","center","undefined","currentZoom","zoomChanged","setZoom","panTo","fitCoordinates","coordinates","first","fitEdgeInsets","length","bounds","LatLngBounds","forEach","extend","fitBounds","current","prev","changed","getCenter","logicalCenter","newCenter","handleDragStart","handleDragEnd","handleCameraChanged","event","detail","payload","gesture","handleIdle","gestureHandling","colorScheme","DARK","LIGHT","FOLLOW_SYSTEM","defaultCenter","Provider","value","defaultZoom","disableDefaultUI","isFractionalZoomEnabled","tilt","onDragstart","onDragend","onCameraChanged","onIdle"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -49,8 +49,9 @@ export interface NativeProps extends ViewProps {
|
|
|
49
49
|
scrollEnabled?: boolean;
|
|
50
50
|
rotateEnabled?: boolean;
|
|
51
51
|
pitchEnabled?: boolean;
|
|
52
|
-
|
|
52
|
+
edgeInsets?: EdgeInsets;
|
|
53
53
|
userLocationEnabled?: boolean;
|
|
54
|
+
myLocationButtonEnabled?: boolean;
|
|
54
55
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
55
56
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
56
57
|
onCameraIdle?: DirectEventHandler<CameraIdleEvent>;
|
|
@@ -70,10 +71,10 @@ interface NativeCommands {
|
|
|
70
71
|
fitCoordinates: (
|
|
71
72
|
viewRef: React.ElementRef<ComponentType>,
|
|
72
73
|
coordinates: Coordinate[],
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
edgeInsetsTop: Double,
|
|
75
|
+
edgeInsetsLeft: Double,
|
|
76
|
+
edgeInsetsBottom: Double,
|
|
77
|
+
edgeInsetsRight: Double,
|
|
77
78
|
duration: Double
|
|
78
79
|
) => void;
|
|
79
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapView.d.ts","sourceRoot":"","sources":["../../../src/MapView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,OACX,SAAQ,KAAK,CAAC,SAAS,CAAC,YAAY,CACpC,YAAW,UAAU;IAErB,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAQxC;IAEF,OAAO,CAAC,SAAS,CAA0B;IAE3C,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAc9D,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAyBzE,MAAM;
|
|
1
|
+
{"version":3,"file":"MapView.d.ts","sourceRoot":"","sources":["../../../src/MapView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,OACX,SAAQ,KAAK,CAAC,SAAS,CAAC,YAAY,CACpC,YAAW,UAAU;IAErB,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAQxC;IAEF,OAAO,CAAC,SAAS,CAA0B;IAE3C,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAc9D,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAyBzE,MAAM;CAkDP"}
|
|
@@ -3,7 +3,6 @@ import type { NativeSyntheticEvent, ViewProps } from 'react-native';
|
|
|
3
3
|
import type { MapProvider, Coordinate, EdgeInsets, MapTheme } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Options for moving the camera
|
|
6
|
-
* @default duration -1
|
|
7
6
|
*/
|
|
8
7
|
export interface MoveCameraOptions {
|
|
9
8
|
zoom?: number;
|
|
@@ -11,10 +10,9 @@ export interface MoveCameraOptions {
|
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
12
|
* Options for fitting coordinates in view
|
|
14
|
-
* @default duration -1
|
|
15
13
|
*/
|
|
16
14
|
export interface FitCoordinatesOptions {
|
|
17
|
-
|
|
15
|
+
edgeInsets?: EdgeInsets;
|
|
18
16
|
duration?: number;
|
|
19
17
|
}
|
|
20
18
|
/**
|
|
@@ -83,15 +81,21 @@ export interface MapViewProps extends ViewProps {
|
|
|
83
81
|
*/
|
|
84
82
|
pitchEnabled?: boolean;
|
|
85
83
|
/**
|
|
86
|
-
* Map content
|
|
84
|
+
* Map content edge insets
|
|
87
85
|
*/
|
|
88
|
-
|
|
86
|
+
edgeInsets?: EdgeInsets;
|
|
89
87
|
/**
|
|
90
88
|
* Show current user location on the map.
|
|
91
89
|
* Requires location permission to be granted, otherwise silently ignored.
|
|
92
90
|
* @default false
|
|
93
91
|
*/
|
|
94
92
|
userLocationEnabled?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Show native my-location button when userLocationEnabled is true (Android only).
|
|
95
|
+
* @default false
|
|
96
|
+
* @platform android
|
|
97
|
+
*/
|
|
98
|
+
myLocationButtonEnabled?: boolean;
|
|
95
99
|
/**
|
|
96
100
|
* Map color theme
|
|
97
101
|
* @default 'system'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapView.types.d.ts","sourceRoot":"","sources":["../../../src/MapView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7E
|
|
1
|
+
{"version":3,"file":"MapView.types.d.ts","sourceRoot":"","sources":["../../../src/MapView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtE,cAAc,CACZ,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IACzE;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IACzE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
|
|
@@ -39,8 +39,9 @@ export interface NativeProps extends ViewProps {
|
|
|
39
39
|
scrollEnabled?: boolean;
|
|
40
40
|
rotateEnabled?: boolean;
|
|
41
41
|
pitchEnabled?: boolean;
|
|
42
|
-
|
|
42
|
+
edgeInsets?: EdgeInsets;
|
|
43
43
|
userLocationEnabled?: boolean;
|
|
44
|
+
myLocationButtonEnabled?: boolean;
|
|
44
45
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
45
46
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
46
47
|
onCameraIdle?: DirectEventHandler<CameraIdleEvent>;
|
|
@@ -49,7 +50,7 @@ export interface NativeProps extends ViewProps {
|
|
|
49
50
|
type ComponentType = HostComponent<NativeProps>;
|
|
50
51
|
interface NativeCommands {
|
|
51
52
|
moveCamera: (viewRef: React.ElementRef<ComponentType>, latitude: Double, longitude: Double, zoom: Double, duration: Double) => void;
|
|
52
|
-
fitCoordinates: (viewRef: React.ElementRef<ComponentType>, coordinates: Coordinate[],
|
|
53
|
+
fitCoordinates: (viewRef: React.ElementRef<ComponentType>, coordinates: Coordinate[], edgeInsetsTop: Double, edgeInsetsLeft: Double, edgeInsetsBottom: Double, edgeInsetsRight: Double, duration: Double) => void;
|
|
53
54
|
}
|
|
54
55
|
export declare const Commands: NativeCommands;
|
|
55
56
|
declare const _default: ComponentType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LuggMapViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/LuggMapViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;CAAG;AAE9B,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"LuggMapViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/LuggMapViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;CAAG;AAE9B,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC1C;AAED,KAAK,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAEhD,UAAU,cAAc;IACtB,UAAU,EAAE,CACV,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,cAAc,EAAE,CACd,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;CACX;AAED,eAAO,MAAM,QAAQ,gBAEnB,CAAC;wBAIE,aAAa;AAFlB,wBAEmB"}
|
package/package.json
CHANGED
package/src/MapView.tsx
CHANGED
|
@@ -47,8 +47,8 @@ export class MapView
|
|
|
47
47
|
const first = coordinates[0];
|
|
48
48
|
if (!ref || !first) return;
|
|
49
49
|
|
|
50
|
-
const {
|
|
51
|
-
const { top = 0, left = 0, bottom = 0, right = 0 } =
|
|
50
|
+
const { edgeInsets, duration = -1 } = options ?? {};
|
|
51
|
+
const { top = 0, left = 0, bottom = 0, right = 0 } = edgeInsets ?? {};
|
|
52
52
|
|
|
53
53
|
if (coordinates.length === 1) {
|
|
54
54
|
const zoom = this.props.initialZoom ?? 10;
|
|
@@ -79,8 +79,9 @@ export class MapView
|
|
|
79
79
|
scrollEnabled,
|
|
80
80
|
rotateEnabled,
|
|
81
81
|
pitchEnabled,
|
|
82
|
-
|
|
82
|
+
edgeInsets,
|
|
83
83
|
userLocationEnabled,
|
|
84
|
+
myLocationButtonEnabled,
|
|
84
85
|
theme,
|
|
85
86
|
onCameraMove,
|
|
86
87
|
onCameraIdle,
|
|
@@ -103,8 +104,9 @@ export class MapView
|
|
|
103
104
|
scrollEnabled={scrollEnabled}
|
|
104
105
|
rotateEnabled={rotateEnabled}
|
|
105
106
|
pitchEnabled={pitchEnabled}
|
|
106
|
-
|
|
107
|
+
edgeInsets={edgeInsets}
|
|
107
108
|
userLocationEnabled={userLocationEnabled}
|
|
109
|
+
myLocationButtonEnabled={myLocationButtonEnabled}
|
|
108
110
|
theme={theme}
|
|
109
111
|
onCameraMove={onCameraMove}
|
|
110
112
|
onCameraIdle={onCameraIdle}
|
package/src/MapView.types.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type { MapProvider, Coordinate, EdgeInsets, MapTheme } from './types';
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Options for moving the camera
|
|
7
|
-
* @default duration -1
|
|
8
7
|
*/
|
|
9
8
|
export interface MoveCameraOptions {
|
|
10
9
|
zoom?: number;
|
|
@@ -13,10 +12,9 @@ export interface MoveCameraOptions {
|
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Options for fitting coordinates in view
|
|
16
|
-
* @default duration -1
|
|
17
15
|
*/
|
|
18
16
|
export interface FitCoordinatesOptions {
|
|
19
|
-
|
|
17
|
+
edgeInsets?: EdgeInsets;
|
|
20
18
|
duration?: number;
|
|
21
19
|
}
|
|
22
20
|
|
|
@@ -91,15 +89,21 @@ export interface MapViewProps extends ViewProps {
|
|
|
91
89
|
*/
|
|
92
90
|
pitchEnabled?: boolean;
|
|
93
91
|
/**
|
|
94
|
-
* Map content
|
|
92
|
+
* Map content edge insets
|
|
95
93
|
*/
|
|
96
|
-
|
|
94
|
+
edgeInsets?: EdgeInsets;
|
|
97
95
|
/**
|
|
98
96
|
* Show current user location on the map.
|
|
99
97
|
* Requires location permission to be granted, otherwise silently ignored.
|
|
100
98
|
* @default false
|
|
101
99
|
*/
|
|
102
100
|
userLocationEnabled?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Show native my-location button when userLocationEnabled is true (Android only).
|
|
103
|
+
* @default false
|
|
104
|
+
* @platform android
|
|
105
|
+
*/
|
|
106
|
+
myLocationButtonEnabled?: boolean;
|
|
103
107
|
/**
|
|
104
108
|
* Map color theme
|
|
105
109
|
* @default 'system'
|
package/src/MapView.web.tsx
CHANGED
|
@@ -107,7 +107,7 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
107
107
|
zoomEnabled = true,
|
|
108
108
|
scrollEnabled = true,
|
|
109
109
|
pitchEnabled = true,
|
|
110
|
-
|
|
110
|
+
edgeInsets,
|
|
111
111
|
userLocationEnabled,
|
|
112
112
|
theme = 'system',
|
|
113
113
|
onCameraMove,
|
|
@@ -123,16 +123,16 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
123
123
|
const readyFired = useRef(false);
|
|
124
124
|
const [isDragging, setIsDragging] = useState(false);
|
|
125
125
|
const wasGesture = useRef(false);
|
|
126
|
-
const
|
|
126
|
+
const prevEdgeInsets = useRef(edgeInsets);
|
|
127
127
|
|
|
128
128
|
const offsetCenter = useCallback(
|
|
129
129
|
(
|
|
130
130
|
coord: Coordinate,
|
|
131
131
|
zoom: number,
|
|
132
|
-
|
|
132
|
+
edgeInsetsOverride?: typeof edgeInsets,
|
|
133
133
|
reverse = false
|
|
134
134
|
) => {
|
|
135
|
-
const p =
|
|
135
|
+
const p = edgeInsetsOverride ?? edgeInsets;
|
|
136
136
|
const div = map?.getDiv();
|
|
137
137
|
if (!p || !div) {
|
|
138
138
|
return { lat: coord.latitude, lng: coord.longitude };
|
|
@@ -157,7 +157,7 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
157
157
|
|
|
158
158
|
return { lat, lng };
|
|
159
159
|
},
|
|
160
|
-
[map,
|
|
160
|
+
[map, edgeInsets]
|
|
161
161
|
);
|
|
162
162
|
|
|
163
163
|
useImperativeHandle(
|
|
@@ -190,7 +190,7 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
190
190
|
const first = coordinates[0];
|
|
191
191
|
if (!map || !first) return;
|
|
192
192
|
|
|
193
|
-
const {
|
|
193
|
+
const { edgeInsets: fitEdgeInsets, duration = -1 } = options ?? {};
|
|
194
194
|
|
|
195
195
|
if (coordinates.length === 1) {
|
|
196
196
|
this.moveCamera(first, { zoom: initialZoom, duration });
|
|
@@ -203,14 +203,14 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
203
203
|
});
|
|
204
204
|
|
|
205
205
|
map.fitBounds(bounds, {
|
|
206
|
-
top: (
|
|
207
|
-
left: (
|
|
208
|
-
bottom: (
|
|
209
|
-
right: (
|
|
206
|
+
top: (edgeInsets?.top ?? 0) + (fitEdgeInsets?.top ?? 0),
|
|
207
|
+
left: (edgeInsets?.left ?? 0) + (fitEdgeInsets?.left ?? 0),
|
|
208
|
+
bottom: (edgeInsets?.bottom ?? 0) + (fitEdgeInsets?.bottom ?? 0),
|
|
209
|
+
right: (edgeInsets?.right ?? 0) + (fitEdgeInsets?.right ?? 0),
|
|
210
210
|
});
|
|
211
211
|
},
|
|
212
212
|
}),
|
|
213
|
-
[map, initialZoom,
|
|
213
|
+
[map, initialZoom, edgeInsets, offsetCenter]
|
|
214
214
|
);
|
|
215
215
|
|
|
216
216
|
useEffect(() => {
|
|
@@ -221,16 +221,16 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
221
221
|
}, [map, onReady]);
|
|
222
222
|
|
|
223
223
|
useEffect(() => {
|
|
224
|
-
if (!map || !
|
|
224
|
+
if (!map || !edgeInsets) return;
|
|
225
225
|
|
|
226
|
-
const prev =
|
|
227
|
-
const
|
|
228
|
-
prev?.top !==
|
|
229
|
-
prev?.left !==
|
|
230
|
-
prev?.bottom !==
|
|
231
|
-
prev?.right !==
|
|
226
|
+
const prev = prevEdgeInsets.current;
|
|
227
|
+
const changed =
|
|
228
|
+
prev?.top !== edgeInsets.top ||
|
|
229
|
+
prev?.left !== edgeInsets.left ||
|
|
230
|
+
prev?.bottom !== edgeInsets.bottom ||
|
|
231
|
+
prev?.right !== edgeInsets.right;
|
|
232
232
|
|
|
233
|
-
if (
|
|
233
|
+
if (changed) {
|
|
234
234
|
const center = map.getCenter();
|
|
235
235
|
const zoom = map.getZoom() ?? initialZoom;
|
|
236
236
|
if (center) {
|
|
@@ -243,14 +243,14 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
243
243
|
const newCenter = offsetCenter(
|
|
244
244
|
{ latitude: logicalCenter.lat, longitude: logicalCenter.lng },
|
|
245
245
|
zoom,
|
|
246
|
-
|
|
246
|
+
edgeInsets,
|
|
247
247
|
false
|
|
248
248
|
);
|
|
249
249
|
map.panTo(newCenter);
|
|
250
250
|
}
|
|
251
|
-
|
|
251
|
+
prevEdgeInsets.current = edgeInsets;
|
|
252
252
|
}
|
|
253
|
-
}, [map,
|
|
253
|
+
}, [map, edgeInsets, initialZoom, offsetCenter]);
|
|
254
254
|
|
|
255
255
|
const handleDragStart = () => {
|
|
256
256
|
setIsDragging(true);
|
|
@@ -49,8 +49,9 @@ export interface NativeProps extends ViewProps {
|
|
|
49
49
|
scrollEnabled?: boolean;
|
|
50
50
|
rotateEnabled?: boolean;
|
|
51
51
|
pitchEnabled?: boolean;
|
|
52
|
-
|
|
52
|
+
edgeInsets?: EdgeInsets;
|
|
53
53
|
userLocationEnabled?: boolean;
|
|
54
|
+
myLocationButtonEnabled?: boolean;
|
|
54
55
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
55
56
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
56
57
|
onCameraIdle?: DirectEventHandler<CameraIdleEvent>;
|
|
@@ -70,10 +71,10 @@ interface NativeCommands {
|
|
|
70
71
|
fitCoordinates: (
|
|
71
72
|
viewRef: React.ElementRef<ComponentType>,
|
|
72
73
|
coordinates: Coordinate[],
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
edgeInsetsTop: Double,
|
|
75
|
+
edgeInsetsLeft: Double,
|
|
76
|
+
edgeInsetsBottom: Double,
|
|
77
|
+
edgeInsetsRight: Double,
|
|
77
78
|
duration: Double
|
|
78
79
|
) => void;
|
|
79
80
|
}
|