@rnmapbox/maps 10.0.0-rc.0 → 10.0.0-rc.10
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 +2 -2
- package/android/rctmgl/build.gradle +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.kt +75 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.kt +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCamera.kt +92 -9
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.kt +2 -2
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/LocationComponentManager.kt +3 -2
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.kt +23 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +86 -17
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.kt +24 -8
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.kt +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.kt +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.kt +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AbstractEvent.kt +49 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/IEvent.kt +17 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/LocationEvent.kt +11 -16
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.kt +10 -10
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.kt +44 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLLocationModule.kt +36 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLModule.kt +4 -3
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.kt +474 -405
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/FeatureCollection.kt +10 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Geometry.kt +22 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/JSONObject.kt +78 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/ReadableArray.kt +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Value.kt +9 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/writeableMapArrayOf.kt +41 -0
- package/ios/RCTMGL-v10/RCTMGLCamera.swift +1 -6
- package/ios/RCTMGL-v10/RCTMGLImages.swift +0 -1
- package/ios/RCTMGL-v10/RCTMGLLocationModule.m +2 -2
- package/ios/RCTMGL-v10/RCTMGLMapView.swift +7 -1
- package/ios/RCTMGL-v10/RCTMGLOfflineModule.swift +283 -307
- package/ios/install.md +7 -0
- package/lib/commonjs/components/MapView.js +12 -2
- package/lib/commonjs/components/MapView.js.map +1 -1
- package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
- package/lib/commonjs/components/Terrain.js +1 -2
- package/lib/commonjs/components/Terrain.js.map +1 -1
- package/lib/commonjs/components/VectorSource.js +2 -0
- package/lib/commonjs/components/VectorSource.js.map +1 -1
- package/lib/commonjs/modules/location/locationManager.js +4 -0
- package/lib/commonjs/modules/location/locationManager.js.map +1 -1
- package/lib/module/components/MapView.js +12 -2
- package/lib/module/components/MapView.js.map +1 -1
- package/lib/module/components/NativeUserLocation.js.map +1 -1
- package/lib/module/components/Terrain.js +1 -2
- package/lib/module/components/Terrain.js.map +1 -1
- package/lib/module/components/VectorSource.js +3 -0
- package/lib/module/components/VectorSource.js.map +1 -1
- package/lib/module/modules/location/locationManager.js +4 -0
- package/lib/module/modules/location/locationManager.js.map +1 -1
- package/lib/typescript/components/MapView.d.ts +7 -1
- package/lib/typescript/components/MapView.d.ts.map +1 -1
- package/lib/typescript/components/NativeUserLocation.d.ts.map +1 -1
- package/lib/typescript/components/Terrain.d.ts.map +1 -1
- package/package.json +1 -1
- package/plugin/install.md +17 -0
- package/rnmapbox-maps.podspec +1 -1
- package/src/components/MapView.tsx +11 -3
- package/src/components/NativeUserLocation.tsx +5 -3
- package/src/components/Terrain.tsx +3 -5
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.java +0 -82
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AbstractEvent.java +0 -62
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/IEvent.java +0 -18
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.java +0 -51
package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/FeatureCollection.kt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.utils.extensions
|
|
2
|
+
|
|
3
|
+
import com.mapbox.geojson.FeatureCollection
|
|
4
|
+
import com.mapbox.geojson.GeometryCollection
|
|
5
|
+
|
|
6
|
+
fun FeatureCollection.toGeometryCollection(): GeometryCollection {
|
|
7
|
+
return GeometryCollection.fromGeometries(
|
|
8
|
+
this.features()!!.map { it.geometry() !! }
|
|
9
|
+
)
|
|
10
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.utils.extensions
|
|
2
|
+
|
|
3
|
+
import com.mapbox.geojson.BoundingBox
|
|
4
|
+
import com.mapbox.geojson.Geometry
|
|
5
|
+
import com.mapbox.geojson.Polygon
|
|
6
|
+
import com.mapbox.turf.TurfMeasurement
|
|
7
|
+
import org.json.JSONObject
|
|
8
|
+
|
|
9
|
+
fun Geometry.toJSONObject(): JSONObject? {
|
|
10
|
+
return JSONObject(this.toJson())
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
fun Geometry.calculateBoundingBox(): BoundingBox {
|
|
14
|
+
val storedBBox = bbox()
|
|
15
|
+
if (storedBBox != null) {
|
|
16
|
+
return storedBBox
|
|
17
|
+
}
|
|
18
|
+
val bbox = TurfMeasurement.bbox(this)
|
|
19
|
+
return BoundingBox.fromLngLats(
|
|
20
|
+
bbox[0], bbox[1], bbox[2], bbox[3]
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.utils.extensions
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.bridge.WritableMap
|
|
7
|
+
import com.mapbox.bindgen.Value
|
|
8
|
+
import com.mapbox.geojson.Geometry
|
|
9
|
+
import com.mapbox.geojson.Polygon
|
|
10
|
+
import com.mapbox.rctmgl.utils.Logger
|
|
11
|
+
import org.json.JSONArray
|
|
12
|
+
import org.json.JSONObject
|
|
13
|
+
|
|
14
|
+
fun JSONObject.toGeometry(): Geometry? {
|
|
15
|
+
when (this.optString("type")) {
|
|
16
|
+
"polygon" -> return Polygon.fromJson(this.toString())
|
|
17
|
+
else -> {
|
|
18
|
+
Logger.w("JSONObject", "Unexpected geometry: ${this.toString()}")
|
|
19
|
+
return null
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
fun JSONObject.toMapboxValue(): Value {
|
|
25
|
+
return Value.fromJson(this.toString()).value!!
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
fun JSONObject.toWritableMap(): WritableMap? {
|
|
29
|
+
val result = Arguments.createMap()
|
|
30
|
+
val iterator = keys()
|
|
31
|
+
while (iterator.hasNext()) {
|
|
32
|
+
val key = iterator.next()
|
|
33
|
+
val value = get(key)
|
|
34
|
+
if (value is JSONObject) {
|
|
35
|
+
result.putMap(key, value.toReadableMap());
|
|
36
|
+
} else if (value is JSONArray) {
|
|
37
|
+
result.putArray(key, value.toReadableArray());
|
|
38
|
+
} else if (value is Boolean) {
|
|
39
|
+
result.putBoolean(key, value);
|
|
40
|
+
} else if (value is Int) {
|
|
41
|
+
result.putInt(key, value);
|
|
42
|
+
} else if (value is Double) {
|
|
43
|
+
result.putDouble(key, value);
|
|
44
|
+
} else if (value is String) {
|
|
45
|
+
result.putString(key, value);
|
|
46
|
+
} else {
|
|
47
|
+
result.putString(key, value.toString());
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return result
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
fun JSONObject.toReadableMap(): ReadableMap? {
|
|
54
|
+
return toWritableMap()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
fun JSONArray.toReadableArray(): ReadableArray? {
|
|
58
|
+
val result = Arguments.createArray()
|
|
59
|
+
for (i in 0 until length()) {
|
|
60
|
+
val value: Any = get(i)
|
|
61
|
+
if (value is JSONObject) {
|
|
62
|
+
result.pushMap(value.toReadableMap())
|
|
63
|
+
} else if (value is JSONArray) {
|
|
64
|
+
result.pushArray(value.toReadableArray())
|
|
65
|
+
} else if (value is Boolean) {
|
|
66
|
+
result.pushBoolean(value)
|
|
67
|
+
} else if (value is Int) {
|
|
68
|
+
result.pushInt(value)
|
|
69
|
+
} else if (value is Double) {
|
|
70
|
+
result.pushDouble(value)
|
|
71
|
+
} else if (value is String) {
|
|
72
|
+
result.pushString(value)
|
|
73
|
+
} else {
|
|
74
|
+
result.pushString(value.toString())
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result
|
|
78
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableArray
|
|
5
|
+
import com.facebook.react.bridge.WritableMap
|
|
6
|
+
|
|
7
|
+
fun writableMapOf(vararg values: Pair<String, *>): WritableMap {
|
|
8
|
+
val map = Arguments.createMap()
|
|
9
|
+
for ((key, value) in values) {
|
|
10
|
+
when (value) {
|
|
11
|
+
null -> map.putNull(key)
|
|
12
|
+
is Boolean -> map.putBoolean(key, value)
|
|
13
|
+
is Double -> map.putDouble(key, value)
|
|
14
|
+
is Int -> map.putInt(key, value)
|
|
15
|
+
is Long -> map.putInt(key, value.toInt())
|
|
16
|
+
is String -> map.putString(key, value)
|
|
17
|
+
is WritableMap -> map.putMap(key, value)
|
|
18
|
+
is WritableArray -> map.putArray(key, value)
|
|
19
|
+
else -> throw IllegalArgumentException("Unsupported value type ${value::class.java.name} for key [$key]")
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return map
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
fun writableArrayOf(vararg values: Any): WritableArray {
|
|
26
|
+
val array = Arguments.createArray()
|
|
27
|
+
for (value in values) {
|
|
28
|
+
when (value) {
|
|
29
|
+
null -> array.pushNull()
|
|
30
|
+
is Boolean -> array.pushBoolean(value)
|
|
31
|
+
is Double -> array.pushDouble(value)
|
|
32
|
+
is Int -> array.pushInt(value)
|
|
33
|
+
is Long -> array.pushInt(value.toInt())
|
|
34
|
+
is String -> array.pushString(value)
|
|
35
|
+
is WritableMap -> array.pushMap(value)
|
|
36
|
+
is WritableArray -> array.pushArray(value)
|
|
37
|
+
else -> throw IllegalArgumentException("Unsupported value type ${value::class.java.name}")
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return array
|
|
41
|
+
}
|
|
@@ -290,17 +290,12 @@ class RCTMGLCamera : RCTMGLMapComponentBase {
|
|
|
290
290
|
case .none:
|
|
291
291
|
Logger.assert("RCTMGLCamera, userTrackingModes should not be none here")
|
|
292
292
|
case .compass:
|
|
293
|
-
map.location.options.puckBearingEnabled = true
|
|
294
|
-
map.location.options.puckBearingSource = PuckBearingSource.heading
|
|
295
293
|
followOptions.bearing = FollowPuckViewportStateBearing.heading
|
|
296
294
|
trackingModeChanged = true
|
|
297
295
|
case .course:
|
|
298
|
-
map.location.options.puckBearingEnabled = true
|
|
299
|
-
map.location.options.puckBearingSource = PuckBearingSource.course
|
|
300
296
|
followOptions.bearing = FollowPuckViewportStateBearing.course
|
|
301
297
|
trackingModeChanged = true
|
|
302
298
|
case .normal:
|
|
303
|
-
map.location.options.puckBearingEnabled = false
|
|
304
299
|
followOptions.bearing = nil
|
|
305
300
|
trackingModeChanged = true
|
|
306
301
|
}
|
|
@@ -576,7 +571,7 @@ extension RCTMGLCamera : ViewportStatusObserver {
|
|
|
576
571
|
if reason == .idleRequested {
|
|
577
572
|
return "idleRequested"
|
|
578
573
|
} else if reason == .transitionFailed {
|
|
579
|
-
return "
|
|
574
|
+
return "transitionFailed"
|
|
580
575
|
} else if reason == .transitionStarted {
|
|
581
576
|
return "transitionStarted"
|
|
582
577
|
} else if reason == .transitionSucceeded {
|
|
@@ -55,7 +55,6 @@ class RCTMGLImages : UIView, RCTMGLMapComponent {
|
|
|
55
55
|
func addToMap(_ map: RCTMGLMapView, style: Style) {
|
|
56
56
|
self.style = style
|
|
57
57
|
map.images.append(self)
|
|
58
|
-
map.setupEvents()
|
|
59
58
|
|
|
60
59
|
self.addNativeImages(style: style, nativeImages: nativeImageInfos)
|
|
61
60
|
self.addRemoteImages(style: style, remoteImages: images)
|
|
@@ -12,9 +12,9 @@ RCT_EXTERN_METHOD(getLastKnownLocation)
|
|
|
12
12
|
RCT_EXTERN_METHOD(setMinDisplacement:(CLLocationDistance)minDisplacement)
|
|
13
13
|
RCT_EXTERN_METHOD(setRequestsAlwaysUse:(BOOL)requestsAlwaysUse)
|
|
14
14
|
|
|
15
|
-
RCT_EXTERN_METHOD(setLocationEventThrottle:(NSNumber *)throttleValue)
|
|
15
|
+
RCT_EXTERN_METHOD(setLocationEventThrottle:(nonnull NSNumber *)throttleValue)
|
|
16
16
|
|
|
17
|
-
RCT_EXTERN_METHOD(simulateHeading:(nonnull NSNumber)changesPerSecond increment:(nonnull NSNumber))
|
|
17
|
+
RCT_EXTERN_METHOD(simulateHeading:(nonnull NSNumber*)changesPerSecond increment:(nonnull NSNumber*))
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@end
|
|
@@ -26,6 +26,8 @@ open class RCTMGLMapView : MapView {
|
|
|
26
26
|
|
|
27
27
|
var handleMapChangedEvents = Set<RCTMGLEvent.EventType>()
|
|
28
28
|
|
|
29
|
+
var eventListeners : [Cancelable] = []
|
|
30
|
+
|
|
29
31
|
private var isPendingInitialLayout = true
|
|
30
32
|
private var wasGestureActive = false
|
|
31
33
|
private var isGestureActive = false
|
|
@@ -347,11 +349,15 @@ open class RCTMGLMapView : MapView {
|
|
|
347
349
|
|
|
348
350
|
extension RCTMGLMapView {
|
|
349
351
|
private func onEvery<Payload>(event: MapEvents.Event<Payload>, handler: @escaping (RCTMGLMapView, MapEvent<Payload>) -> Void) {
|
|
350
|
-
self.mapView.mapboxMap.onEvery(event: event) { [weak self](mapEvent) in
|
|
352
|
+
let eventListener = self.mapView.mapboxMap.onEvery(event: event) { [weak self](mapEvent) in
|
|
351
353
|
guard let self = self else { return }
|
|
352
354
|
|
|
353
355
|
handler(self, mapEvent)
|
|
354
356
|
}
|
|
357
|
+
eventListeners.append(eventListener)
|
|
358
|
+
if eventListeners.count > 20 {
|
|
359
|
+
Logger.log(level:.warn, message: "RCTMGLMapView.onEvery, too much handler installed");
|
|
360
|
+
}
|
|
355
361
|
}
|
|
356
362
|
|
|
357
363
|
private func onNext<Payload>(event: MapEvents.Event<Payload>, handler: @escaping (RCTMGLMapView, MapEvent<Payload>) -> Void) {
|