@rnmapbox/maps 10.0.0-beta.70 → 10.0.0-beta.71
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/rctmgl/build.gradle +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCamera.kt +68 -29
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.kt +16 -13
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/UserTrackingMode.kt +42 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +49 -13
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.kt +23 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.kt +21 -0
- package/index.d.ts +14 -62
- package/ios/RCTMGL-v10/RCTMGLCamera.swift +52 -26
- package/ios/RCTMGL-v10/RCTMGLCameraManager.m +5 -2
- package/ios/RCTMGL-v10/RCTMGLImages.swift +54 -8
- package/ios/install.md +1 -1
- package/javascript/components/Camera.tsx +7 -3
- package/javascript/components/Images.tsx +133 -0
- package/javascript/modules/location/{locationManager.js → locationManager.ts} +91 -18
- package/javascript/utils/MapboxStyles.d.ts +3 -3
- package/javascript/utils/styleMap.ts +2 -2
- package/lib/commonjs/classes/AnimatedCoordinatesArray.js.map +1 -1
- package/lib/commonjs/classes/AnimatedExtractCoordinateFromArray.js +2 -5
- package/lib/commonjs/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
- package/lib/commonjs/classes/AnimatedPoint.js.map +1 -1
- package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
- package/lib/commonjs/classes/AnimatedShape.js.map +1 -1
- package/lib/commonjs/classes/index.d.js.map +1 -1
- package/lib/commonjs/classes/index.js.map +1 -1
- package/lib/commonjs/components/AbstractLayer.js +6 -10
- package/lib/commonjs/components/AbstractLayer.js.map +1 -1
- package/lib/commonjs/components/AbstractSource.js +3 -10
- package/lib/commonjs/components/AbstractSource.js.map +1 -1
- package/lib/commonjs/components/Atmosphere.js.map +1 -1
- package/lib/commonjs/components/BackgroundLayer.js +3 -6
- package/lib/commonjs/components/BackgroundLayer.js.map +1 -1
- package/lib/commonjs/components/Callout.js +27 -30
- package/lib/commonjs/components/Callout.js.map +1 -1
- package/lib/commonjs/components/Camera.js +3 -1
- package/lib/commonjs/components/Camera.js.map +1 -1
- package/lib/commonjs/components/CircleLayer.js +3 -6
- package/lib/commonjs/components/CircleLayer.js.map +1 -1
- package/lib/commonjs/components/FillExtrusionLayer.js +3 -6
- package/lib/commonjs/components/FillExtrusionLayer.js.map +1 -1
- package/lib/commonjs/components/FillLayer.js +3 -6
- package/lib/commonjs/components/FillLayer.js.map +1 -1
- package/lib/commonjs/components/HeadingIndicator.js.map +1 -1
- package/lib/commonjs/components/HeatmapLayer.js +3 -6
- package/lib/commonjs/components/HeatmapLayer.js.map +1 -1
- package/lib/commonjs/components/ImageSource.js +16 -19
- package/lib/commonjs/components/ImageSource.js.map +1 -1
- package/lib/commonjs/components/Images.js +3 -34
- package/lib/commonjs/components/Images.js.map +1 -1
- package/lib/commonjs/components/Light.js +7 -10
- package/lib/commonjs/components/Light.js.map +1 -1
- package/lib/commonjs/components/LineLayer.js +3 -6
- package/lib/commonjs/components/LineLayer.js.map +1 -1
- package/lib/commonjs/components/MapView.js +227 -230
- package/lib/commonjs/components/MapView.js.map +1 -1
- package/lib/commonjs/components/MarkerView.js +9 -16
- package/lib/commonjs/components/MarkerView.js.map +1 -1
- package/lib/commonjs/components/NativeBridgeComponent.js +0 -7
- package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
- package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
- package/lib/commonjs/components/PointAnnotation.js +8 -11
- package/lib/commonjs/components/PointAnnotation.js.map +1 -1
- package/lib/commonjs/components/RasterDemSource.js +36 -39
- package/lib/commonjs/components/RasterDemSource.js.map +1 -1
- package/lib/commonjs/components/RasterLayer.js +3 -6
- package/lib/commonjs/components/RasterLayer.js.map +1 -1
- package/lib/commonjs/components/RasterSource.js +45 -48
- package/lib/commonjs/components/RasterSource.js.map +1 -1
- package/lib/commonjs/components/ShapeSource.js +4 -7
- package/lib/commonjs/components/ShapeSource.js.map +1 -1
- package/lib/commonjs/components/SkyLayer.js +3 -6
- package/lib/commonjs/components/SkyLayer.js.map +1 -1
- package/lib/commonjs/components/Style.js.map +1 -1
- package/lib/commonjs/components/SymbolLayer.js +3 -6
- package/lib/commonjs/components/SymbolLayer.js.map +1 -1
- package/lib/commonjs/components/Terrain.js.map +1 -1
- package/lib/commonjs/components/UserLocation.js +68 -70
- package/lib/commonjs/components/UserLocation.js.map +1 -1
- package/lib/commonjs/components/VectorSource.js +63 -66
- package/lib/commonjs/components/VectorSource.js.map +1 -1
- package/lib/commonjs/components/annotations/Annotation.js +16 -19
- package/lib/commonjs/components/annotations/Annotation.js.map +1 -1
- package/lib/commonjs/modules/location/locationManager.js +21 -10
- package/lib/commonjs/modules/location/locationManager.js.map +1 -1
- package/lib/commonjs/modules/offline/OfflineCreatePackOptions.js.map +1 -1
- package/lib/commonjs/modules/offline/OfflinePack.js.map +1 -1
- package/lib/commonjs/modules/offline/offlineManager.js.map +1 -1
- package/lib/commonjs/modules/snapshot/SnapshotOptions.js.map +1 -1
- package/lib/commonjs/modules/snapshot/snapshotManager.js.map +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/utils/BridgeValue.js +0 -4
- package/lib/commonjs/utils/BridgeValue.js.map +1 -1
- package/lib/commonjs/utils/Logger.js +1 -4
- package/lib/commonjs/utils/Logger.js.map +1 -1
- package/lib/commonjs/utils/MapboxStyles.d.js.map +1 -1
- package/lib/commonjs/utils/StyleValue.js.map +1 -1
- package/lib/commonjs/utils/animated/Animated.js.map +1 -1
- package/lib/commonjs/utils/deprecation.js.map +1 -1
- package/lib/commonjs/utils/filterUtils.js.map +1 -1
- package/lib/commonjs/utils/geoUtils.d.js.map +1 -1
- package/lib/commonjs/utils/geoUtils.js.map +1 -1
- package/lib/commonjs/utils/getAnnotationsLayerID.js.map +1 -1
- package/lib/commonjs/utils/index.d.js.map +1 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/styleMap.js +2 -2
- package/lib/commonjs/utils/styleMap.js.map +1 -1
- package/lib/commonjs/web/MapContext.js.map +1 -1
- package/lib/commonjs/web/MapboxModule.js.map +1 -1
- package/lib/commonjs/web/UnimplementedComponent.js.map +1 -1
- package/lib/commonjs/web/components/Camera.js +2 -9
- package/lib/commonjs/web/components/Camera.js.map +1 -1
- package/lib/commonjs/web/components/MapView.js +5 -11
- package/lib/commonjs/web/components/MapView.js.map +1 -1
- package/lib/commonjs/web/index.js.map +1 -1
- package/lib/commonjs/web/utils/Logger.js +3 -7
- package/lib/commonjs/web/utils/Logger.js.map +1 -1
- package/lib/module/classes/AnimatedCoordinatesArray.js.map +1 -1
- package/lib/module/classes/AnimatedExtractCoordinateFromArray.js +2 -5
- package/lib/module/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
- package/lib/module/classes/AnimatedPoint.js.map +1 -1
- package/lib/module/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
- package/lib/module/classes/AnimatedShape.js.map +1 -1
- package/lib/module/classes/index.d.js.map +1 -1
- package/lib/module/classes/index.js.map +1 -1
- package/lib/module/components/AbstractLayer.js +4 -10
- package/lib/module/components/AbstractLayer.js.map +1 -1
- package/lib/module/components/AbstractSource.js +3 -10
- package/lib/module/components/AbstractSource.js.map +1 -1
- package/lib/module/components/Atmosphere.js.map +1 -1
- package/lib/module/components/BackgroundLayer.js +3 -6
- package/lib/module/components/BackgroundLayer.js.map +1 -1
- package/lib/module/components/Callout.js +27 -30
- package/lib/module/components/Callout.js.map +1 -1
- package/lib/module/components/Camera.js +3 -1
- package/lib/module/components/Camera.js.map +1 -1
- package/lib/module/components/CircleLayer.js +3 -6
- package/lib/module/components/CircleLayer.js.map +1 -1
- package/lib/module/components/FillExtrusionLayer.js +3 -6
- package/lib/module/components/FillExtrusionLayer.js.map +1 -1
- package/lib/module/components/FillLayer.js +3 -6
- package/lib/module/components/FillLayer.js.map +1 -1
- package/lib/module/components/HeadingIndicator.js.map +1 -1
- package/lib/module/components/HeatmapLayer.js +3 -6
- package/lib/module/components/HeatmapLayer.js.map +1 -1
- package/lib/module/components/ImageSource.js +16 -19
- package/lib/module/components/ImageSource.js.map +1 -1
- package/lib/module/components/Images.js +3 -34
- package/lib/module/components/Images.js.map +1 -1
- package/lib/module/components/Light.js +7 -10
- package/lib/module/components/Light.js.map +1 -1
- package/lib/module/components/LineLayer.js +3 -6
- package/lib/module/components/LineLayer.js.map +1 -1
- package/lib/module/components/MapView.js +227 -230
- package/lib/module/components/MapView.js.map +1 -1
- package/lib/module/components/MarkerView.js +9 -16
- package/lib/module/components/MarkerView.js.map +1 -1
- package/lib/module/components/NativeBridgeComponent.js +0 -7
- package/lib/module/components/NativeBridgeComponent.js.map +1 -1
- package/lib/module/components/NativeUserLocation.js.map +1 -1
- package/lib/module/components/PointAnnotation.js +8 -11
- package/lib/module/components/PointAnnotation.js.map +1 -1
- package/lib/module/components/RasterDemSource.js +36 -39
- package/lib/module/components/RasterDemSource.js.map +1 -1
- package/lib/module/components/RasterLayer.js +3 -6
- package/lib/module/components/RasterLayer.js.map +1 -1
- package/lib/module/components/RasterSource.js +45 -48
- package/lib/module/components/RasterSource.js.map +1 -1
- package/lib/module/components/ShapeSource.js +4 -7
- package/lib/module/components/ShapeSource.js.map +1 -1
- package/lib/module/components/SkyLayer.js +3 -6
- package/lib/module/components/SkyLayer.js.map +1 -1
- package/lib/module/components/Style.js.map +1 -1
- package/lib/module/components/SymbolLayer.js +3 -6
- package/lib/module/components/SymbolLayer.js.map +1 -1
- package/lib/module/components/Terrain.js.map +1 -1
- package/lib/module/components/UserLocation.js +68 -70
- package/lib/module/components/UserLocation.js.map +1 -1
- package/lib/module/components/VectorSource.js +63 -66
- package/lib/module/components/VectorSource.js.map +1 -1
- package/lib/module/components/annotations/Annotation.js +16 -19
- package/lib/module/components/annotations/Annotation.js.map +1 -1
- package/lib/module/modules/location/locationManager.js +22 -10
- package/lib/module/modules/location/locationManager.js.map +1 -1
- package/lib/module/modules/offline/OfflineCreatePackOptions.js.map +1 -1
- package/lib/module/modules/offline/OfflinePack.js.map +1 -1
- package/lib/module/modules/offline/offlineManager.js.map +1 -1
- package/lib/module/modules/snapshot/SnapshotOptions.js.map +1 -1
- package/lib/module/modules/snapshot/snapshotManager.js.map +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/utils/BridgeValue.js +0 -4
- package/lib/module/utils/BridgeValue.js.map +1 -1
- package/lib/module/utils/Logger.js +1 -4
- package/lib/module/utils/Logger.js.map +1 -1
- package/lib/module/utils/MapboxStyles.d.js.map +1 -1
- package/lib/module/utils/StyleValue.js.map +1 -1
- package/lib/module/utils/animated/Animated.js.map +1 -1
- package/lib/module/utils/deprecation.js.map +1 -1
- package/lib/module/utils/filterUtils.js.map +1 -1
- package/lib/module/utils/geoUtils.d.js.map +1 -1
- package/lib/module/utils/geoUtils.js.map +1 -1
- package/lib/module/utils/getAnnotationsLayerID.js.map +1 -1
- package/lib/module/utils/index.d.js.map +1 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/styleMap.js +2 -2
- package/lib/module/utils/styleMap.js.map +1 -1
- package/lib/module/web/MapContext.js.map +1 -1
- package/lib/module/web/MapboxModule.js.map +1 -1
- package/lib/module/web/UnimplementedComponent.js.map +1 -1
- package/lib/module/web/components/Camera.js +2 -9
- package/lib/module/web/components/Camera.js.map +1 -1
- package/lib/module/web/components/MapView.js +5 -11
- package/lib/module/web/components/MapView.js.map +1 -1
- package/lib/module/web/index.js.map +1 -1
- package/lib/module/web/utils/Logger.js +3 -7
- package/lib/module/web/utils/Logger.js.map +1 -1
- package/lib/typescript/components/Camera.d.ts +4 -2
- package/lib/typescript/components/Camera.d.ts.map +1 -1
- package/lib/typescript/components/Images.d.ts +57 -0
- package/lib/typescript/components/Images.d.ts.map +1 -0
- package/lib/typescript/modules/location/locationManager.d.ts +87 -0
- package/lib/typescript/modules/location/locationManager.d.ts.map +1 -0
- package/lib/typescript/utils/styleMap.d.ts +2 -2
- package/package.json +1 -1
- package/rnmapbox-maps.podspec +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/UserTrackingMode.java +0 -54
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +0 -37
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +0 -7
- package/javascript/components/Images.js +0 -118
|
@@ -107,57 +107,67 @@ open class RCTMGLMapComponentBase : UIView, RCTMGLMapComponent {
|
|
|
107
107
|
class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
108
108
|
var cameraAnimator: BasicCameraAnimator?
|
|
109
109
|
let cameraUpdateQueue = CameraUpdateQueue()
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
// MARK: React properties
|
|
112
112
|
|
|
113
113
|
@objc var animationDuration: NSNumber?
|
|
114
|
+
|
|
114
115
|
@objc var animationMode: NSString?
|
|
116
|
+
|
|
115
117
|
@objc var defaultStop: [String: Any]?
|
|
116
|
-
|
|
118
|
+
|
|
119
|
+
@objc var followUserLocation : Bool = false {
|
|
117
120
|
didSet {
|
|
118
121
|
_updateCameraFromTrackingMode()
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
|
-
|
|
124
|
+
|
|
125
|
+
@objc var followUserMode: String? {
|
|
122
126
|
didSet {
|
|
123
127
|
_updateCameraFromTrackingMode()
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
|
-
|
|
127
|
-
@objc var
|
|
130
|
+
|
|
131
|
+
@objc var followZoomLevel: NSNumber? {
|
|
128
132
|
didSet {
|
|
129
133
|
_updateCameraFromTrackingMode()
|
|
130
134
|
}
|
|
131
135
|
}
|
|
132
|
-
|
|
133
|
-
@objc var
|
|
136
|
+
|
|
137
|
+
@objc var followPitch: NSNumber? {
|
|
134
138
|
didSet {
|
|
135
139
|
_updateCameraFromTrackingMode()
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
|
-
|
|
139
|
-
@objc var
|
|
142
|
+
|
|
143
|
+
@objc var followHeading: NSNumber? {
|
|
140
144
|
didSet {
|
|
141
145
|
_updateCameraFromTrackingMode()
|
|
142
146
|
}
|
|
143
147
|
}
|
|
144
|
-
|
|
148
|
+
|
|
149
|
+
@objc var followPadding: NSDictionary? {
|
|
150
|
+
didSet {
|
|
151
|
+
_updateCameraFromTrackingMode()
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
145
155
|
@objc var maxZoomLevel: NSNumber? {
|
|
146
156
|
didSet { _updateMaxBounds() }
|
|
147
157
|
}
|
|
148
|
-
|
|
158
|
+
|
|
149
159
|
@objc var minZoomLevel: NSNumber? {
|
|
150
160
|
didSet { _updateMaxBounds() }
|
|
151
161
|
}
|
|
152
|
-
|
|
162
|
+
|
|
153
163
|
@objc var onUserTrackingModeChange: RCTBubblingEventBlock? = nil
|
|
154
|
-
|
|
164
|
+
|
|
155
165
|
@objc var stop: [String: Any]? {
|
|
156
166
|
didSet {
|
|
157
167
|
_updateCamera()
|
|
158
168
|
}
|
|
159
169
|
}
|
|
160
|
-
|
|
170
|
+
|
|
161
171
|
@objc var maxBounds: String? {
|
|
162
172
|
didSet {
|
|
163
173
|
if let maxBounds = maxBounds {
|
|
@@ -288,22 +298,23 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
288
298
|
followOptions.bearing = nil
|
|
289
299
|
trackingModeChanged = true
|
|
290
300
|
}
|
|
301
|
+
|
|
291
302
|
if let onUserTrackingModeChange = self.onUserTrackingModeChange {
|
|
292
303
|
if (trackingModeChanged) {
|
|
293
304
|
let event = RCTMGLEvent(type: .onUserTrackingModeChange, payload: ["followUserMode": self.followUserMode ?? "normal", "followUserLocation": self.followUserLocation])
|
|
294
305
|
onUserTrackingModeChange(event.toJSON())
|
|
295
306
|
}
|
|
296
307
|
}
|
|
308
|
+
|
|
297
309
|
var _camera = CameraOptions()
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
if (stopHeading >= 0.0) {
|
|
304
|
-
_camera.bearing = stopHeading
|
|
310
|
+
|
|
311
|
+
if let zoom = self.followZoomLevel as? CGFloat {
|
|
312
|
+
if (zoom >= 0.0) {
|
|
313
|
+
_camera.zoom = zoom
|
|
314
|
+
followOptions.zoom = zoom
|
|
305
315
|
}
|
|
306
316
|
}
|
|
317
|
+
|
|
307
318
|
if let followPitch = self.followPitch as? CGFloat {
|
|
308
319
|
if (followPitch >= 0.0) {
|
|
309
320
|
_camera.pitch = followPitch
|
|
@@ -317,14 +328,29 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
317
328
|
} else {
|
|
318
329
|
followOptions.pitch = nil
|
|
319
330
|
}
|
|
320
|
-
|
|
321
|
-
if let
|
|
322
|
-
if (
|
|
323
|
-
_camera.
|
|
324
|
-
followOptions.zoom = zoom
|
|
331
|
+
|
|
332
|
+
if let followHeading = self.followHeading as? CGFloat {
|
|
333
|
+
if (followHeading >= 0.0) {
|
|
334
|
+
_camera.bearing = followHeading
|
|
325
335
|
}
|
|
336
|
+
} else if let stopHeading = self.stop?["heading"] as? CGFloat {
|
|
337
|
+
if (stopHeading >= 0.0) {
|
|
338
|
+
_camera.bearing = stopHeading
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if let padding = self.followPadding {
|
|
343
|
+
let edgeInsets = UIEdgeInsets(
|
|
344
|
+
top: padding["paddingTop"] as? Double ?? 0,
|
|
345
|
+
left: padding["paddingLeft"] as? Double ?? 0,
|
|
346
|
+
bottom: padding["paddingBottom"] as? Double ?? 0,
|
|
347
|
+
right: padding["paddingRight"] as? Double ?? 0
|
|
348
|
+
)
|
|
349
|
+
followOptions.padding = edgeInsets
|
|
326
350
|
}
|
|
351
|
+
|
|
327
352
|
let followState = map.viewport.makeFollowPuckViewportState(options: followOptions)
|
|
353
|
+
|
|
328
354
|
map.viewport.transition(to: followState)
|
|
329
355
|
map.viewport.addStatusObserver(self)
|
|
330
356
|
map.mapboxMap.setCamera(to: _camera)
|
|
@@ -8,11 +8,14 @@ RCT_EXPORT_VIEW_PROPERTY(maxBounds, NSString)
|
|
|
8
8
|
RCT_EXPORT_VIEW_PROPERTY(animationDuration, NSNumber)
|
|
9
9
|
RCT_EXPORT_VIEW_PROPERTY(animationMode, NSString)
|
|
10
10
|
RCT_EXPORT_VIEW_PROPERTY(defaultStop, NSDictionary)
|
|
11
|
-
|
|
12
|
-
RCT_EXPORT_VIEW_PROPERTY(followPitch, NSNumber)
|
|
11
|
+
|
|
13
12
|
RCT_EXPORT_VIEW_PROPERTY(followUserLocation, BOOL)
|
|
14
13
|
RCT_EXPORT_VIEW_PROPERTY(followUserMode, NSString)
|
|
15
14
|
RCT_EXPORT_VIEW_PROPERTY(followZoomLevel, NSNumber)
|
|
15
|
+
RCT_EXPORT_VIEW_PROPERTY(followPitch, NSNumber)
|
|
16
|
+
RCT_EXPORT_VIEW_PROPERTY(followHeading, NSNumber)
|
|
17
|
+
RCT_EXPORT_VIEW_PROPERTY(followPadding, NSDictionary)
|
|
18
|
+
|
|
16
19
|
RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber)
|
|
17
20
|
RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, NSNumber)
|
|
18
21
|
RCT_EXPORT_VIEW_PROPERTY(onUserTrackingModeChange, RCTBubblingEventBlock)
|
|
@@ -12,7 +12,14 @@ class RCTMGLImages : UIView, RCTMGLMapComponent {
|
|
|
12
12
|
var images : [String:Any] = [:]
|
|
13
13
|
|
|
14
14
|
@objc
|
|
15
|
-
var nativeImages: [
|
|
15
|
+
var nativeImages: [Any] = [] {
|
|
16
|
+
didSet {
|
|
17
|
+
nativeImageInfos = nativeImages.compactMap { decodeImage($0) }
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
typealias NativeImageInfo = (name:String, sdf: Bool, stretchX:[(from:Float, to:Float)], stretchY:[(from:Float, to:Float)]);
|
|
22
|
+
var nativeImageInfos: [NativeImageInfo] = []
|
|
16
23
|
|
|
17
24
|
// MARK: - RCTMGLMapComponent
|
|
18
25
|
|
|
@@ -24,7 +31,7 @@ class RCTMGLImages : UIView, RCTMGLMapComponent {
|
|
|
24
31
|
map.images.append(self)
|
|
25
32
|
map.setupEvents()
|
|
26
33
|
|
|
27
|
-
self.addNativeImages(style: style, nativeImages:
|
|
34
|
+
self.addNativeImages(style: style, nativeImages: nativeImageInfos)
|
|
28
35
|
self.addRemoteImages(style: style, remoteImages: images)
|
|
29
36
|
}
|
|
30
37
|
|
|
@@ -57,8 +64,8 @@ class RCTMGLImages : UIView, RCTMGLMapComponent {
|
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
public func addMissingImageToStyle(style: Style, imageName: String) -> Bool {
|
|
60
|
-
if
|
|
61
|
-
addNativeImages(style: style, nativeImages: [
|
|
67
|
+
if let nativeImage = nativeImageInfos.first(where: { $0.name == imageName }) {
|
|
68
|
+
addNativeImages(style: style, nativeImages: [nativeImage])
|
|
62
69
|
return true
|
|
63
70
|
}
|
|
64
71
|
|
|
@@ -77,11 +84,50 @@ class RCTMGLImages : UIView, RCTMGLMapComponent {
|
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
|
|
80
|
-
func
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
func decodeImage(_ imageNameOrInfo: Any) -> NativeImageInfo? {
|
|
88
|
+
if let imageName = imageNameOrInfo as? String {
|
|
89
|
+
return (name: imageName, sdf: false, stretchX:[],stretchY:[])
|
|
90
|
+
} else if let imageInfo = imageNameOrInfo as? [String:Any] {
|
|
91
|
+
guard let name = imageInfo["name"] as? String else {
|
|
92
|
+
Logger.log(level: .warn, message: "NativeImage: \(imageInfo) has no name key")
|
|
93
|
+
return nil
|
|
94
|
+
}
|
|
95
|
+
var sdf = false
|
|
96
|
+
var stretchX : [(from:Float, to:Float)] = []
|
|
97
|
+
var stretchY : [(from:Float, to:Float)] = []
|
|
98
|
+
if let sdfV = imageInfo["sdf"] as? NSNumber {
|
|
99
|
+
sdf = sdfV.boolValue
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if let stretchXV = imageInfo["stretchX"] as? [[NSNumber]] {
|
|
103
|
+
stretchX = stretchXV.map{ pair in
|
|
104
|
+
return (from: pair[0].floatValue, to: pair[1].floatValue)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if let stretchYV = imageInfo["stretchY"] as? [[NSNumber]] {
|
|
109
|
+
stretchY = stretchYV.map{ pair in
|
|
110
|
+
return (from: pair[0].floatValue, to: pair[1].floatValue)
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return (name: name, sdf: sdf, stretchX:stretchX,stretchY:stretchY)
|
|
115
|
+
} else {
|
|
116
|
+
Logger.log(level: .warn, message: "RCTMGLImage.nativeImage, unexpected image: \(imageNameOrInfo)")
|
|
117
|
+
return nil
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
func addNativeImages(style: Style, nativeImages: [NativeImageInfo]) {
|
|
122
|
+
for imageInfo in nativeImages {
|
|
123
|
+
let imageName = imageInfo.name
|
|
124
|
+
if style.styleManager.getStyleImage(forImageId: imageInfo.name) == nil {
|
|
83
125
|
if let image = UIImage(named: imageName) {
|
|
84
|
-
|
|
126
|
+
logged("RCTMGLImage.addNativeImage: \(imageName)") {
|
|
127
|
+
try style.addImage(image, id: imageName, sdf: imageInfo.sdf,
|
|
128
|
+
stretchX: imageInfo.stretchX.map { v in ImageStretches(first: v.from, second: v.to) },
|
|
129
|
+
stretchY: imageInfo.stretchY.map { v in ImageStretches(first: v.from, second: v.to) } )
|
|
130
|
+
}
|
|
85
131
|
} else {
|
|
86
132
|
Logger.log(level:.error, message: "Cannot find nativeImage named \(imageName)")
|
|
87
133
|
}
|
package/ios/install.md
CHANGED
|
@@ -60,7 +60,7 @@ You can also override the version to use. *Warning:* if you set a version, then
|
|
|
60
60
|
|
|
61
61
|
```ruby
|
|
62
62
|
# Warning: only for advanced use cases, only do this if you know what you're doing.
|
|
63
|
-
# $RNMapboxMapsVersion = '~> 10.
|
|
63
|
+
# $RNMapboxMapsVersion = '~> 10.12.0'
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
You will need to authorize your download of the Maps SDK with a secret access token with the `DOWNLOADS:READ` scope. This [guide](https://docs.mapbox.com/ios/maps/guides/install/#configure-credentials) explains how to configure the secret token under section `Configure your secret token`.
|
|
@@ -122,16 +122,18 @@ export type CameraStop = {
|
|
|
122
122
|
};
|
|
123
123
|
|
|
124
124
|
export type CameraFollowConfig = {
|
|
125
|
-
/** The mode used to track the user location on the map. */
|
|
126
|
-
followUserMode?: UserTrackingMode;
|
|
127
125
|
/** Whether the map orientation follows the user location. */
|
|
128
126
|
followUserLocation?: boolean;
|
|
127
|
+
/** The mode used to track the user location on the map. */
|
|
128
|
+
followUserMode?: UserTrackingMode;
|
|
129
129
|
/** The zoom level used when following the user location. */
|
|
130
130
|
followZoomLevel?: number;
|
|
131
131
|
/** The pitch used when following the user location. */
|
|
132
132
|
followPitch?: number;
|
|
133
133
|
/** The heading used when following the user location. */
|
|
134
134
|
followHeading?: number;
|
|
135
|
+
/** The padding used to position the user location when following. */
|
|
136
|
+
followPadding?: Partial<CameraPadding>;
|
|
135
137
|
};
|
|
136
138
|
|
|
137
139
|
export type CameraMinMaxConfig = {
|
|
@@ -232,6 +234,7 @@ export const Camera = memo(
|
|
|
232
234
|
followZoomLevel,
|
|
233
235
|
followPitch,
|
|
234
236
|
followHeading,
|
|
237
|
+
followPadding,
|
|
235
238
|
defaultSettings,
|
|
236
239
|
allowUpdates = true,
|
|
237
240
|
onUserTrackingModeChange,
|
|
@@ -526,9 +529,10 @@ export const Camera = memo(
|
|
|
526
529
|
defaultStop={nativeDefaultStop}
|
|
527
530
|
followUserLocation={followUserLocation}
|
|
528
531
|
followUserMode={followUserMode}
|
|
532
|
+
followZoomLevel={followZoomLevel}
|
|
529
533
|
followPitch={followPitch}
|
|
530
534
|
followHeading={followHeading}
|
|
531
|
-
|
|
535
|
+
followPadding={followPadding}
|
|
532
536
|
minZoomLevel={minZoomLevel}
|
|
533
537
|
maxZoomLevel={maxZoomLevel}
|
|
534
538
|
maxBounds={nativeMaxBounds}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { requireNativeComponent, Image } from 'react-native';
|
|
3
|
+
import { ImageSourcePropType, ImageResolvedAssetSource } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import { ShapeSource } from './ShapeSource';
|
|
6
|
+
|
|
7
|
+
export const NATIVE_MODULE_NAME = 'RCTMGLImages';
|
|
8
|
+
|
|
9
|
+
export type RNMBEvent<PayloadType = { [key: string]: string }> = {
|
|
10
|
+
payload: PayloadType;
|
|
11
|
+
type: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
function _isUrlOrPath(value: string | ImageSourcePropType): value is string {
|
|
15
|
+
return (
|
|
16
|
+
(typeof value === 'string' || value instanceof String) &&
|
|
17
|
+
(value.startsWith('file://') ||
|
|
18
|
+
value.startsWith('http://') ||
|
|
19
|
+
value.startsWith('https://') ||
|
|
20
|
+
value.startsWith('data:') ||
|
|
21
|
+
value.startsWith('asset://') ||
|
|
22
|
+
value.startsWith('/'))
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type NativeImage =
|
|
27
|
+
| string
|
|
28
|
+
| {
|
|
29
|
+
name: string;
|
|
30
|
+
sdf?: boolean;
|
|
31
|
+
strechX: [number, number][];
|
|
32
|
+
streacY: [number, number][];
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
interface Props {
|
|
36
|
+
/**
|
|
37
|
+
* Specifies the external images in key-value pairs required for the shape source.
|
|
38
|
+
* Keys are names - see iconImage expressions, values can be either urls-s objects
|
|
39
|
+
* with format {uri: 'http://...'}` or `require('image.png')` or `import 'image.png'`
|
|
40
|
+
*/
|
|
41
|
+
images?: { [key: string]: ImageSourcePropType };
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* If you have an asset under Image.xcassets on iOS and the drawables directory on android
|
|
45
|
+
* you can specify an array of string names with assets as the key `['pin']`.
|
|
46
|
+
* Additionally object with keys sdf, and strechX, strechY is supported for [SDF icons](https://docs.mapbox.com/help/troubleshooting/using-recolorable-images-in-mapbox-maps/)
|
|
47
|
+
*/
|
|
48
|
+
nativeAssetImages?: NativeImage[];
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Gets called when a Layer is trying to render an image whose key is not present in
|
|
52
|
+
* any of the `Images` component of the Map.
|
|
53
|
+
*/
|
|
54
|
+
onImageMissing?: (imageKey: string) => void;
|
|
55
|
+
|
|
56
|
+
id?: string;
|
|
57
|
+
children?: React.ReactElement;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Images defines the images used in Symbol etc. layers.
|
|
62
|
+
*/
|
|
63
|
+
class Images extends React.Component<Props> {
|
|
64
|
+
static NATIVE_ASSETS_KEY = 'assets';
|
|
65
|
+
|
|
66
|
+
_getImages() {
|
|
67
|
+
if (!this.props.images && !this.props.nativeAssetImages) {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const images: { [key: string]: string | ImageResolvedAssetSource } = {};
|
|
72
|
+
let nativeImages: NativeImage[] = [];
|
|
73
|
+
|
|
74
|
+
if (this.props.images) {
|
|
75
|
+
const imageNames = Object.keys(this.props.images);
|
|
76
|
+
for (const imageName of imageNames) {
|
|
77
|
+
const value = this.props.images[imageName];
|
|
78
|
+
if (
|
|
79
|
+
imageName === ShapeSource.NATIVE_ASSETS_KEY &&
|
|
80
|
+
Array.isArray(value)
|
|
81
|
+
) {
|
|
82
|
+
console.error(
|
|
83
|
+
`Use of ${ShapeSource.NATIVE_ASSETS_KEY} in Images#images is not supported use Images#nativeAssetImages`,
|
|
84
|
+
);
|
|
85
|
+
} else if (_isUrlOrPath(value)) {
|
|
86
|
+
images[imageName] = value;
|
|
87
|
+
} else {
|
|
88
|
+
const res = Image.resolveAssetSource(value);
|
|
89
|
+
if (res && res.uri) {
|
|
90
|
+
images[imageName] = res;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (this.props.nativeAssetImages) {
|
|
97
|
+
nativeImages = this.props.nativeAssetImages;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
images,
|
|
102
|
+
nativeImages,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
_onImageMissing(event: React.SyntheticEvent<Element, RNMBEvent>) {
|
|
107
|
+
if (this.props.onImageMissing) {
|
|
108
|
+
this.props.onImageMissing(event.nativeEvent.payload.imageKey);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
render() {
|
|
113
|
+
const props = {
|
|
114
|
+
id: this.props.id,
|
|
115
|
+
hasOnImageMissing: !!this.props.onImageMissing,
|
|
116
|
+
onImageMissing: this._onImageMissing.bind(this),
|
|
117
|
+
...this._getImages(),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
return <RCTMGLImages {...props}>{this.props.children}</RCTMGLImages>;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
type NativeProps = {
|
|
125
|
+
hasOnImageMissing: boolean;
|
|
126
|
+
onImageMissing?: (event: React.SyntheticEvent<Element, RNMBEvent>) => void;
|
|
127
|
+
images?: { [key: string]: string | ImageResolvedAssetSource };
|
|
128
|
+
nativeImages?: NativeImage[];
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const RCTMGLImages = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
|
|
132
|
+
|
|
133
|
+
export default Images;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
NativeModules,
|
|
3
|
+
NativeEventEmitter,
|
|
4
|
+
AppState,
|
|
5
|
+
NativeEventSubscription,
|
|
6
|
+
EmitterSubscription,
|
|
7
|
+
type AppStateStatus,
|
|
8
|
+
} from 'react-native';
|
|
2
9
|
|
|
3
10
|
const MapboxGL = NativeModules.MGLModule;
|
|
4
11
|
const MapboxGLLocationManager = NativeModules.MGLLocationModule;
|
|
@@ -7,13 +14,76 @@ export const LocationModuleEventEmitter = new NativeEventEmitter(
|
|
|
7
14
|
MapboxGLLocationManager,
|
|
8
15
|
);
|
|
9
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Location sent by locationManager
|
|
19
|
+
*/
|
|
20
|
+
interface Location {
|
|
21
|
+
coords: Coordinates;
|
|
22
|
+
timestamp?: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Coorinates sent by locationManager
|
|
27
|
+
*/
|
|
28
|
+
interface Coordinates {
|
|
29
|
+
/**
|
|
30
|
+
* The heading (measured in degrees) relative to true north.
|
|
31
|
+
* Heading is used to describe the direction the device is pointing to (the value of the compass).
|
|
32
|
+
* Note that on Android this is incorrectly reporting the course value as mentioned in issue https://github.com/rnmapbox/maps/issues/1213
|
|
33
|
+
* and will be corrected in a future update.
|
|
34
|
+
*/
|
|
35
|
+
heading?: number;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The direction in which the device is traveling, measured in degrees and relative to due north.
|
|
39
|
+
* The course refers to the direction the device is actually moving (not the same as heading).
|
|
40
|
+
*/
|
|
41
|
+
course?: number;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The instantaneous speed of the device, measured in meters per second.
|
|
45
|
+
*/
|
|
46
|
+
speed?: number;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The latitude in degrees.
|
|
50
|
+
*/
|
|
51
|
+
latitude: number;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The longitude in degrees.
|
|
55
|
+
*/
|
|
56
|
+
longitude: number;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The radius of uncertainty for the location, measured in meters.
|
|
60
|
+
*/
|
|
61
|
+
accuracy?: number;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The altitude, measured in meters.
|
|
65
|
+
*/
|
|
66
|
+
altitude?: number;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* LocationManager is a singleton, see `locationManager`
|
|
71
|
+
*/
|
|
10
72
|
class LocationManager {
|
|
73
|
+
_listeners: ((location: Location) => void)[];
|
|
74
|
+
_lastKnownLocation: Location | null;
|
|
75
|
+
_isListening: boolean;
|
|
76
|
+
_requestsAlwaysUse: boolean;
|
|
77
|
+
subscription: EmitterSubscription | null;
|
|
78
|
+
_appStateListener: NativeEventSubscription;
|
|
79
|
+
_minDisplacement?: number;
|
|
80
|
+
|
|
11
81
|
constructor() {
|
|
12
82
|
this._listeners = [];
|
|
13
83
|
this._lastKnownLocation = null;
|
|
14
84
|
this._isListening = false;
|
|
15
85
|
this._requestsAlwaysUse = false;
|
|
16
|
-
this.
|
|
86
|
+
this._onUpdate = this._onUpdate.bind(this);
|
|
17
87
|
this.subscription = null;
|
|
18
88
|
|
|
19
89
|
this._appStateListener = AppState.addEventListener(
|
|
@@ -45,7 +115,7 @@ class LocationManager {
|
|
|
45
115
|
return this._lastKnownLocation;
|
|
46
116
|
}
|
|
47
117
|
|
|
48
|
-
addListener(listener) {
|
|
118
|
+
addListener(listener: (location: Location) => void) {
|
|
49
119
|
if (!this._isListening) {
|
|
50
120
|
this.start();
|
|
51
121
|
}
|
|
@@ -58,7 +128,7 @@ class LocationManager {
|
|
|
58
128
|
}
|
|
59
129
|
}
|
|
60
130
|
|
|
61
|
-
removeListener(listener) {
|
|
131
|
+
removeListener(listener: (location: Location) => void) {
|
|
62
132
|
this._listeners = this._listeners.filter((l) => l !== listener);
|
|
63
133
|
if (this._listeners.length === 0) {
|
|
64
134
|
this.stop();
|
|
@@ -70,7 +140,7 @@ class LocationManager {
|
|
|
70
140
|
this.stop();
|
|
71
141
|
}
|
|
72
142
|
|
|
73
|
-
_handleAppStateChange(appState) {
|
|
143
|
+
_handleAppStateChange(appState: AppStateStatus) {
|
|
74
144
|
if (!this._requestsAlwaysUse) {
|
|
75
145
|
if (appState === 'background') {
|
|
76
146
|
this.stop();
|
|
@@ -83,23 +153,23 @@ class LocationManager {
|
|
|
83
153
|
}
|
|
84
154
|
|
|
85
155
|
start(displacement = -1) {
|
|
156
|
+
let validDisplacement = 1;
|
|
86
157
|
if (
|
|
87
158
|
displacement === -1 ||
|
|
88
159
|
displacement === null ||
|
|
89
160
|
displacement === undefined
|
|
90
161
|
) {
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
displacement = -1;
|
|
162
|
+
validDisplacement = this._minDisplacement || -1;
|
|
163
|
+
} else {
|
|
164
|
+
validDisplacement = displacement;
|
|
95
165
|
}
|
|
96
166
|
|
|
97
167
|
if (!this._isListening) {
|
|
98
|
-
MapboxGLLocationManager.start(
|
|
168
|
+
MapboxGLLocationManager.start(validDisplacement);
|
|
99
169
|
|
|
100
170
|
this.subscription = LocationModuleEventEmitter.addListener(
|
|
101
171
|
MapboxGL.LocationCallbackName.Update,
|
|
102
|
-
this.
|
|
172
|
+
this._onUpdate,
|
|
103
173
|
);
|
|
104
174
|
|
|
105
175
|
this._isListening = true;
|
|
@@ -109,36 +179,39 @@ class LocationManager {
|
|
|
109
179
|
stop() {
|
|
110
180
|
MapboxGLLocationManager.stop();
|
|
111
181
|
|
|
112
|
-
if (this._isListening) {
|
|
182
|
+
if (this._isListening && this.subscription) {
|
|
113
183
|
this.subscription.remove();
|
|
114
184
|
}
|
|
115
185
|
|
|
116
186
|
this._isListening = false;
|
|
117
187
|
}
|
|
118
188
|
|
|
119
|
-
setMinDisplacement(minDisplacement) {
|
|
189
|
+
setMinDisplacement(minDisplacement: number) {
|
|
120
190
|
this._minDisplacement = minDisplacement;
|
|
121
191
|
MapboxGLLocationManager.setMinDisplacement(minDisplacement);
|
|
122
192
|
}
|
|
123
193
|
|
|
124
|
-
setRequestsAlwaysUse(requestsAlwaysUse) {
|
|
194
|
+
setRequestsAlwaysUse(requestsAlwaysUse: boolean) {
|
|
125
195
|
MapboxGLLocationManager.setRequestsAlwaysUse(requestsAlwaysUse);
|
|
126
196
|
this._requestsAlwaysUse = requestsAlwaysUse;
|
|
127
197
|
}
|
|
128
198
|
|
|
129
|
-
|
|
199
|
+
_onUpdate(location: Location) {
|
|
130
200
|
this._lastKnownLocation = location;
|
|
131
201
|
|
|
132
202
|
this._listeners.forEach((l) => l(location));
|
|
133
203
|
}
|
|
134
204
|
|
|
135
|
-
|
|
205
|
+
/**
|
|
206
|
+
* simulates location updates, experimental [V10, iOS only]
|
|
207
|
+
*/
|
|
208
|
+
_simulateHeading(changesPerSecond: number, increment: number) {
|
|
136
209
|
MapboxGLLocationManager.simulateHeading(changesPerSecond, increment);
|
|
137
210
|
}
|
|
138
211
|
|
|
139
212
|
/**
|
|
140
213
|
* Sets the period at which location events will be sent over the React Native bridge.
|
|
141
|
-
* The default is 0, aka no limit
|
|
214
|
+
* The default is 0, aka no limit. [V10, iOS only]
|
|
142
215
|
*
|
|
143
216
|
* @example
|
|
144
217
|
* locationManager.setLocationEventThrottle(500);
|
|
@@ -146,7 +219,7 @@ class LocationManager {
|
|
|
146
219
|
* @param {Number} throttleValue event throttle value in ms.
|
|
147
220
|
* @return {void}
|
|
148
221
|
*/
|
|
149
|
-
setLocationEventThrottle(throttleValue) {
|
|
222
|
+
setLocationEventThrottle(throttleValue: number) {
|
|
150
223
|
MapboxGLLocationManager.setLocationEventThrottle(throttleValue);
|
|
151
224
|
}
|
|
152
225
|
}
|
|
@@ -113,7 +113,7 @@ type ExpressionField =
|
|
|
113
113
|
| ExpressionField[]
|
|
114
114
|
| { [key: string]: ExpressionField };
|
|
115
115
|
|
|
116
|
-
export type Expression = [ExpressionName, ...ExpressionField[]];
|
|
116
|
+
export type Expression = readonly [ExpressionName, ...ExpressionField[]];
|
|
117
117
|
|
|
118
118
|
export type FilterExpression = Expression;
|
|
119
119
|
|
|
@@ -902,7 +902,7 @@ export interface SymbolLayerStyleProps {
|
|
|
902
902
|
*/
|
|
903
903
|
iconOpacityTransition?: Transition;
|
|
904
904
|
/**
|
|
905
|
-
* The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/
|
|
905
|
+
* The color of the icon. This can only be used with [SDF icons](https://docs.mapbox.com/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).
|
|
906
906
|
*
|
|
907
907
|
* @requires iconImage
|
|
908
908
|
*/
|
|
@@ -913,7 +913,7 @@ export interface SymbolLayerStyleProps {
|
|
|
913
913
|
*/
|
|
914
914
|
iconColorTransition?: Transition;
|
|
915
915
|
/**
|
|
916
|
-
* The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/
|
|
916
|
+
* The color of the icon's halo. Icon halos can only be used with [SDF icons](https://docs.mapbox.com/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).
|
|
917
917
|
*
|
|
918
918
|
* @requires iconImage
|
|
919
919
|
*/
|
|
@@ -665,7 +665,7 @@ export const SymbolLayerStyleProp = PropTypes.shape({
|
|
|
665
665
|
}),
|
|
666
666
|
|
|
667
667
|
/**
|
|
668
|
-
* The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/
|
|
668
|
+
* The color of the icon. This can only be used with [SDF icons](https://docs.mapbox.com/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).
|
|
669
669
|
*
|
|
670
670
|
* @requires iconImage
|
|
671
671
|
*/
|
|
@@ -680,7 +680,7 @@ export const SymbolLayerStyleProp = PropTypes.shape({
|
|
|
680
680
|
}),
|
|
681
681
|
|
|
682
682
|
/**
|
|
683
|
-
* The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/
|
|
683
|
+
* The color of the icon's halo. Icon halos can only be used with [SDF icons](https://docs.mapbox.com/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).
|
|
684
684
|
*
|
|
685
685
|
* @requires iconImage
|
|
686
686
|
*/
|