@lugg/maps 0.2.0-alpha.23 → 0.2.0-alpha.25
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 +48 -8
- package/android/src/main/java/com/luggmaps/LuggMapViewManager.kt +16 -9
- package/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt +21 -27
- package/android/src/main/java/com/luggmaps/core/MapProviderDelegate.kt +7 -5
- package/android/src/main/java/com/luggmaps/core/PolylineAnimator.kt +5 -3
- package/ios/LuggMapView.mm +48 -67
- 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 +4 -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 +5 -5
- package/lib/typescript/src/MapView.types.d.ts +3 -3
- package/lib/typescript/src/MapView.types.d.ts.map +1 -1
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts +2 -2
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/MapView.tsx +4 -4
- package/src/MapView.types.ts +3 -3
- package/src/MapView.web.tsx +22 -22
- package/src/fabric/LuggMapViewNativeComponent.ts +5 -5
|
@@ -4,8 +4,10 @@ import android.annotation.SuppressLint
|
|
|
4
4
|
import android.view.View
|
|
5
5
|
import android.view.View.VISIBLE
|
|
6
6
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
+
import com.facebook.react.util.RNLog
|
|
7
8
|
import com.facebook.react.views.view.ReactViewGroup
|
|
8
9
|
import com.google.android.gms.maps.model.LatLng
|
|
10
|
+
import com.luggmaps.core.EdgeInsets
|
|
9
11
|
import com.luggmaps.core.GoogleMapProvider
|
|
10
12
|
import com.luggmaps.core.MapProvider
|
|
11
13
|
import com.luggmaps.core.MapProviderDelegate
|
|
@@ -37,11 +39,20 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
37
39
|
private var provider: MapProvider? = null
|
|
38
40
|
private var mapWrapperView: LuggMapWrapperView? = null
|
|
39
41
|
|
|
40
|
-
// Cached
|
|
42
|
+
// Cached props (applied during initializeProvider)
|
|
41
43
|
private var mapId: String = GoogleMapProvider.DEMO_MAP_ID
|
|
42
44
|
private var initialLatitude: Double = 37.78
|
|
43
45
|
private var initialLongitude: Double = -122.43
|
|
44
46
|
private var initialZoom: Float = 14f
|
|
47
|
+
private var theme: String = "system"
|
|
48
|
+
private var zoomEnabled: Boolean = true
|
|
49
|
+
private var scrollEnabled: Boolean = true
|
|
50
|
+
private var rotateEnabled: Boolean = true
|
|
51
|
+
private var pitchEnabled: Boolean = true
|
|
52
|
+
private var userLocationEnabled: Boolean = false
|
|
53
|
+
private var minZoom: Double? = null
|
|
54
|
+
private var maxZoom: Double? = null
|
|
55
|
+
private var edgeInsets: EdgeInsets = EdgeInsets()
|
|
45
56
|
|
|
46
57
|
// region View Lifecycle
|
|
47
58
|
|
|
@@ -97,6 +108,8 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
97
108
|
google.delegate = this
|
|
98
109
|
provider = google
|
|
99
110
|
|
|
111
|
+
applyProps()
|
|
112
|
+
|
|
100
113
|
google.initializeMap(mapWrapperView!!, initialLatitude, initialLongitude, initialZoom)
|
|
101
114
|
|
|
102
115
|
// Flush children mounted before provider was created
|
|
@@ -128,6 +141,24 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
128
141
|
|
|
129
142
|
// region Property Setters
|
|
130
143
|
|
|
144
|
+
private fun applyProps() {
|
|
145
|
+
provider?.setZoomEnabled(zoomEnabled)
|
|
146
|
+
provider?.setScrollEnabled(scrollEnabled)
|
|
147
|
+
provider?.setRotateEnabled(rotateEnabled)
|
|
148
|
+
provider?.setPitchEnabled(pitchEnabled)
|
|
149
|
+
provider?.setUserLocationEnabled(userLocationEnabled)
|
|
150
|
+
provider?.setTheme(theme)
|
|
151
|
+
minZoom?.let { provider?.setMinZoom(it) }
|
|
152
|
+
maxZoom?.let { provider?.setMaxZoom(it) }
|
|
153
|
+
provider?.setEdgeInsets(edgeInsets)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
fun setProvider(value: String?) {
|
|
157
|
+
if (value != null && value != "google") {
|
|
158
|
+
RNLog.w(reactContext, "LuggMapView: Only Google Maps is supported on Android")
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
131
162
|
fun setMapId(value: String?) {
|
|
132
163
|
if (value.isNullOrEmpty()) return
|
|
133
164
|
mapId = value
|
|
@@ -143,39 +174,48 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
143
174
|
}
|
|
144
175
|
|
|
145
176
|
fun setZoomEnabled(enabled: Boolean) {
|
|
177
|
+
zoomEnabled = enabled
|
|
146
178
|
provider?.setZoomEnabled(enabled)
|
|
147
179
|
}
|
|
148
180
|
|
|
149
181
|
fun setScrollEnabled(enabled: Boolean) {
|
|
182
|
+
scrollEnabled = enabled
|
|
150
183
|
provider?.setScrollEnabled(enabled)
|
|
151
184
|
}
|
|
152
185
|
|
|
153
186
|
fun setRotateEnabled(enabled: Boolean) {
|
|
187
|
+
rotateEnabled = enabled
|
|
154
188
|
provider?.setRotateEnabled(enabled)
|
|
155
189
|
}
|
|
156
190
|
|
|
157
191
|
fun setPitchEnabled(enabled: Boolean) {
|
|
192
|
+
pitchEnabled = enabled
|
|
158
193
|
provider?.setPitchEnabled(enabled)
|
|
159
194
|
}
|
|
160
195
|
|
|
161
196
|
fun setUserLocationEnabled(enabled: Boolean) {
|
|
197
|
+
userLocationEnabled = enabled
|
|
162
198
|
provider?.setUserLocationEnabled(enabled)
|
|
163
199
|
}
|
|
164
200
|
|
|
165
201
|
fun setMinZoom(zoom: Double) {
|
|
202
|
+
minZoom = zoom
|
|
166
203
|
provider?.setMinZoom(zoom)
|
|
167
204
|
}
|
|
168
205
|
|
|
169
206
|
fun setMaxZoom(zoom: Double) {
|
|
207
|
+
maxZoom = zoom
|
|
170
208
|
provider?.setMaxZoom(zoom)
|
|
171
209
|
}
|
|
172
210
|
|
|
173
211
|
fun setTheme(value: String) {
|
|
212
|
+
theme = value
|
|
174
213
|
provider?.setTheme(value)
|
|
175
214
|
}
|
|
176
215
|
|
|
177
|
-
fun
|
|
178
|
-
|
|
216
|
+
fun setEdgeInsets(top: Int, left: Int, bottom: Int, right: Int) {
|
|
217
|
+
edgeInsets = EdgeInsets(top, left, bottom, right)
|
|
218
|
+
provider?.setEdgeInsets(edgeInsets)
|
|
179
219
|
}
|
|
180
220
|
|
|
181
221
|
// endregion
|
|
@@ -188,13 +228,13 @@ class LuggMapView(private val reactContext: ThemedReactContext) :
|
|
|
188
228
|
|
|
189
229
|
fun fitCoordinates(
|
|
190
230
|
coordinates: List<LatLng>,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
231
|
+
edgeInsetsTop: Int,
|
|
232
|
+
edgeInsetsLeft: Int,
|
|
233
|
+
edgeInsetsBottom: Int,
|
|
234
|
+
edgeInsetsRight: Int,
|
|
195
235
|
duration: Int
|
|
196
236
|
) {
|
|
197
|
-
provider?.fitCoordinates(coordinates,
|
|
237
|
+
provider?.fitCoordinates(coordinates, edgeInsetsTop, edgeInsetsLeft, edgeInsetsBottom, edgeInsetsRight, duration)
|
|
198
238
|
}
|
|
199
239
|
|
|
200
240
|
// endregion
|
|
@@ -66,7 +66,7 @@ class LuggMapViewManager :
|
|
|
66
66
|
|
|
67
67
|
@ReactProp(name = "provider")
|
|
68
68
|
override fun setProvider(view: LuggMapView, value: String?) {
|
|
69
|
-
|
|
69
|
+
view.setProvider(value)
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
@ReactProp(name = "mapId")
|
|
@@ -128,14 +128,14 @@ class LuggMapViewManager :
|
|
|
128
128
|
view.setTheme(value ?: "system")
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
@ReactProp(name = "
|
|
132
|
-
override fun
|
|
131
|
+
@ReactProp(name = "edgeInsets")
|
|
132
|
+
override fun setEdgeInsets(view: LuggMapView, value: ReadableMap?) {
|
|
133
133
|
value?.let {
|
|
134
134
|
val top = if (it.hasKey("top")) it.getDouble("top").toFloat().dpToPx().toInt() else 0
|
|
135
135
|
val left = if (it.hasKey("left")) it.getDouble("left").toFloat().dpToPx().toInt() else 0
|
|
136
136
|
val bottom = if (it.hasKey("bottom")) it.getDouble("bottom").toFloat().dpToPx().toInt() else 0
|
|
137
137
|
val right = if (it.hasKey("right")) it.getDouble("right").toFloat().dpToPx().toInt() else 0
|
|
138
|
-
view.
|
|
138
|
+
view.setEdgeInsets(top, left, bottom, right)
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
@@ -157,10 +157,10 @@ class LuggMapViewManager :
|
|
|
157
157
|
override fun fitCoordinates(
|
|
158
158
|
view: LuggMapView,
|
|
159
159
|
coordinates: ReadableArray?,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
edgeInsetsTop: Double,
|
|
161
|
+
edgeInsetsLeft: Double,
|
|
162
|
+
edgeInsetsBottom: Double,
|
|
163
|
+
edgeInsetsRight: Double,
|
|
164
164
|
duration: Double
|
|
165
165
|
) {
|
|
166
166
|
val coords = mutableListOf<LatLng>()
|
|
@@ -172,7 +172,14 @@ class LuggMapViewManager :
|
|
|
172
172
|
coords.add(LatLng(lat, lng))
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
view.fitCoordinates(
|
|
175
|
+
view.fitCoordinates(
|
|
176
|
+
coords,
|
|
177
|
+
edgeInsetsTop.toInt(),
|
|
178
|
+
edgeInsetsLeft.toInt(),
|
|
179
|
+
edgeInsetsBottom.toInt(),
|
|
180
|
+
edgeInsetsRight.toInt(),
|
|
181
|
+
duration.toInt()
|
|
182
|
+
)
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
companion object {
|
|
@@ -61,11 +61,8 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
61
61
|
// Theme
|
|
62
62
|
private var theme: String = "system"
|
|
63
63
|
|
|
64
|
-
//
|
|
65
|
-
private var
|
|
66
|
-
private var paddingLeft: Int = 0
|
|
67
|
-
private var paddingBottom: Int = 0
|
|
68
|
-
private var paddingRight: Int = 0
|
|
64
|
+
// Edge Insets
|
|
65
|
+
private var edgeInsets: EdgeInsets = EdgeInsets()
|
|
69
66
|
|
|
70
67
|
// region MapProvider
|
|
71
68
|
|
|
@@ -111,7 +108,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
111
108
|
|
|
112
109
|
applyUiSettings()
|
|
113
110
|
applyZoomLimits()
|
|
114
|
-
|
|
111
|
+
applyEdgeInsets()
|
|
115
112
|
applyTheme()
|
|
116
113
|
applyUserLocation()
|
|
117
114
|
processPendingMarkers()
|
|
@@ -202,12 +199,9 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
202
199
|
}
|
|
203
200
|
}
|
|
204
201
|
|
|
205
|
-
override fun
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
paddingBottom = bottom
|
|
209
|
-
paddingRight = right
|
|
210
|
-
applyPadding()
|
|
202
|
+
override fun setEdgeInsets(edgeInsets: EdgeInsets) {
|
|
203
|
+
this.edgeInsets = edgeInsets
|
|
204
|
+
applyEdgeInsets()
|
|
211
205
|
}
|
|
212
206
|
|
|
213
207
|
// endregion
|
|
@@ -403,10 +397,10 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
403
397
|
|
|
404
398
|
override fun fitCoordinates(
|
|
405
399
|
coordinates: List<Any>,
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
400
|
+
edgeInsetsTop: Int,
|
|
401
|
+
edgeInsetsLeft: Int,
|
|
402
|
+
edgeInsetsBottom: Int,
|
|
403
|
+
edgeInsetsRight: Int,
|
|
410
404
|
duration: Int
|
|
411
405
|
) {
|
|
412
406
|
val map = googleMap ?: return
|
|
@@ -419,16 +413,16 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
419
413
|
latLngs.forEach { boundsBuilder.include(it) }
|
|
420
414
|
val bounds = boundsBuilder.build()
|
|
421
415
|
|
|
422
|
-
val top =
|
|
423
|
-
val left =
|
|
424
|
-
val bottom =
|
|
425
|
-
val right =
|
|
416
|
+
val top = edgeInsetsTop.toFloat().dpToPx().toInt()
|
|
417
|
+
val left = edgeInsetsLeft.toFloat().dpToPx().toInt()
|
|
418
|
+
val bottom = edgeInsetsBottom.toFloat().dpToPx().toInt()
|
|
419
|
+
val right = edgeInsetsRight.toFloat().dpToPx().toInt()
|
|
426
420
|
|
|
427
421
|
map.setPadding(
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
422
|
+
edgeInsets.left + left,
|
|
423
|
+
edgeInsets.top + top,
|
|
424
|
+
edgeInsets.right + right,
|
|
425
|
+
edgeInsets.bottom + bottom
|
|
432
426
|
)
|
|
433
427
|
|
|
434
428
|
val cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 0)
|
|
@@ -439,7 +433,7 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
439
433
|
else -> map.moveCamera(cameraUpdate)
|
|
440
434
|
}
|
|
441
435
|
|
|
442
|
-
map.setPadding(
|
|
436
|
+
map.setPadding(edgeInsets.left, edgeInsets.top, edgeInsets.right, edgeInsets.bottom)
|
|
443
437
|
}
|
|
444
438
|
|
|
445
439
|
// endregion
|
|
@@ -462,8 +456,8 @@ class GoogleMapProvider(private val context: Context) :
|
|
|
462
456
|
}
|
|
463
457
|
}
|
|
464
458
|
|
|
465
|
-
private fun
|
|
466
|
-
googleMap?.setPadding(
|
|
459
|
+
private fun applyEdgeInsets() {
|
|
460
|
+
googleMap?.setPadding(edgeInsets.left, edgeInsets.top, edgeInsets.right, edgeInsets.bottom)
|
|
467
461
|
}
|
|
468
462
|
|
|
469
463
|
private fun applyTheme() {
|
|
@@ -4,6 +4,8 @@ import android.view.View
|
|
|
4
4
|
import com.luggmaps.LuggMarkerView
|
|
5
5
|
import com.luggmaps.LuggPolylineView
|
|
6
6
|
|
|
7
|
+
data class EdgeInsets(val top: Int = 0, val left: Int = 0, val bottom: Int = 0, val right: Int = 0)
|
|
8
|
+
|
|
7
9
|
interface MapProviderDelegate {
|
|
8
10
|
fun mapProviderDidReady()
|
|
9
11
|
fun mapProviderDidMoveCamera(latitude: Double, longitude: Double, zoom: Float, gesture: Boolean)
|
|
@@ -26,7 +28,7 @@ interface MapProvider {
|
|
|
26
28
|
fun setTheme(value: String)
|
|
27
29
|
fun setMinZoom(zoom: Double)
|
|
28
30
|
fun setMaxZoom(zoom: Double)
|
|
29
|
-
fun
|
|
31
|
+
fun setEdgeInsets(edgeInsets: EdgeInsets)
|
|
30
32
|
|
|
31
33
|
// Children
|
|
32
34
|
fun addMarkerView(markerView: LuggMarkerView)
|
|
@@ -42,10 +44,10 @@ interface MapProvider {
|
|
|
42
44
|
fun moveCamera(latitude: Double, longitude: Double, zoom: Double, duration: Int)
|
|
43
45
|
fun fitCoordinates(
|
|
44
46
|
coordinates: List<Any>,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
edgeInsetsTop: Int,
|
|
48
|
+
edgeInsetsLeft: Int,
|
|
49
|
+
edgeInsetsBottom: Int,
|
|
50
|
+
edgeInsetsRight: Int,
|
|
49
51
|
duration: Int
|
|
50
52
|
)
|
|
51
53
|
}
|
|
@@ -91,10 +91,10 @@ class PolylineAnimator {
|
|
|
91
91
|
computeCumulativeDistances()
|
|
92
92
|
|
|
93
93
|
val trailLength = animatedOptions.trailLength.coerceIn(0.01f, 1f)
|
|
94
|
-
val
|
|
94
|
+
val maxProgress = if (trailLength < 1f) 1f else 2.15f
|
|
95
95
|
|
|
96
|
-
animator = ValueAnimator.ofFloat(0f,
|
|
97
|
-
duration = animatedOptions.duration
|
|
96
|
+
animator = ValueAnimator.ofFloat(0f, maxProgress).apply {
|
|
97
|
+
duration = (animatedOptions.duration * maxProgress).toLong()
|
|
98
98
|
startDelay = animatedOptions.delay
|
|
99
99
|
repeatCount = ValueAnimator.INFINITE
|
|
100
100
|
interpolator = LinearInterpolator()
|
|
@@ -232,6 +232,8 @@ class PolylineAnimator {
|
|
|
232
232
|
reusablePoints.add(endCoord)
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
if (reusablePoints.size < 2) return
|
|
236
|
+
|
|
235
237
|
poly.points = reusablePoints
|
|
236
238
|
|
|
237
239
|
if (strokeColors.size <= 1) {
|
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
|
}
|
|
@@ -107,7 +108,7 @@ using namespace luggmaps::events;
|
|
|
107
108
|
[super didMoveToWindow];
|
|
108
109
|
if (self.window) {
|
|
109
110
|
if (!_provider && _mapWrapperView) {
|
|
110
|
-
[self
|
|
111
|
+
[self initializeProvider];
|
|
111
112
|
}
|
|
112
113
|
[_provider resumeAnimations];
|
|
113
114
|
} else {
|
|
@@ -124,9 +125,9 @@ using namespace luggmaps::events;
|
|
|
124
125
|
_initialized = NO;
|
|
125
126
|
}
|
|
126
127
|
|
|
127
|
-
#pragma mark -
|
|
128
|
+
#pragma mark - Provider Initialization
|
|
128
129
|
|
|
129
|
-
- (void)
|
|
130
|
+
- (void)initializeProvider {
|
|
130
131
|
if (_provider || !_mapWrapperView)
|
|
131
132
|
return;
|
|
132
133
|
|
|
@@ -144,14 +145,7 @@ using namespace luggmaps::events;
|
|
|
144
145
|
_provider.delegate = self;
|
|
145
146
|
|
|
146
147
|
// Apply cached props before initialization
|
|
147
|
-
[
|
|
148
|
-
[_provider setScrollEnabled:_scrollEnabled];
|
|
149
|
-
[_provider setRotateEnabled:_rotateEnabled];
|
|
150
|
-
[_provider setPitchEnabled:_pitchEnabled];
|
|
151
|
-
[_provider setUserLocationEnabled:_userLocationEnabled];
|
|
152
|
-
[_provider setTheme:_theme];
|
|
153
|
-
[_provider setMinZoom:_minZoom];
|
|
154
|
-
[_provider setMaxZoom:_maxZoom];
|
|
148
|
+
[self applyProps];
|
|
155
149
|
|
|
156
150
|
CLLocationCoordinate2D coordinate =
|
|
157
151
|
CLLocationCoordinate2DMake(viewProps.initialCoordinate.latitude,
|
|
@@ -161,7 +155,7 @@ using namespace luggmaps::events;
|
|
|
161
155
|
initialCoordinate:coordinate
|
|
162
156
|
initialZoom:viewProps.initialZoom];
|
|
163
157
|
|
|
164
|
-
[_provider
|
|
158
|
+
[_provider setEdgeInsets:_edgeInsets oldEdgeInsets:UIEdgeInsetsZero];
|
|
165
159
|
|
|
166
160
|
_initialized = YES;
|
|
167
161
|
|
|
@@ -199,14 +193,22 @@ using namespace luggmaps::events;
|
|
|
199
193
|
|
|
200
194
|
#pragma mark - Property Setters
|
|
201
195
|
|
|
196
|
+
- (void)applyProps {
|
|
197
|
+
[_provider setZoomEnabled:_zoomEnabled];
|
|
198
|
+
[_provider setScrollEnabled:_scrollEnabled];
|
|
199
|
+
[_provider setRotateEnabled:_rotateEnabled];
|
|
200
|
+
[_provider setPitchEnabled:_pitchEnabled];
|
|
201
|
+
[_provider setUserLocationEnabled:_userLocationEnabled];
|
|
202
|
+
[_provider setTheme:(NSInteger)_theme];
|
|
203
|
+
[_provider setMinZoom:_minZoom];
|
|
204
|
+
[_provider setMaxZoom:_maxZoom];
|
|
205
|
+
}
|
|
206
|
+
|
|
202
207
|
- (void)updateProps:(Props::Shared const &)props
|
|
203
208
|
oldProps:(Props::Shared const &)oldProps {
|
|
204
|
-
const auto &oldViewProps =
|
|
205
|
-
*std::static_pointer_cast<LuggMapViewProps const>(oldProps);
|
|
206
209
|
const auto &newViewProps =
|
|
207
210
|
*std::static_pointer_cast<LuggMapViewProps const>(props);
|
|
208
211
|
|
|
209
|
-
// Capture provider and mapId before content is created
|
|
210
212
|
_providerType = newViewProps.provider;
|
|
211
213
|
|
|
212
214
|
NSString *newMapId =
|
|
@@ -215,57 +217,36 @@ using namespace luggmaps::events;
|
|
|
215
217
|
_mapId = newMapId;
|
|
216
218
|
}
|
|
217
219
|
|
|
218
|
-
// Cache and forward props
|
|
219
220
|
_zoomEnabled = newViewProps.zoomEnabled;
|
|
220
221
|
_scrollEnabled = newViewProps.scrollEnabled;
|
|
221
222
|
_rotateEnabled = newViewProps.rotateEnabled;
|
|
222
223
|
_pitchEnabled = newViewProps.pitchEnabled;
|
|
223
224
|
_userLocationEnabled = newViewProps.userLocationEnabled;
|
|
225
|
+
_minZoom = newViewProps.minZoom;
|
|
226
|
+
_maxZoom = newViewProps.maxZoom;
|
|
224
227
|
|
|
225
|
-
|
|
226
|
-
_padding =
|
|
227
|
-
UIEdgeInsetsMake(newViewProps.padding.top, newViewProps.padding.left,
|
|
228
|
-
newViewProps.padding.bottom, newViewProps.padding.right);
|
|
229
|
-
|
|
230
|
-
if (_provider) {
|
|
231
|
-
[_provider setZoomEnabled:_zoomEnabled];
|
|
232
|
-
[_provider setScrollEnabled:_scrollEnabled];
|
|
233
|
-
[_provider setRotateEnabled:_rotateEnabled];
|
|
234
|
-
[_provider setPitchEnabled:_pitchEnabled];
|
|
235
|
-
[_provider setUserLocationEnabled:_userLocationEnabled];
|
|
236
|
-
|
|
237
|
-
if (oldViewProps.theme != newViewProps.theme) {
|
|
238
|
-
NSString *theme;
|
|
239
|
-
if (newViewProps.theme == LuggMapViewTheme::Dark) {
|
|
240
|
-
theme = @"dark";
|
|
241
|
-
} else if (newViewProps.theme == LuggMapViewTheme::Light) {
|
|
242
|
-
theme = @"light";
|
|
243
|
-
} else {
|
|
244
|
-
theme = @"system";
|
|
245
|
-
}
|
|
246
|
-
_theme = theme;
|
|
247
|
-
[_provider setTheme:_theme];
|
|
248
|
-
}
|
|
228
|
+
_theme = newViewProps.theme;
|
|
249
229
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
// Cache theme for later
|
|
255
|
-
if (newViewProps.theme == LuggMapViewTheme::Dark) {
|
|
256
|
-
_theme = @"dark";
|
|
257
|
-
} else if (newViewProps.theme == LuggMapViewTheme::Light) {
|
|
258
|
-
_theme = @"light";
|
|
259
|
-
} else {
|
|
260
|
-
_theme = @"system";
|
|
261
|
-
}
|
|
262
|
-
_minZoom = newViewProps.minZoom;
|
|
263
|
-
_maxZoom = newViewProps.maxZoom;
|
|
264
|
-
}
|
|
230
|
+
_oldEdgeInsets = _edgeInsets;
|
|
231
|
+
_edgeInsets = UIEdgeInsetsMake(
|
|
232
|
+
newViewProps.edgeInsets.top, newViewProps.edgeInsets.left,
|
|
233
|
+
newViewProps.edgeInsets.bottom, newViewProps.edgeInsets.right);
|
|
265
234
|
|
|
266
235
|
[super updateProps:props oldProps:oldProps];
|
|
267
236
|
}
|
|
268
237
|
|
|
238
|
+
- (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask {
|
|
239
|
+
[super finalizeUpdates:updateMask];
|
|
240
|
+
|
|
241
|
+
if (updateMask & RNComponentViewUpdateMaskProps) {
|
|
242
|
+
if (!_provider)
|
|
243
|
+
return;
|
|
244
|
+
|
|
245
|
+
[self applyProps];
|
|
246
|
+
[_provider setEdgeInsets:_edgeInsets oldEdgeInsets:_oldEdgeInsets];
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
269
250
|
#pragma mark - Commands
|
|
270
251
|
|
|
271
252
|
- (void)moveCamera:(double)latitude
|
|
@@ -279,16 +260,16 @@ using namespace luggmaps::events;
|
|
|
279
260
|
}
|
|
280
261
|
|
|
281
262
|
- (void)fitCoordinates:(NSArray *)coordinates
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
263
|
+
edgeInsetsTop:(double)edgeInsetsTop
|
|
264
|
+
edgeInsetsLeft:(double)edgeInsetsLeft
|
|
265
|
+
edgeInsetsBottom:(double)edgeInsetsBottom
|
|
266
|
+
edgeInsetsRight:(double)edgeInsetsRight
|
|
286
267
|
duration:(double)duration {
|
|
287
268
|
[_provider fitCoordinates:coordinates
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
269
|
+
edgeInsetsTop:edgeInsetsTop
|
|
270
|
+
edgeInsetsLeft:edgeInsetsLeft
|
|
271
|
+
edgeInsetsBottom:edgeInsetsBottom
|
|
272
|
+
edgeInsetsRight:edgeInsetsRight
|
|
292
273
|
duration:duration];
|
|
293
274
|
}
|
|
294
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,7 +61,7 @@ export class MapView extends React.Component {
|
|
|
61
61
|
scrollEnabled,
|
|
62
62
|
rotateEnabled,
|
|
63
63
|
pitchEnabled,
|
|
64
|
-
|
|
64
|
+
edgeInsets,
|
|
65
65
|
userLocationEnabled,
|
|
66
66
|
theme,
|
|
67
67
|
onCameraMove,
|
|
@@ -83,7 +83,7 @@ export class MapView extends React.Component {
|
|
|
83
83
|
scrollEnabled: scrollEnabled,
|
|
84
84
|
rotateEnabled: rotateEnabled,
|
|
85
85
|
pitchEnabled: pitchEnabled,
|
|
86
|
-
|
|
86
|
+
edgeInsets: edgeInsets,
|
|
87
87
|
userLocationEnabled: userLocationEnabled,
|
|
88
88
|
theme: theme,
|
|
89
89
|
onCameraMove: onCameraMove,
|
|
@@ -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","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,7 +49,7 @@ 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
54
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
55
55
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
@@ -70,10 +70,10 @@ interface NativeCommands {
|
|
|
70
70
|
fitCoordinates: (
|
|
71
71
|
viewRef: React.ElementRef<ComponentType>,
|
|
72
72
|
coordinates: Coordinate[],
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
edgeInsetsTop: Double,
|
|
74
|
+
edgeInsetsLeft: Double,
|
|
75
|
+
edgeInsetsBottom: Double,
|
|
76
|
+
edgeInsetsRight: Double,
|
|
77
77
|
duration: Double
|
|
78
78
|
) => void;
|
|
79
79
|
}
|
|
@@ -14,7 +14,7 @@ export interface MoveCameraOptions {
|
|
|
14
14
|
* @default duration -1
|
|
15
15
|
*/
|
|
16
16
|
export interface FitCoordinatesOptions {
|
|
17
|
-
|
|
17
|
+
edgeInsets?: EdgeInsets;
|
|
18
18
|
duration?: number;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
@@ -83,9 +83,9 @@ export interface MapViewProps extends ViewProps {
|
|
|
83
83
|
*/
|
|
84
84
|
pitchEnabled?: boolean;
|
|
85
85
|
/**
|
|
86
|
-
* Map content
|
|
86
|
+
* Map content edge insets
|
|
87
87
|
*/
|
|
88
|
-
|
|
88
|
+
edgeInsets?: EdgeInsets;
|
|
89
89
|
/**
|
|
90
90
|
* Show current user location on the map.
|
|
91
91
|
* Requires location permission to be granted, otherwise silently ignored.
|
|
@@ -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;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,
|
|
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;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;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;;;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,7 +39,7 @@ 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
44
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
45
45
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
@@ -49,7 +49,7 @@ export interface NativeProps extends ViewProps {
|
|
|
49
49
|
type ComponentType = HostComponent<NativeProps>;
|
|
50
50
|
interface NativeCommands {
|
|
51
51
|
moveCamera: (viewRef: React.ElementRef<ComponentType>, latitude: Double, longitude: Double, zoom: Double, duration: Double) => void;
|
|
52
|
-
fitCoordinates: (viewRef: React.ElementRef<ComponentType>, coordinates: Coordinate[],
|
|
52
|
+
fitCoordinates: (viewRef: React.ElementRef<ComponentType>, coordinates: Coordinate[], edgeInsetsTop: Double, edgeInsetsLeft: Double, edgeInsetsBottom: Double, edgeInsetsRight: Double, duration: Double) => void;
|
|
53
53
|
}
|
|
54
54
|
export declare const Commands: NativeCommands;
|
|
55
55
|
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,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,7 +79,7 @@ export class MapView
|
|
|
79
79
|
scrollEnabled,
|
|
80
80
|
rotateEnabled,
|
|
81
81
|
pitchEnabled,
|
|
82
|
-
|
|
82
|
+
edgeInsets,
|
|
83
83
|
userLocationEnabled,
|
|
84
84
|
theme,
|
|
85
85
|
onCameraMove,
|
|
@@ -103,7 +103,7 @@ export class MapView
|
|
|
103
103
|
scrollEnabled={scrollEnabled}
|
|
104
104
|
rotateEnabled={rotateEnabled}
|
|
105
105
|
pitchEnabled={pitchEnabled}
|
|
106
|
-
|
|
106
|
+
edgeInsets={edgeInsets}
|
|
107
107
|
userLocationEnabled={userLocationEnabled}
|
|
108
108
|
theme={theme}
|
|
109
109
|
onCameraMove={onCameraMove}
|
package/src/MapView.types.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface MoveCameraOptions {
|
|
|
16
16
|
* @default duration -1
|
|
17
17
|
*/
|
|
18
18
|
export interface FitCoordinatesOptions {
|
|
19
|
-
|
|
19
|
+
edgeInsets?: EdgeInsets;
|
|
20
20
|
duration?: number;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -91,9 +91,9 @@ export interface MapViewProps extends ViewProps {
|
|
|
91
91
|
*/
|
|
92
92
|
pitchEnabled?: boolean;
|
|
93
93
|
/**
|
|
94
|
-
* Map content
|
|
94
|
+
* Map content edge insets
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
edgeInsets?: EdgeInsets;
|
|
97
97
|
/**
|
|
98
98
|
* Show current user location on the map.
|
|
99
99
|
* Requires location permission to be granted, otherwise silently ignored.
|
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,7 +49,7 @@ 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
54
|
theme?: WithDefault<'light' | 'dark' | 'system', 'system'>;
|
|
55
55
|
onCameraMove?: DirectEventHandler<CameraMoveEvent>;
|
|
@@ -70,10 +70,10 @@ interface NativeCommands {
|
|
|
70
70
|
fitCoordinates: (
|
|
71
71
|
viewRef: React.ElementRef<ComponentType>,
|
|
72
72
|
coordinates: Coordinate[],
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
edgeInsetsTop: Double,
|
|
74
|
+
edgeInsetsLeft: Double,
|
|
75
|
+
edgeInsetsBottom: Double,
|
|
76
|
+
edgeInsetsRight: Double,
|
|
77
77
|
duration: Double
|
|
78
78
|
) => void;
|
|
79
79
|
}
|