@rnmapbox/maps 10.1.0-beta.7 → 10.1.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/ios/RNMBX/RNMBXCamera.swift +2 -18
- package/ios/RNMBX/RNMBXLocationModule.swift +23 -59
- package/ios/RNMBX/RNMBXLocationModuleV11.swift +248 -2
- package/ios/RNMBX/RNMBXMapView.swift +13 -2
- package/ios/RNMBX/RNMBXStyleImport.swift +7 -1
- package/lib/commonjs/components/StyleImport.js +5 -0
- package/lib/commonjs/components/StyleImport.js.map +1 -1
- package/lib/module/components/StyleImport.js +5 -0
- package/lib/module/components/StyleImport.js.map +1 -1
- package/lib/typescript/components/StyleImport.d.ts +16 -0
- package/lib/typescript/components/StyleImport.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/StyleImport.tsx +16 -0
package/README.md
CHANGED
|
@@ -287,25 +287,9 @@ class RNMBXCamera : RNMBXMapComponentBase {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
if let locationModule = RNMBXLocationModule.shared {
|
|
290
|
-
|
|
291
|
-
#if !RNMBX_11
|
|
292
|
-
if let currentProvider = map.location.locationProvider as? AnyObject, let newProvider = locationModule.locationProvider as? AnyObject {
|
|
293
|
-
if currentProvider === newProvider {
|
|
294
|
-
isSameProvider = true
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
#endif
|
|
298
|
-
if !isSameProvider {
|
|
299
|
-
#if RNMBX_11
|
|
300
|
-
map.location.override(provider: locationModule.locationProvider)
|
|
301
|
-
#else
|
|
302
|
-
map.location.overrideLocationProvider(with: locationModule.locationProvider)
|
|
303
|
-
#endif
|
|
304
|
-
}
|
|
290
|
+
locationModule.override(for: map.location)
|
|
305
291
|
}
|
|
306
|
-
#if RNMBX_11
|
|
307
|
-
// RNMBX_11_TODO
|
|
308
|
-
#else
|
|
292
|
+
#if !RNMBX_11
|
|
309
293
|
map.location.locationProvider.requestWhenInUseAuthorization()
|
|
310
294
|
#endif
|
|
311
295
|
var trackingModeChanged = false
|
|
@@ -34,10 +34,6 @@ let RCT_MAPBOX_USER_LOCATION_UPDATE = "MapboxUserLocationUpdate";
|
|
|
34
34
|
/// This implementation of LocationProviderDelegate is used by `LocationManager` to work around
|
|
35
35
|
/// the fact that the `LocationProvider` API does not allow the delegate to be set to `nil`.
|
|
36
36
|
internal class EmptyLocationProviderDelegate: LocationProviderDelegate {
|
|
37
|
-
#if RNMBX_11
|
|
38
|
-
func onLocationUpdateReceived(for locations: [Location]) {}
|
|
39
|
-
#endif
|
|
40
|
-
|
|
41
37
|
func locationProvider(_ provider: LocationProvider, didFailWithError error: Error) {}
|
|
42
38
|
func locationProvider(_ provider: LocationProvider, didUpdateHeading newHeading: CLHeading) {}
|
|
43
39
|
func locationProvider(_ provider: LocationProvider, didUpdateLocations locations: [CLLocation]) {}
|
|
@@ -51,17 +47,6 @@ protocol LocationProviderRNMBXDelegate : AnyObject {
|
|
|
51
47
|
class RNMBXAppleLocationProvider: NSObject {
|
|
52
48
|
private var locationProvider: CLLocationManager
|
|
53
49
|
|
|
54
|
-
#if RNMBX_11
|
|
55
|
-
private var observers : [LocationObserver] = []
|
|
56
|
-
private var privateAppleLocationProviderOptions: AppleLocationProvider.Options {
|
|
57
|
-
didSet {
|
|
58
|
-
locationProvider.distanceFilter = privateAppleLocationProviderOptions.distanceFilter
|
|
59
|
-
locationProvider.desiredAccuracy = privateAppleLocationProviderOptions.desiredAccuracy
|
|
60
|
-
locationProvider.activityType = privateAppleLocationProviderOptions.activityType
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
private var privateLocationProviderOptions: LocationOptions
|
|
64
|
-
#else
|
|
65
50
|
private var privateLocationProviderOptions: LocationOptions {
|
|
66
51
|
didSet {
|
|
67
52
|
locationProvider.distanceFilter = privateLocationProviderOptions.distanceFilter
|
|
@@ -70,7 +55,6 @@ class RNMBXAppleLocationProvider: NSObject {
|
|
|
70
55
|
}
|
|
71
56
|
}
|
|
72
57
|
private weak var delegate: LocationProviderDelegate?
|
|
73
|
-
#endif
|
|
74
58
|
|
|
75
59
|
public var headingOrientation: CLDeviceOrientation {
|
|
76
60
|
didSet { locationProvider.headingOrientation = headingOrientation }
|
|
@@ -78,9 +62,6 @@ class RNMBXAppleLocationProvider: NSObject {
|
|
|
78
62
|
|
|
79
63
|
public override init() {
|
|
80
64
|
locationProvider = CLLocationManager()
|
|
81
|
-
#if RNMBX_11
|
|
82
|
-
privateAppleLocationProviderOptions = AppleLocationProvider.Options()
|
|
83
|
-
#endif
|
|
84
65
|
privateLocationProviderOptions = LocationOptions()
|
|
85
66
|
headingOrientation = locationProvider.headingOrientation
|
|
86
67
|
super.init()
|
|
@@ -89,21 +70,6 @@ class RNMBXAppleLocationProvider: NSObject {
|
|
|
89
70
|
}
|
|
90
71
|
|
|
91
72
|
extension RNMBXAppleLocationProvider: LocationProvider {
|
|
92
|
-
#if RNMBX_11
|
|
93
|
-
func addLocationObserver(for observer: LocationObserver) {
|
|
94
|
-
observers.append(observer)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
func removeLocationObserver(for observer: LocationObserver) {
|
|
98
|
-
observers.removeAll { $0 === observer }
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
func getLastObservedLocation() -> Location? {
|
|
102
|
-
locationProvider.location
|
|
103
|
-
}
|
|
104
|
-
#endif
|
|
105
|
-
|
|
106
|
-
|
|
107
73
|
public var locationProviderOptions: LocationOptions {
|
|
108
74
|
get { privateLocationProviderOptions }
|
|
109
75
|
set { privateLocationProviderOptions = newValue }
|
|
@@ -169,45 +135,29 @@ extension RNMBXAppleLocationProvider: LocationProvider {
|
|
|
169
135
|
|
|
170
136
|
extension RNMBXAppleLocationProvider: CLLocationManagerDelegate {
|
|
171
137
|
public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
|
|
172
|
-
#if RNMBX_11
|
|
173
|
-
observers.forEach { $0.onLocationUpdateReceived(for: locations) }
|
|
174
|
-
#else
|
|
175
138
|
delegate?.locationProvider(self, didUpdateLocations: locations)
|
|
176
|
-
#endif
|
|
177
139
|
}
|
|
178
140
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
#if RNMBX_11
|
|
182
|
-
|
|
183
|
-
#else
|
|
184
|
-
delegate?.locationProvider(self, didUpdateHeading: heading)
|
|
185
|
-
#endif
|
|
141
|
+
public func locationManager(_ manager: CLLocationManager, didUpdateHeading heading: CLHeading) {
|
|
142
|
+
delegate?.locationProvider(self, didUpdateHeading: heading)
|
|
186
143
|
}
|
|
187
144
|
|
|
188
145
|
public func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
|
|
189
|
-
#if RNMBX_11
|
|
190
|
-
|
|
191
|
-
#else
|
|
192
146
|
delegate?.locationProvider(self, didFailWithError: error)
|
|
193
|
-
#endif
|
|
194
147
|
}
|
|
195
148
|
|
|
196
|
-
|
|
149
|
+
@available(iOS 14.0, *)
|
|
197
150
|
public func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
|
|
198
|
-
#if RNMBX_11
|
|
199
|
-
#else
|
|
200
151
|
delegate?.locationProviderDidChangeAuthorization(self)
|
|
201
|
-
#endif
|
|
202
152
|
}
|
|
203
153
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
return calibratingDelegate.locationProviderShouldDisplayHeadingCalibration(self)
|
|
154
|
+
public func locationManagerShouldDisplayHeadingCalibration(_ manager: CLLocationManager) -> Bool {
|
|
155
|
+
guard let calibratingDelegate = delegate as? CalibratingLocationProviderDelegate else {
|
|
156
|
+
return false
|
|
210
157
|
}
|
|
158
|
+
|
|
159
|
+
return calibratingDelegate.locationProviderShouldDisplayHeadingCalibration(self)
|
|
160
|
+
}
|
|
211
161
|
}
|
|
212
162
|
|
|
213
163
|
internal protocol CalibratingLocationProviderDelegate: LocationProviderDelegate {
|
|
@@ -593,6 +543,20 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
|
|
|
593
543
|
}
|
|
594
544
|
}
|
|
595
545
|
|
|
546
|
+
func override(for locationManager: LocationManager) {
|
|
547
|
+
if let locationModule = RNMBXLocationModule.shared {
|
|
548
|
+
var isSameProvider = false
|
|
549
|
+
if let currentProvider = locationManager.locationProvider as? AnyObject, let newProvider = locationModule.locationProvider as? AnyObject {
|
|
550
|
+
if currentProvider === newProvider {
|
|
551
|
+
isSameProvider = true
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if !isSameProvider {
|
|
555
|
+
locationManager.overrideLocationProvider(with: locationModule.locationProvider)
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
596
560
|
// MARK: - location event throttle
|
|
597
561
|
@objc
|
|
598
562
|
func setLocationEventThrottle(_ throttleValue:NSNumber) {
|
|
@@ -3,16 +3,156 @@ import MapboxMaps
|
|
|
3
3
|
|
|
4
4
|
let RCT_MAPBOX_USER_LOCATION_UPDATE = "MapboxUserLocationUpdate";
|
|
5
5
|
|
|
6
|
+
@objc(RNMBXLocation)
|
|
7
|
+
class RNMBXLocation: NSObject {
|
|
8
|
+
var location : Location? = nil
|
|
9
|
+
|
|
10
|
+
var heading : Heading? = nil
|
|
11
|
+
|
|
12
|
+
var timestamp: Date? = nil
|
|
13
|
+
|
|
14
|
+
func toJSON() -> [String:Any?] {
|
|
15
|
+
var coords: [String:Any?] = [:]
|
|
16
|
+
|
|
17
|
+
if let location = location {
|
|
18
|
+
coords = coords.merging([
|
|
19
|
+
"latitude": location.coordinate.latitude,
|
|
20
|
+
"longitude": location.coordinate.longitude,
|
|
21
|
+
"altitude": location.altitude,
|
|
22
|
+
"accuracy": location.horizontalAccuracy,
|
|
23
|
+
"course": location.bearing,
|
|
24
|
+
"speed": location.speed
|
|
25
|
+
]) { (_, new ) in new }
|
|
26
|
+
}
|
|
27
|
+
if let heading = heading {
|
|
28
|
+
coords = coords.merging([
|
|
29
|
+
"heading": heading.direction
|
|
30
|
+
]) { (_, new) in new }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return [
|
|
34
|
+
"coords": coords,
|
|
35
|
+
"timestamp": (timestamp ?? location?.timestamp ?? heading?.timestamp ?? Date()).timeIntervalSince1970 * 1000
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
class RNMBXAppleLocationProviderProxy : LocationProvider & HeadingProvider {
|
|
42
|
+
var origProvider : AppleLocationProvider
|
|
43
|
+
|
|
44
|
+
var headingSimulator: Timer? = nil
|
|
45
|
+
var simulatedHeading: Double = 0.0
|
|
46
|
+
var simulatedHeadingIncrement: Double = 1.0
|
|
47
|
+
|
|
48
|
+
public var options: AppleLocationProvider.Options {
|
|
49
|
+
get {
|
|
50
|
+
origProvider.options
|
|
51
|
+
}
|
|
52
|
+
set {
|
|
53
|
+
origProvider.options = newValue
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
var onLocationUpdate: Signal<[Location]> {
|
|
58
|
+
get {
|
|
59
|
+
origProvider.onLocationUpdate
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var onHeadingUpdate: Signal<Heading> {
|
|
64
|
+
get {
|
|
65
|
+
origProvider.onHeadingUpdate
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
init(provider: AppleLocationProvider) {
|
|
70
|
+
self.origProvider = provider
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
func addLocationObserver(for observer: LocationObserver) {
|
|
74
|
+
origProvider.addLocationObserver(for: observer)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
func removeLocationObserver(for observer: LocationObserver) {
|
|
78
|
+
origProvider.removeLocationObserver(for: observer)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
func getLastObservedLocation() -> Location? {
|
|
82
|
+
origProvider.getLastObservedLocation()
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var latestHeading: MapboxMaps.Heading? {
|
|
86
|
+
get {
|
|
87
|
+
return origProvider.latestHeading
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var latestLocation: MapboxMaps.Location? {
|
|
92
|
+
get {
|
|
93
|
+
return origProvider.latestLocation
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
func add(headingObserver: MapboxMaps.HeadingObserver) {
|
|
98
|
+
origProvider.add(headingObserver: headingObserver)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
func remove(headingObserver: MapboxMaps.HeadingObserver) {
|
|
102
|
+
origProvider.remove(headingObserver: headingObserver)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// MARK: - heading simulation
|
|
107
|
+
|
|
108
|
+
extension RNMBXAppleLocationProviderProxy {
|
|
109
|
+
func simulateHeading(changesPerSecond: Int, increment: Double) {
|
|
110
|
+
self.simulatedHeadingIncrement = increment
|
|
111
|
+
DispatchQueue.main.async {
|
|
112
|
+
if let headingSimulator = self.headingSimulator {
|
|
113
|
+
headingSimulator.invalidate()
|
|
114
|
+
}
|
|
115
|
+
self.headingSimulator = nil
|
|
116
|
+
|
|
117
|
+
if (changesPerSecond > 0) {
|
|
118
|
+
self.headingSimulator = Timer.scheduledTimer(withTimeInterval: 1.0/Double(changesPerSecond), repeats: true) { [weak self] (_) in
|
|
119
|
+
guard let self = self else { return }
|
|
120
|
+
|
|
121
|
+
self.simulatedHeading = (self.simulatedHeading + self.simulatedHeadingIncrement).truncatingRemainder(dividingBy: 360.0)
|
|
122
|
+
self.locationProvider(self.provider, didUpdateHeading: SimulatedHeading(trueHeading: self.simulatedHeading, timestamp: Date()) )
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
// MARK: - RNMBXLocationModule
|
|
131
|
+
|
|
6
132
|
@objc(RNMBXLocationModule)
|
|
7
133
|
class RNMBXLocationModule: RCTEventEmitter {
|
|
8
|
-
|
|
9
134
|
static weak var shared : RNMBXLocationModule? = nil
|
|
10
135
|
|
|
136
|
+
// var _locationProvider : RNMBXAppleLocationProviderProxy = RNMBXAppleLocationProviderProxy(provider: AppleLocationProvider())
|
|
137
|
+
var _locationProvider : AppleLocationProvider = AppleLocationProvider()
|
|
138
|
+
var locationUpdateObserver : AnyCancelable? = nil
|
|
139
|
+
var locationHeadingObserver : AnyCancelable? = nil
|
|
140
|
+
|
|
141
|
+
var actLocation : RNMBXLocation = RNMBXLocation()
|
|
142
|
+
|
|
143
|
+
var hasListener : Bool = false
|
|
144
|
+
|
|
145
|
+
var throttler = EventThrottler()
|
|
146
|
+
|
|
11
147
|
override init() {
|
|
12
148
|
super.init()
|
|
13
149
|
RNMBXLocationModule.shared = self
|
|
14
150
|
}
|
|
15
151
|
|
|
152
|
+
func override(for locationManager: LocationManager) {
|
|
153
|
+
locationManager.override(provider: _locationProvider)
|
|
154
|
+
}
|
|
155
|
+
|
|
16
156
|
@objc
|
|
17
157
|
override static func requiresMainQueueSetup() -> Bool {
|
|
18
158
|
return true
|
|
@@ -22,10 +162,116 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
22
162
|
{
|
|
23
163
|
return [RCT_MAPBOX_USER_LOCATION_UPDATE];
|
|
24
164
|
}
|
|
165
|
+
|
|
166
|
+
@objc func start(_ minDisplacement: CLLocationDistance) {
|
|
167
|
+
var newOptions = _locationProvider.options
|
|
168
|
+
newOptions.distanceFilter = minDisplacement
|
|
169
|
+
if minDisplacement >= 0.0 { _locationProvider.options = newOptions }
|
|
170
|
+
|
|
171
|
+
locationUpdateObserver?.cancel()
|
|
172
|
+
locationUpdateObserver = _locationProvider.onLocationUpdate.observe { location in
|
|
173
|
+
guard self.hasListener else { return }
|
|
174
|
+
|
|
175
|
+
self.actLocation.location = location.last
|
|
176
|
+
self.throttler.perform {
|
|
177
|
+
self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: self.actLocation.toJSON())
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
locationHeadingObserver?.cancel()
|
|
181
|
+
locationHeadingObserver = _locationProvider.onHeadingUpdate.observe { heading in
|
|
182
|
+
guard self.hasListener else { return }
|
|
183
|
+
|
|
184
|
+
self.actLocation.heading = heading
|
|
185
|
+
self.throttler.perform {
|
|
186
|
+
self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: self.actLocation.toJSON())
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@objc func stop() {
|
|
192
|
+
locationUpdateObserver?.cancel()
|
|
193
|
+
locationUpdateObserver = nil
|
|
194
|
+
locationHeadingObserver?.cancel()
|
|
195
|
+
locationHeadingObserver = nil
|
|
196
|
+
throttler.cancel()
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@objc func getLastKnownLocation() -> RNMBXLocation? {
|
|
200
|
+
let last = RNMBXLocation()
|
|
201
|
+
last.heading = _locationProvider.latestHeading
|
|
202
|
+
last.location = _locationProvider.latestLocation
|
|
203
|
+
return last
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
@objc func setMinDisplacement(_ minDisplacement: CLLocationDistance) {
|
|
207
|
+
var newOptions = _locationProvider.options
|
|
208
|
+
newOptions.distanceFilter = minDisplacement
|
|
209
|
+
_locationProvider.options = newOptions
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@objc
|
|
213
|
+
func setLocationEventThrottle(_ throttleValue:NSNumber) {
|
|
214
|
+
let throttleValue = throttleValue.doubleValue
|
|
215
|
+
if throttleValue > 0.0 {
|
|
216
|
+
throttler.waitBetweenEvents = throttleValue
|
|
217
|
+
} else {
|
|
218
|
+
throttler.waitBetweenEvents = nil
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@objc
|
|
223
|
+
override func startObserving() {
|
|
224
|
+
super.startObserving()
|
|
225
|
+
hasListener = true
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
@objc
|
|
229
|
+
override func stopObserving() {
|
|
230
|
+
super.stopObserving()
|
|
231
|
+
throttler.cancel()
|
|
232
|
+
hasListener = false
|
|
233
|
+
}
|
|
25
234
|
|
|
26
235
|
var locationProvider : LocationProvider & HeadingProvider {
|
|
27
236
|
get {
|
|
28
|
-
|
|
237
|
+
return _locationProvider
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
class EventThrottler {
|
|
243
|
+
var waitBetweenEvents: Double? = nil
|
|
244
|
+
var lastSentTimestamp: Double? = nil
|
|
245
|
+
|
|
246
|
+
func shouldSend() -> Bool {
|
|
247
|
+
guard let waitBetweenEvents = waitBetweenEvents, waitBetweenEvents > 0 else {
|
|
248
|
+
return true
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
let currentTimestamp: Double = CACurrentMediaTime() * 1000.0
|
|
252
|
+
|
|
253
|
+
guard let lastSentTimestamp = lastSentTimestamp else {
|
|
254
|
+
self.lastSentTimestamp = currentTimestamp
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (currentTimestamp - lastSentTimestamp > waitBetweenEvents) {
|
|
259
|
+
self.lastSentTimestamp = currentTimestamp
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
func cancel() {}
|
|
267
|
+
|
|
268
|
+
func shouldTrhottle() -> Bool {
|
|
269
|
+
return !shouldSend()
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
func perform(action: @escaping () -> Void) {
|
|
273
|
+
if shouldSend() {
|
|
274
|
+
action()
|
|
29
275
|
}
|
|
30
276
|
}
|
|
31
277
|
}
|
|
@@ -768,6 +768,16 @@ extension RNMBXMapView {
|
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
|
|
771
|
+
extension MapboxMaps.PointAnnotationManager {
|
|
772
|
+
public func refresh() {
|
|
773
|
+
#if !RNMBX_11
|
|
774
|
+
syncSourceAndLayerIfNeeded()
|
|
775
|
+
#else
|
|
776
|
+
self.annotations = annotations
|
|
777
|
+
#endif
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
|
|
771
781
|
extension RNMBXMapView: GestureManagerDelegate {
|
|
772
782
|
private func draggableSources() -> [RNMBXInteractiveElement] {
|
|
773
783
|
return sources.filter { $0.isDraggable() }
|
|
@@ -1234,7 +1244,7 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
|
|
|
1234
1244
|
|
|
1235
1245
|
func add(_ annotation: PointAnnotation) {
|
|
1236
1246
|
manager.annotations.append(annotation)
|
|
1237
|
-
manager.
|
|
1247
|
+
manager.refresh()
|
|
1238
1248
|
}
|
|
1239
1249
|
|
|
1240
1250
|
func update(_ annotation: PointAnnotation) {
|
|
@@ -1246,6 +1256,7 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
|
|
|
1246
1256
|
}
|
|
1247
1257
|
|
|
1248
1258
|
manager.annotations[index] = annotation
|
|
1249
|
-
manager.
|
|
1259
|
+
manager.refresh()
|
|
1250
1260
|
}
|
|
1251
1261
|
}
|
|
1262
|
+
|
|
@@ -12,7 +12,13 @@ open class RNMBXStyleImport : UIView, RNMBXMapComponent {
|
|
|
12
12
|
var existing: Bool = false;
|
|
13
13
|
|
|
14
14
|
@objc
|
|
15
|
-
var config: [String: Any]?
|
|
15
|
+
var config: [String: Any]? {
|
|
16
|
+
didSet {
|
|
17
|
+
if let mapView = mapView {
|
|
18
|
+
apply(mapView: mapView)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
16
22
|
|
|
17
23
|
func waitForStyleLoad() -> Bool {
|
|
18
24
|
true
|
|
@@ -9,6 +9,11 @@ var _RNMBXStyleImportNativeComponent = _interopRequireDefault(require("../specs/
|
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
/**
|
|
13
|
+
* Use StyleImport to set configuration options on the new standard style. **V11 only.**
|
|
14
|
+
*
|
|
15
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
16
|
+
*/
|
|
12
17
|
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(props => {
|
|
13
18
|
return /*#__PURE__*/_react.default.createElement(_RNMBXStyleImportNativeComponent.default, props);
|
|
14
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_RNMBXStyleImportNativeComponent","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_default","exports","memo","props","createElement"],"sourceRoot":"../../../src","sources":["components/StyleImport.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,gCAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAyE,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAI,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_RNMBXStyleImportNativeComponent","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_default","exports","memo","props","createElement"],"sourceRoot":"../../../src","sources":["components/StyleImport.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,gCAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAyE,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAI,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAuBzE;AACA;AACA;AACA;AACA;AAJA,IAAAW,QAAA,GAAAC,OAAA,CAAArB,OAAA,gBAKe,IAAAsB,WAAI,EAAEC,KAAY,IAAK;EACpC,oBAAO9B,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAAC5B,gCAAA,CAAAI,OAAiB,EAAKuB,KAAQ,CAAC;AACzC,CAAC,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import React, { memo } from 'react';
|
|
2
2
|
import NativeStyleImport from '../specs/RNMBXStyleImportNativeComponent';
|
|
3
|
+
/**
|
|
4
|
+
* Use StyleImport to set configuration options on the new standard style. **V11 only.**
|
|
5
|
+
*
|
|
6
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
7
|
+
*/
|
|
3
8
|
export default /*#__PURE__*/memo(props => {
|
|
4
9
|
return /*#__PURE__*/React.createElement(NativeStyleImport, props);
|
|
5
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","NativeStyleImport","props","createElement"],"sourceRoot":"../../../src","sources":["components/StyleImport.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,OAAOC,iBAAiB,MAAM,0CAA0C;
|
|
1
|
+
{"version":3,"names":["React","memo","NativeStyleImport","props","createElement"],"sourceRoot":"../../../src","sources":["components/StyleImport.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,OAAOC,iBAAiB,MAAM,0CAA0C;AAuBxE;AACA;AACA;AACA;AACA;AACA,4BAAeD,IAAI,CAAEE,KAAY,IAAK;EACpC,oBAAOH,KAAA,CAAAI,aAAA,CAACF,iBAAiB,EAAKC,KAAQ,CAAC;AACzC,CAAC,CAAC"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare type Props = {
|
|
3
|
+
/**
|
|
4
|
+
* id of the style import (eg. basemap)
|
|
5
|
+
*/
|
|
3
6
|
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* existing is now always required as true
|
|
9
|
+
*/
|
|
4
10
|
existing: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* config is a dictionary of configuration options for the style import.
|
|
13
|
+
*
|
|
14
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
15
|
+
*/
|
|
5
16
|
config: {
|
|
6
17
|
[key: string]: string;
|
|
7
18
|
};
|
|
8
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Use StyleImport to set configuration options on the new standard style. **V11 only.**
|
|
22
|
+
*
|
|
23
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
24
|
+
*/
|
|
9
25
|
declare const _default: React.MemoExoticComponent<(props: Props) => React.JSX.Element>;
|
|
10
26
|
export default _default;
|
|
11
27
|
//# sourceMappingURL=StyleImport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleImport.d.ts","sourceRoot":"","sources":["../../../src/components/StyleImport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAIpC,aAAK,KAAK,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IAEX,QAAQ,EAAE,OAAO,CAAC;IAElB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"StyleImport.d.ts","sourceRoot":"","sources":["../../../src/components/StyleImport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAIpC,aAAK,KAAK,GAAG;IACX;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF;;;;GAIG;0DACyB,KAAK;AAAjC,wBAEG"}
|
package/package.json
CHANGED
|
@@ -3,15 +3,31 @@ import React, { memo } from 'react';
|
|
|
3
3
|
import NativeStyleImport from '../specs/RNMBXStyleImportNativeComponent';
|
|
4
4
|
|
|
5
5
|
type Props = {
|
|
6
|
+
/**
|
|
7
|
+
* id of the style import (eg. basemap)
|
|
8
|
+
*/
|
|
6
9
|
id: string;
|
|
7
10
|
|
|
11
|
+
/**
|
|
12
|
+
* existing is now always required as true
|
|
13
|
+
*/
|
|
8
14
|
existing: boolean;
|
|
9
15
|
|
|
16
|
+
/**
|
|
17
|
+
* config is a dictionary of configuration options for the style import.
|
|
18
|
+
*
|
|
19
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
20
|
+
*/
|
|
10
21
|
config: {
|
|
11
22
|
[key: string]: string;
|
|
12
23
|
};
|
|
13
24
|
};
|
|
14
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Use StyleImport to set configuration options on the new standard style. **V11 only.**
|
|
28
|
+
*
|
|
29
|
+
* See https://github.com/mapbox/mapbox-maps-ios/blob/main/Sources/MapboxMaps/Documentation.docc/Migrate%20to%20v11.md#21-the-mapbox-standard-style
|
|
30
|
+
*/
|
|
15
31
|
export default memo((props: Props) => {
|
|
16
32
|
return <NativeStyleImport {...props} />;
|
|
17
33
|
});
|