@maplibre/maplibre-react-native 9.1.0 → 10.0.0-alpha.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/.husky/pre-commit +5 -0
- package/.sonarcloud.properties +1 -1
- package/CHANGELOG.md +107 -50
- package/CONTRIBUTING.md +10 -9
- package/README.md +1 -1
- package/android/build.gradle +1 -1
- package/android/{rctmgl → rctmln}/build.gradle +8 -8
- package/android/{rctmgl → rctmln}/src/main/AndroidManifest.xml +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/RCTMLNPackage.java +99 -0
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEvent.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEventEmitter.java +2 -2
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractMapFeature.java +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerView.java +3 -3
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerViewManager.java +12 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java} +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +22 -0
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java} +18 -18
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java} +27 -26
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java} +14 -14
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraStop.java +21 -19
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateItem.java +12 -12
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateQueue.java +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java} +50 -50
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java} +19 -19
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/constants/CameraMode.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java} +27 -27
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java} +17 -17
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/location/LocationComponentManager.java +16 -16
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java} +15 -15
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java} +7 -7
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/LayerSourceInfo.java +10 -10
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +16 -0
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +31 -0
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java} +114 -114
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java} +46 -46
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/helpers/CameraChangeTracker.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java} +12 -12
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java} +422 -422
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java} +8 -9
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java} +9 -9
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/layers/RCTLayer.java +17 -17
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +27 -0
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java} +13 -13
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java} +15 -15
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java} +16 -16
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java} +16 -16
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java} +15 -15
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java} +17 -17
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +27 -0
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java} +13 -13
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java} +15 -15
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java} +16 -16
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java} +6 -6
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java} +7 -7
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java} +15 -15
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java} +6 -6
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java} +7 -7
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java} +22 -22
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java} +35 -35
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java} +5 -5
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java} +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java} +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java} +12 -12
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/sources/RCTSource.java +14 -14
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AbstractEvent.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AndroidCallbackEvent.java +2 -2
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/EventEmitter.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/FeatureClickEvent.java +8 -8
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/IEvent.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/ImageMissingEvent.java +3 -3
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/LocationEvent.java +6 -6
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapChangeEvent.java +3 -3
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapClickEvent.java +5 -5
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapUserTrackingModeEvent.java +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/OfflineEvent.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationClickEvent.java +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationDragEvent.java +10 -10
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventKeys.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventTypes.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/http/CustomHeadersInterceptor.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/LocationManager.java +8 -8
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocation.java +2 -2
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocationVerticalAlignment.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingMode.java +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingState.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java} +11 -11
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java} +7 -7
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java} +30 -30
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java} +42 -47
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java} +14 -14
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/BitmapUtils.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ClusterPropertyEntry.java +2 -2
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ConvertUtils.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/DownloadMapImageTask.java +6 -6
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ExpressionParser.java +3 -3
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoJSONUtils.java +14 -14
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoViewport.java +4 -4
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ImageEntry.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ResourceUtils.java +1 -1
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SimpleEventCallback.java +5 -5
- package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SphericalMercator.java +2 -2
- package/android/rctmln/src/main/res/values/strings.xml +3 -0
- package/android/settings.gradle +1 -1
- package/docs/Annotation.md +8 -9
- package/docs/Annotations.md +1 -1
- package/docs/BackgroundLayer.md +2 -10
- package/docs/Callout.md +5 -5
- package/docs/Camera.md +21 -50
- package/docs/CircleLayer.md +2 -10
- package/docs/CustomHttpHeaders.md +4 -4
- package/docs/FillExtrusionLayer.md +2 -10
- package/docs/FillLayer.md +2 -10
- package/docs/HeatmapLayer.md +2 -10
- package/docs/ImageSource.md +3 -2
- package/docs/Images.md +5 -3
- package/docs/Light.md +1 -1
- package/docs/LineLayer.md +2 -10
- package/docs/MapView.md +31 -39
- package/docs/MarkerView.md +5 -3
- package/docs/NativeUserLocation.md +2 -2
- package/docs/PointAnnotation.md +6 -9
- package/docs/RasterLayer.md +2 -10
- package/docs/RasterSource.md +3 -2
- package/docs/ShapeSource.md +12 -7
- package/docs/Style.md +1 -1
- package/docs/SymbolLayer.md +3 -10
- package/docs/UserLocation.md +16 -10
- package/docs/VectorSource.md +6 -5
- package/docs/coordinates.md +6 -0
- package/docs/docs.json +557 -1317
- package/docs/location.md +6 -0
- package/docs/offlineManager.md +246 -0
- package/docs/snapshotManager.md +3 -3
- package/ios/{RCTMGL → RCTMLN}/CameraMode.h +1 -1
- package/ios/{RCTMGL → RCTMLN}/CameraMode.m +1 -1
- package/ios/{RCTMGL → RCTMLN}/CameraStop.h +4 -4
- package/ios/{RCTMGL → RCTMLN}/CameraStop.m +7 -7
- package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.h +3 -3
- package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.m +19 -19
- package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.h +3 -3
- package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.m +3 -3
- package/ios/{RCTMGL → RCTMLN}/FilterParser.h +1 -1
- package/ios/{RCTMGL → RCTMLN}/FilterParser.m +3 -3
- package/ios/{RCTMGL/MGLCustomHeaders.h → RCTMLN/MLNCustomHeaders.h} +3 -3
- package/ios/{RCTMGL/MGLCustomHeaders.m → RCTMLN/MLNCustomHeaders.m} +10 -10
- package/ios/RCTMLN/MLNFaux3DUserLocationAnnotationView.h +23 -0
- package/ios/{RCTMGL/MGLFaux3DUserLocationAnnotationView.m → RCTMLN/MLNFaux3DUserLocationAnnotationView.m} +38 -38
- package/ios/{RCTMGL/MGLModule.h → RCTMLN/MLNModule.h} +3 -3
- package/ios/{RCTMGL/MGLModule.m → RCTMLN/MLNModule.m} +91 -91
- package/ios/{RCTMGL/MGLOfflineModule.h → RCTMLN/MLNOfflineModule.h} +4 -4
- package/ios/{RCTMGL/MGLOfflineModule.m → RCTMLN/MLNOfflineModule.m} +59 -59
- package/ios/{RCTMGL/MGLSnapshotModule.h → RCTMLN/MLNSnapshotModule.h} +3 -3
- package/ios/{RCTMGL/MGLSnapshotModule.m → RCTMLN/MLNSnapshotModule.m} +14 -14
- package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.h → RCTMLN/MLNUserLocationHeadingArrowLayer.h} +4 -4
- package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.m → RCTMLN/MLNUserLocationHeadingArrowLayer.m} +7 -7
- package/ios/RCTMLN/MLNUserLocationHeadingBeamLayer.h +11 -0
- package/ios/{RCTMGL/MGLUserLocationHeadingBeamLayer.m → RCTMLN/MLNUserLocationHeadingBeamLayer.m} +10 -10
- package/ios/{RCTMGL/MGLUserLocationHeadingIndicator.h → RCTMLN/MLNUserLocationHeadingIndicator.h} +3 -3
- package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.h +1 -1
- package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.m +1 -1
- package/ios/{RCTMGL/RCTMGL.h → RCTMLN/RCTMLN.h} +3 -3
- package/ios/{RCTMGL/RCTMGL.m → RCTMLN/RCTMLN.m} +4 -4
- package/ios/RCTMLN/RCTMLNBackgroundLayer.h +14 -0
- package/ios/RCTMLN/RCTMLNBackgroundLayer.m +27 -0
- package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.h → RCTMLN/RCTMLNBackgroundLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.m → RCTMLN/RCTMLNBackgroundLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLCallout.h → RCTMLN/RCTMLNCallout.h} +4 -4
- package/ios/{RCTMGL/RCTMGLCallout.m → RCTMLN/RCTMLNCallout.m} +6 -6
- package/ios/{RCTMGL/RCTMGLCalloutManager.h → RCTMLN/RCTMLNCalloutManager.h} +3 -3
- package/ios/RCTMLN/RCTMLNCalloutManager.m +21 -0
- package/ios/{RCTMGL/RCTMGLCamera.h → RCTMLN/RCTMLNCamera.h} +6 -6
- package/ios/{RCTMGL/RCTMGLCamera.m → RCTMLN/RCTMLNCamera.m} +30 -30
- package/ios/{RCTMGL/RCTMGLCameraManager.h → RCTMLN/RCTMLNCameraManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLCameraManager.m → RCTMLN/RCTMLNCameraManager.m} +7 -7
- package/ios/RCTMLN/RCTMLNCircleLayer.h +13 -0
- package/ios/{RCTMGL/RCTMGLCircleLayer.m → RCTMLN/RCTMLNCircleLayer.m} +10 -10
- package/ios/{RCTMGL/RCTMGLCircleLayerManager.h → RCTMLN/RCTMLNCircleLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLCircleLayerManager.m → RCTMLN/RCTMLNCircleLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLEvent.h → RCTMLN/RCTMLNEvent.h} +6 -6
- package/ios/{RCTMGL/RCTMGLEvent.m → RCTMLN/RCTMLNEvent.m} +8 -8
- package/ios/{RCTMGL/RCTMGLEventProtocol.h → RCTMLN/RCTMLNEventProtocol.h} +3 -3
- package/ios/{RCTMGL/RCTMGLEventTypes.h → RCTMLN/RCTMLNEventTypes.h} +3 -3
- package/ios/{RCTMGL/RCTMGLEventTypes.m → RCTMLN/RCTMLNEventTypes.m} +4 -4
- package/ios/RCTMLN/RCTMLNFillExtrusionLayer.h +14 -0
- package/ios/{RCTMGL/RCTMGLFillExtrusionLayer.m → RCTMLN/RCTMLNFillExtrusionLayer.m} +10 -10
- package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.h → RCTMLN/RCTMLNFillExtrusionLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.m → RCTMLN/RCTMLNFillExtrusionLayerManager.m} +6 -6
- package/ios/RCTMLN/RCTMLNFillLayer.h +14 -0
- package/ios/{RCTMGL/RCTMGLFillLayer.m → RCTMLN/RCTMLNFillLayer.m} +10 -10
- package/ios/{RCTMGL/RCTMGLFillLayerManager.h → RCTMLN/RCTMLNFillLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLFillLayerManager.m → RCTMLN/RCTMLNFillLayerManager.m} +6 -6
- package/ios/RCTMLN/RCTMLNHeatmapLayer.h +12 -0
- package/ios/RCTMLN/RCTMLNHeatmapLayer.m +30 -0
- package/ios/RCTMLN/RCTMLNHeatmapLayerManager.h +12 -0
- package/ios/{RCTMGL/RCTMGLHeatmapLayerManager.m → RCTMLN/RCTMLNHeatmapLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLImageQueue.h → RCTMLN/RCTMLNImageQueue.h} +3 -3
- package/ios/{RCTMGL/RCTMGLImageQueue.m → RCTMLN/RCTMLNImageQueue.m} +10 -10
- package/ios/{RCTMGL/RCTMGLImageQueueOperation.h → RCTMLN/RCTMLNImageQueueOperation.h} +3 -3
- package/ios/{RCTMGL/RCTMGLImageQueueOperation.m → RCTMLN/RCTMLNImageQueueOperation.m} +12 -12
- package/ios/{RCTMGL/RCTMGLImageSource.h → RCTMLN/RCTMLNImageSource.h} +4 -4
- package/ios/{RCTMGL/RCTMGLImageSource.m → RCTMLN/RCTMLNImageSource.m} +11 -11
- package/ios/{RCTMGL/RCTMGLImageSourceManager.h → RCTMLN/RCTMLNImageSourceManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLImageSourceManager.m → RCTMLN/RCTMLNImageSourceManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLImages.h → RCTMLN/RCTMLNImages.h} +4 -4
- package/ios/{RCTMGL/RCTMGLImages.m → RCTMLN/RCTMLNImages.m} +10 -10
- package/ios/RCTMLN/RCTMLNImagesManager.h +5 -0
- package/ios/{RCTMGL/RCTMGLImagesManager.m → RCTMLN/RCTMLNImagesManager.m} +4 -4
- package/ios/{RCTMGL/RCTMGLLayer.h → RCTMLN/RCTMLNLayer.h} +11 -11
- package/ios/{RCTMGL/RCTMGLLayer.m → RCTMLN/RCTMLNLayer.m} +17 -17
- package/ios/{RCTMGL/RCTMGLLight.h → RCTMLN/RCTMLNLight.h} +5 -5
- package/ios/{RCTMGL/RCTMGLLight.m → RCTMLN/RCTMLNLight.m} +9 -9
- package/ios/{RCTMGL/RCTMGLLightManager.h → RCTMLN/RCTMLNLightManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLLightManager.m → RCTMLN/RCTMLNLightManager.m} +6 -6
- package/ios/RCTMLN/RCTMLNLineLayer.h +14 -0
- package/ios/{RCTMGL/RCTMGLLineLayer.m → RCTMLN/RCTMLNLineLayer.m} +10 -10
- package/ios/{RCTMGL/RCTMGLLineLayerManager.h → RCTMLN/RCTMLNLineLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLLineLayerManager.m → RCTMLN/RCTMLNLineLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLLocation.h → RCTMLN/RCTMLNLocation.h} +3 -3
- package/ios/{RCTMGL/RCTMGLLocation.m → RCTMLN/RCTMLNLocation.m} +4 -4
- package/ios/RCTMLN/RCTMLNLocationManager.h +30 -0
- package/ios/{RCTMGL/RCTMGLLocationManager.m → RCTMLN/RCTMLNLocationManager.m} +16 -16
- package/ios/RCTMLN/RCTMLNLocationManagerDelegate.h +20 -0
- package/ios/{RCTMGL/RCTMGLLocationModule.h → RCTMLN/RCTMLNLocationModule.h} +3 -3
- package/ios/{RCTMGL/RCTMGLLocationModule.m → RCTMLN/RCTMLNLocationModule.m} +13 -13
- package/ios/RCTMLN/RCTMLNLogging.h +18 -0
- package/ios/{RCTMGL/RCTMGLLogging.m → RCTMLN/RCTMLNLogging.m} +29 -29
- package/ios/{RCTMGL/RCTMGLMapTouchEvent.h → RCTMLN/RCTMLNMapTouchEvent.h} +10 -10
- package/ios/{RCTMGL/RCTMGLMapTouchEvent.m → RCTMLN/RCTMLNMapTouchEvent.m} +18 -18
- package/ios/{RCTMGL/RCTMGLMapView.h → RCTMLN/RCTMLNMapView.h} +30 -30
- package/ios/{RCTMGL/RCTMGLMapView.m → RCTMLN/RCTMLNMapView.m} +82 -82
- package/ios/{RCTMGL/RCTMGLMapViewManager.h → RCTMLN/RCTMLNMapViewManager.h} +4 -4
- package/ios/{RCTMGL/RCTMGLMapViewManager.m → RCTMLN/RCTMLNMapViewManager.m} +117 -117
- package/ios/{RCTMGL/RCTMGLNativeUserLocation.h → RCTMLN/RCTMLNNativeUserLocation.h} +5 -5
- package/ios/{RCTMGL/RCTMGLNativeUserLocation.m → RCTMLN/RCTMLNNativeUserLocation.m} +10 -10
- package/ios/RCTMLN/RCTMLNNativeUserLocationManager.h +5 -0
- package/ios/RCTMLN/RCTMLNNativeUserLocationManager.m +25 -0
- package/ios/{RCTMGL/RCTMGLPointAnnotation.h → RCTMLN/RCTMLNPointAnnotation.h} +8 -8
- package/ios/{RCTMGL/RCTMGLPointAnnotation.m → RCTMLN/RCTMLNPointAnnotation.m} +21 -21
- package/ios/{RCTMGL/RCTMGLPointAnnotationManager.h → RCTMLN/RCTMLNPointAnnotationManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLPointAnnotationManager.m → RCTMLN/RCTMLNPointAnnotationManager.m} +6 -6
- package/ios/RCTMLN/RCTMLNRasterLayer.h +14 -0
- package/ios/RCTMLN/RCTMLNRasterLayer.m +30 -0
- package/ios/{RCTMGL/RCTMGLRasterLayerManager.h → RCTMLN/RCTMLNRasterLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLRasterLayerManager.m → RCTMLN/RCTMLNRasterLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLRasterSource.h → RCTMLN/RCTMLNRasterSource.h} +5 -5
- package/ios/{RCTMGL/RCTMGLRasterSource.m → RCTMLN/RCTMLNRasterSource.m} +11 -11
- package/ios/{RCTMGL/RCTMGLRasterSourceManager.h → RCTMLN/RCTMLNRasterSourceManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLRasterSourceManager.m → RCTMLN/RCTMLNRasterSourceManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLShapeSource.h → RCTMLN/RCTMLNShapeSource.h} +10 -10
- package/ios/{RCTMGL/RCTMGLShapeSource.m → RCTMLN/RCTMLNShapeSource.m} +50 -50
- package/ios/{RCTMGL/RCTMGLShapeSourceManager.h → RCTMLN/RCTMLNShapeSourceManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLShapeSourceManager.m → RCTMLN/RCTMLNShapeSourceManager.m} +25 -25
- package/ios/{RCTMGL/RCTMGLSource.h → RCTMLN/RCTMLNSource.h} +8 -8
- package/ios/{RCTMGL/RCTMGLSource.m → RCTMLN/RCTMLNSource.m} +15 -15
- package/ios/RCTMLN/RCTMLNStyle.h +222 -0
- package/ios/{RCTMGL/RCTMGLStyle.m → RCTMLN/RCTMLNStyle.m} +345 -345
- package/ios/{RCTMGL/RCTMGLStyleValue.h → RCTMLN/RCTMLNStyleValue.h} +7 -7
- package/ios/{RCTMGL/RCTMGLStyleValue.m → RCTMLN/RCTMLNStyleValue.m} +24 -24
- package/ios/{RCTMGL/RCTMGLSymbolLayer.h → RCTMLN/RCTMLNSymbolLayer.h} +4 -4
- package/ios/{RCTMGL/RCTMGLSymbolLayer.m → RCTMLN/RCTMLNSymbolLayer.m} +12 -12
- package/ios/{RCTMGL/RCTMGLSymbolLayerManager.h → RCTMLN/RCTMLNSymbolLayerManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLSymbolLayerManager.m → RCTMLN/RCTMLNSymbolLayerManager.m} +6 -6
- package/ios/{RCTMGL/RCTMGLTileSource.h → RCTMLN/RCTMLNTileSource.h} +6 -6
- package/ios/RCTMLN/RCTMLNTileSource.m +31 -0
- package/ios/RCTMLN/RCTMLNUserLocation.h +15 -0
- package/ios/{RCTMGL/RCTMGLUserLocation.m → RCTMLN/RCTMLNUserLocation.m} +8 -8
- package/ios/{RCTMGL/RCTMGLUtils.h → RCTMLN/RCTMLNUtils.h} +7 -7
- package/ios/{RCTMGL/RCTMGLUtils.m → RCTMLN/RCTMLNUtils.m} +20 -20
- package/ios/{RCTMGL/RCTMGLVectorLayer.h → RCTMLN/RCTMLNVectorLayer.h} +4 -4
- package/ios/{RCTMGL/RCTMGLVectorLayer.m → RCTMLN/RCTMLNVectorLayer.m} +7 -7
- package/ios/{RCTMGL/RCTMGLVectorSource.h → RCTMLN/RCTMLNVectorSource.h} +6 -6
- package/ios/{RCTMGL/RCTMGLVectorSource.m → RCTMLN/RCTMLNVectorSource.m} +9 -9
- package/ios/{RCTMGL/RCTMGLVectorSourceManager.h → RCTMLN/RCTMLNVectorSourceManager.h} +3 -3
- package/ios/{RCTMGL/RCTMGLVectorSourceManager.m → RCTMLN/RCTMLNVectorSourceManager.m} +11 -11
- package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.h +1 -1
- package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.m +2 -2
- package/ios/{RCTMGL → RCTMLN}/ViewManager.h +3 -3
- package/ios/{RCTMGL → RCTMLN}/ViewManager.m +4 -4
- package/ios/RCTMLN.xcodeproj/project.pbxproj +775 -0
- package/ios/install.md +6 -7
- package/javascript/MLNModule.ts +37 -0
- package/javascript/Maplibre.ts +64 -0
- package/javascript/components/BackgroundLayer.tsx +50 -0
- package/javascript/components/Callout.tsx +141 -0
- package/javascript/components/Camera.tsx +623 -0
- package/javascript/components/CircleLayer.tsx +53 -0
- package/javascript/components/FillExtrusionLayer.tsx +47 -0
- package/javascript/components/FillLayer.tsx +44 -0
- package/javascript/components/HeadingIndicator.tsx +31 -0
- package/javascript/components/HeatmapLayer.tsx +46 -0
- package/javascript/components/ImageSource.tsx +71 -0
- package/javascript/components/Images.tsx +134 -0
- package/javascript/components/Light.tsx +40 -0
- package/javascript/components/LineLayer.tsx +45 -0
- package/javascript/components/MapView.tsx +880 -0
- package/javascript/components/MarkerView.tsx +88 -0
- package/javascript/components/NativeUserLocation.tsx +31 -0
- package/javascript/components/PointAnnotation.tsx +245 -0
- package/javascript/components/RasterLayer.tsx +44 -0
- package/javascript/components/RasterSource.tsx +114 -0
- package/javascript/components/ShapeSource.tsx +433 -0
- package/javascript/components/Style.tsx +368 -0
- package/javascript/components/SymbolLayer.tsx +78 -0
- package/javascript/components/UserLocation.tsx +289 -0
- package/javascript/components/VectorSource.tsx +218 -0
- package/javascript/components/annotations/Annotation.tsx +161 -0
- package/javascript/hooks/useAbstractLayer.ts +127 -0
- package/javascript/hooks/useAbstractSource.ts +34 -0
- package/javascript/hooks/useNativeBridge.ts +125 -0
- package/javascript/hooks/useNativeRef.ts +13 -0
- package/javascript/hooks/useOnce.ts +12 -0
- package/javascript/index.ts +4 -0
- package/javascript/modules/location/locationManager.ts +162 -0
- package/javascript/modules/offline/OfflineCreatePackOptions.ts +62 -0
- package/javascript/modules/offline/OfflinePack.ts +56 -0
- package/javascript/modules/offline/{offlineManager.js → offlineManager.ts} +91 -35
- package/javascript/modules/snapshot/SnapshotOptions.ts +104 -0
- package/javascript/modules/snapshot/{snapshotManager.js → snapshotManager.ts} +7 -7
- package/javascript/requestAndroidLocationPermissions.ts +29 -0
- package/javascript/types/BaseProps.ts +5 -0
- package/javascript/types/OnPressEvent.ts +13 -0
- package/javascript/types/index.ts +11 -0
- package/javascript/utils/BridgeValue.ts +90 -0
- package/javascript/utils/{Logger.js → Logger.ts} +50 -31
- package/javascript/utils/MaplibreStyles.d.ts +1486 -0
- package/javascript/utils/StyleValue.ts +49 -0
- package/javascript/utils/animated/AbstractAnimatedCoordinates.ts +134 -0
- package/javascript/utils/animated/Animated.ts +61 -0
- package/javascript/utils/animated/AnimatedCoordinatesArray.ts +108 -0
- package/javascript/utils/animated/{AnimatedExtractCoordinateFromArray.js → AnimatedExtractCoordinateFromArray.ts} +8 -8
- package/javascript/utils/animated/{AnimatedPoint.js → AnimatedPoint.ts} +25 -17
- package/javascript/utils/animated/{AnimatedRouteCoordinatesArray.js → AnimatedRouteCoordinatesArray.ts} +46 -25
- package/javascript/utils/animated/AnimatedShape.ts +93 -0
- package/javascript/utils/deprecation.ts +31 -0
- package/javascript/utils/filterUtils.ts +9 -0
- package/javascript/utils/geoUtils.ts +79 -0
- package/javascript/utils/index.ts +133 -0
- package/javascript/utils/styleMap.ts +264 -0
- package/maplibre-react-native.podspec +8 -8
- package/package.json +64 -44
- package/plugin/build/withMapLibre.d.ts +2 -2
- package/plugin/build/withMapLibre.js +38 -23
- package/react-native.config.js +1 -1
- package/scripts/autogenHelpers/globals.js +11 -11
- package/scripts/autogenerate.js +25 -17
- package/scripts/download-style-spec.sh +1 -1
- package/scripts/templates/MaplibreStyles.ts.ejs +99 -0
- package/scripts/templates/{RCTMGLStyle.h.ejs → RCTMLNStyle.h.ejs} +8 -8
- package/scripts/templates/{RCTMGLStyle.m.ejs → RCTMLNStyle.m.ejs} +10 -10
- package/scripts/templates/{RCTMGLStyleFactory.java.ejs → RCTMLNStyleFactory.java.ejs} +24 -24
- package/scripts/templates/index.d.ts.ejs +71 -42
- package/scripts/templates/{styleMap.js.ejs → styleMap.ts.ejs} +3 -33
- package/setup-jest.js +5 -20
- package/tsconfig.json +20 -61
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -158
- package/.prettierrc.js +0 -7
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +0 -99
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +0 -22
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +0 -27
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +0 -27
- package/android/rctmgl/src/main/res/values/strings.xml +0 -3
- package/index.d.ts +0 -955
- package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +0 -23
- package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +0 -11
- package/ios/RCTMGL/RCTMGLBackgroundLayer.h +0 -14
- package/ios/RCTMGL/RCTMGLBackgroundLayer.m +0 -27
- package/ios/RCTMGL/RCTMGLCalloutManager.m +0 -21
- package/ios/RCTMGL/RCTMGLCircleLayer.h +0 -13
- package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +0 -14
- package/ios/RCTMGL/RCTMGLFillLayer.h +0 -14
- package/ios/RCTMGL/RCTMGLHeatmapLayer.h +0 -12
- package/ios/RCTMGL/RCTMGLHeatmapLayer.m +0 -30
- package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +0 -12
- package/ios/RCTMGL/RCTMGLImagesManager.h +0 -5
- package/ios/RCTMGL/RCTMGLLineLayer.h +0 -14
- package/ios/RCTMGL/RCTMGLLocationManager.h +0 -30
- package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +0 -20
- package/ios/RCTMGL/RCTMGLLogging.h +0 -18
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +0 -5
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +0 -25
- package/ios/RCTMGL/RCTMGLRasterLayer.h +0 -14
- package/ios/RCTMGL/RCTMGLRasterLayer.m +0 -30
- package/ios/RCTMGL/RCTMGLStyle.h +0 -222
- package/ios/RCTMGL/RCTMGLTileSource.m +0 -31
- package/ios/RCTMGL/RCTMGLUserLocation.h +0 -15
- package/ios/RCTMGL.xcodeproj/project.pbxproj +0 -775
- package/javascript/components/AbstractLayer.js +0 -75
- package/javascript/components/AbstractSource.js +0 -15
- package/javascript/components/BackgroundLayer.js +0 -97
- package/javascript/components/Callout.js +0 -139
- package/javascript/components/Camera.js +0 -665
- package/javascript/components/CircleLayer.js +0 -101
- package/javascript/components/FillExtrusionLayer.js +0 -98
- package/javascript/components/FillLayer.js +0 -94
- package/javascript/components/HeadingIndicator.js +0 -31
- package/javascript/components/HeatmapLayer.js +0 -99
- package/javascript/components/ImageSource.js +0 -82
- package/javascript/components/Images.js +0 -119
- package/javascript/components/Light.js +0 -47
- package/javascript/components/LineLayer.js +0 -94
- package/javascript/components/MapView.js +0 -814
- package/javascript/components/MarkerView.js +0 -87
- package/javascript/components/NativeBridgeComponent.js +0 -86
- package/javascript/components/NativeUserLocation.js +0 -41
- package/javascript/components/PointAnnotation.js +0 -216
- package/javascript/components/RasterLayer.js +0 -95
- package/javascript/components/RasterSource.js +0 -124
- package/javascript/components/ShapeSource.js +0 -372
- package/javascript/components/Style.js +0 -267
- package/javascript/components/SymbolLayer.js +0 -120
- package/javascript/components/UserLocation.js +0 -275
- package/javascript/components/VectorSource.js +0 -200
- package/javascript/components/annotations/Annotation.js +0 -122
- package/javascript/index.js +0 -149
- package/javascript/modules/location/locationManager.js +0 -101
- package/javascript/modules/offline/OfflineCreatePackOptions.js +0 -46
- package/javascript/modules/offline/OfflinePack.js +0 -40
- package/javascript/modules/snapshot/SnapshotOptions.js +0 -67
- package/javascript/utils/BridgeValue.js +0 -81
- package/javascript/utils/animated/Animated.js +0 -39
- package/javascript/utils/animated/AnimatedCoordinatesArray.js +0 -191
- package/javascript/utils/animated/AnimatedShape.js +0 -72
- package/javascript/utils/deprecation.js +0 -25
- package/javascript/utils/filterUtils.js +0 -7
- package/javascript/utils/geoUtils.js +0 -73
- package/javascript/utils/index.js +0 -113
- package/javascript/utils/styleMap.js +0 -1932
- /package/android/{rctmgl → rctmln}/.settings/org.eclipse.buildship.core.prefs +0 -0
- /package/android/{rctmgl → rctmln}/proguard-rules.pro +0 -0
- /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty.xml +0 -0
- /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty_drawable.png +0 -0
- /package/android/{rctmgl → rctmln}/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
- /package/android/{rctmgl → rctmln}/src/main/res/layout/annotation.xml +0 -0
- /package/ios/{RCTMGL → RCTMLN}/index.d.ts +0 -0
|
@@ -0,0 +1,880 @@
|
|
|
1
|
+
import debounce from "debounce";
|
|
2
|
+
import React, {
|
|
3
|
+
Component,
|
|
4
|
+
memo,
|
|
5
|
+
ReactElement,
|
|
6
|
+
ReactNode,
|
|
7
|
+
useCallback,
|
|
8
|
+
useEffect,
|
|
9
|
+
useImperativeHandle,
|
|
10
|
+
useMemo,
|
|
11
|
+
useRef,
|
|
12
|
+
useState,
|
|
13
|
+
} from "react";
|
|
14
|
+
import {
|
|
15
|
+
View,
|
|
16
|
+
StyleSheet,
|
|
17
|
+
NativeModules,
|
|
18
|
+
requireNativeComponent,
|
|
19
|
+
ViewProps,
|
|
20
|
+
NativeMethods,
|
|
21
|
+
NativeSyntheticEvent,
|
|
22
|
+
} from "react-native";
|
|
23
|
+
|
|
24
|
+
import useNativeBridge from "../hooks/useNativeBridge";
|
|
25
|
+
import useOnce from "../hooks/useOnce";
|
|
26
|
+
import { Location } from "../modules/location/locationManager";
|
|
27
|
+
import BaseProps from "../types/BaseProps";
|
|
28
|
+
import { isFunction, isAndroid } from "../utils";
|
|
29
|
+
import Logger from "../utils/Logger";
|
|
30
|
+
import { FilterExpression } from "../utils/MaplibreStyles";
|
|
31
|
+
import { getFilter } from "../utils/filterUtils";
|
|
32
|
+
|
|
33
|
+
const MapLibreGL = NativeModules.MLNModule;
|
|
34
|
+
if (MapLibreGL == null) {
|
|
35
|
+
console.error(
|
|
36
|
+
"Native part of Mapbox React Native libraries were not registered properly, double check our native installation guides.",
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const NATIVE_MODULE_NAME = "RCTMLNMapView";
|
|
41
|
+
|
|
42
|
+
export const ANDROID_TEXTURE_NATIVE_MODULE_NAME = "RCTMLNAndroidTextureMapView";
|
|
43
|
+
|
|
44
|
+
const styles = StyleSheet.create({
|
|
45
|
+
matchParent: { flex: 1 },
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const defaultStyleURL = MapLibreGL.StyleURL.Street;
|
|
49
|
+
|
|
50
|
+
export interface RegionPayload {
|
|
51
|
+
zoomLevel: number;
|
|
52
|
+
heading: number;
|
|
53
|
+
animated: boolean;
|
|
54
|
+
isUserInteraction: boolean;
|
|
55
|
+
visibleBounds: VisibleBounds;
|
|
56
|
+
pitch: number;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
type VisibleBounds = [northEast: GeoJSON.Position, southWest: GeoJSON.Position];
|
|
60
|
+
|
|
61
|
+
interface MapViewProps extends BaseProps {
|
|
62
|
+
/**
|
|
63
|
+
* The distance from the edges of the map view’s frame to the edges of the map view’s logical viewport.
|
|
64
|
+
*/
|
|
65
|
+
contentInset?: number[] | number;
|
|
66
|
+
/**
|
|
67
|
+
* Style for wrapping React Native View
|
|
68
|
+
*/
|
|
69
|
+
style?: ViewProps["style"];
|
|
70
|
+
/**
|
|
71
|
+
* Style URL for map - notice, if non is set it _will_ default to `MapLibreGL.StyleURL.Default`
|
|
72
|
+
*/
|
|
73
|
+
styleURL?: string;
|
|
74
|
+
/**
|
|
75
|
+
* StyleJSON for map - according to TileJSON specs: https://github.com/mapbox/tilejson-spec
|
|
76
|
+
*/
|
|
77
|
+
styleJSON?: string;
|
|
78
|
+
/**
|
|
79
|
+
* iOS: The preferred frame rate at which the map view is rendered.
|
|
80
|
+
* The default value for this property is MLNMapViewPreferredFramesPerSecondDefault,
|
|
81
|
+
* which will adaptively set the preferred frame rate based on the capability of
|
|
82
|
+
* the user’s device to maintain a smooth experience. This property can be set to arbitrary integer values.
|
|
83
|
+
*
|
|
84
|
+
* Android: The maximum frame rate at which the map view is rendered, but it can't excess the ability of device hardware.
|
|
85
|
+
* This property can be set to arbitrary integer values.
|
|
86
|
+
*/
|
|
87
|
+
preferredFramesPerSecond?: number;
|
|
88
|
+
/**
|
|
89
|
+
* Automatically change the language of the map labels to the system’s preferred language,
|
|
90
|
+
* this is not something that can be toggled on/off
|
|
91
|
+
*/
|
|
92
|
+
localizeLabels?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Enable/Disable zoom on the map
|
|
95
|
+
*/
|
|
96
|
+
zoomEnabled?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Enable/Disable scroll on the map
|
|
99
|
+
*/
|
|
100
|
+
scrollEnabled?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Enable/Disable pitch on map
|
|
103
|
+
*/
|
|
104
|
+
pitchEnabled?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Enable/Disable rotation on map
|
|
107
|
+
*/
|
|
108
|
+
rotateEnabled?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Enable/Disable attribution on map.
|
|
111
|
+
*
|
|
112
|
+
* This must be enabled for Mapbox-hosted tiles and styles. Please refer to the Mapbox Terms of Service.
|
|
113
|
+
* Other providers do not require this.
|
|
114
|
+
*/
|
|
115
|
+
attributionEnabled?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Adds attribution offset, e.g. `{top: 8, left: 8}` will put attribution button in top-left corner of the map
|
|
118
|
+
*/
|
|
119
|
+
attributionPosition?:
|
|
120
|
+
| { top?: number; left?: number }
|
|
121
|
+
| { top?: number; right?: number }
|
|
122
|
+
| { bottom?: number; left?: number }
|
|
123
|
+
| { bottom?: number; right?: number };
|
|
124
|
+
/**
|
|
125
|
+
* MapView's tintColor
|
|
126
|
+
*/
|
|
127
|
+
tintColor?: string | unknown[];
|
|
128
|
+
/**
|
|
129
|
+
* Enable/Disable the logo on the map.
|
|
130
|
+
*/
|
|
131
|
+
logoEnabled?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Adds logo offset, e.g. `{top: 8, left: 8}` will put the logo in top-left corner of the map
|
|
134
|
+
*/
|
|
135
|
+
logoPosition?:
|
|
136
|
+
| { top?: number; left?: number }
|
|
137
|
+
| { top?: number; right?: number }
|
|
138
|
+
| { bottom?: number; left?: number }
|
|
139
|
+
| { bottom?: number; right?: number };
|
|
140
|
+
/**
|
|
141
|
+
* Enable/Disable the compass from appearing on the map
|
|
142
|
+
*/
|
|
143
|
+
compassEnabled?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Change corner of map the compass starts at. 0: TopLeft, 1: TopRight, 2: BottomLeft, 3: BottomRight
|
|
146
|
+
*/
|
|
147
|
+
compassViewPosition?: number;
|
|
148
|
+
/**
|
|
149
|
+
* Add margins to the compass with x and y values
|
|
150
|
+
*/
|
|
151
|
+
compassViewMargins?: object;
|
|
152
|
+
/**
|
|
153
|
+
* [Android only] Enable/Disable use of GLSurfaceView insted of TextureView.
|
|
154
|
+
*/
|
|
155
|
+
surfaceView?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Map press listener, gets called when a user presses the map
|
|
158
|
+
*/
|
|
159
|
+
onPress?(feature: GeoJSON.Feature): void;
|
|
160
|
+
/**
|
|
161
|
+
* Map long press listener, gets called when a user long presses the map
|
|
162
|
+
*/
|
|
163
|
+
onLongPress?(feature: GeoJSON.Feature): void;
|
|
164
|
+
/**
|
|
165
|
+
* This event is triggered whenever the currently displayed map region is about to change.
|
|
166
|
+
*
|
|
167
|
+
* @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
|
|
168
|
+
*/
|
|
169
|
+
onRegionWillChange?(
|
|
170
|
+
feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
171
|
+
): void;
|
|
172
|
+
/**
|
|
173
|
+
* This event is triggered whenever the currently displayed map region is changing.
|
|
174
|
+
*
|
|
175
|
+
* @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
|
|
176
|
+
*/
|
|
177
|
+
onRegionIsChanging?(
|
|
178
|
+
feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
179
|
+
): void;
|
|
180
|
+
/**
|
|
181
|
+
* This event is triggered whenever the currently displayed map region finished changing
|
|
182
|
+
*
|
|
183
|
+
* @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
|
|
184
|
+
*/
|
|
185
|
+
onRegionDidChange?(
|
|
186
|
+
feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
187
|
+
): void;
|
|
188
|
+
/**
|
|
189
|
+
* This event is triggered when the map is about to start loading a new map style.
|
|
190
|
+
*/
|
|
191
|
+
onWillStartLoadingMap?(): void;
|
|
192
|
+
/**
|
|
193
|
+
* This is triggered when the map has successfully loaded a new map style.
|
|
194
|
+
*/
|
|
195
|
+
onDidFinishLoadingMap?(): void;
|
|
196
|
+
/**
|
|
197
|
+
* This event is triggered when the map has failed to load a new map style.
|
|
198
|
+
*/
|
|
199
|
+
onDidFailLoadingMap?(): void;
|
|
200
|
+
/**
|
|
201
|
+
* This event is triggered when the map will start rendering a frame.
|
|
202
|
+
*/
|
|
203
|
+
onWillStartRenderingFrame?(): void;
|
|
204
|
+
/**
|
|
205
|
+
* This event is triggered when the map finished rendering a frame.
|
|
206
|
+
*/
|
|
207
|
+
onDidFinishRenderingFrame?(): void;
|
|
208
|
+
/**
|
|
209
|
+
* This event is triggered when the map fully finished rendering a frame.
|
|
210
|
+
*/
|
|
211
|
+
onDidFinishRenderingFrameFully?(): void;
|
|
212
|
+
/**
|
|
213
|
+
* This event is triggered when the map will start rendering the map.
|
|
214
|
+
*/
|
|
215
|
+
onWillStartRenderingMap?(): void;
|
|
216
|
+
/**
|
|
217
|
+
* This event is triggered when the map finished rendering the map.
|
|
218
|
+
*/
|
|
219
|
+
onDidFinishRenderingMap?(): void;
|
|
220
|
+
/**
|
|
221
|
+
* This event is triggered when the map fully finished rendering the map.
|
|
222
|
+
*/
|
|
223
|
+
onDidFinishRenderingMapFully?(): void;
|
|
224
|
+
/**
|
|
225
|
+
* This event is triggered when the user location is updated.
|
|
226
|
+
*/
|
|
227
|
+
onUserLocationUpdate?: (location: Location) => void;
|
|
228
|
+
/**
|
|
229
|
+
* This event is triggered when a style has finished loading.
|
|
230
|
+
*/
|
|
231
|
+
onDidFinishLoadingStyle?(): void;
|
|
232
|
+
/**
|
|
233
|
+
* The emitted frequency of regionwillchange events
|
|
234
|
+
*/
|
|
235
|
+
regionWillChangeDebounceTime?: number;
|
|
236
|
+
/**
|
|
237
|
+
* The emitted frequency of regiondidchange events
|
|
238
|
+
*/
|
|
239
|
+
regionDidChangeDebounceTime?: number;
|
|
240
|
+
|
|
241
|
+
children: ReactNode;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
type Fn = (...args: any) => any;
|
|
245
|
+
type CallableProps = {
|
|
246
|
+
[Prop in keyof MapViewProps]-?: MapViewProps[Prop] extends Fn | undefined
|
|
247
|
+
? Prop
|
|
248
|
+
: never;
|
|
249
|
+
}[keyof MapViewProps];
|
|
250
|
+
|
|
251
|
+
interface NativeProps extends Omit<MapViewProps, "onPress" | "onLongPress"> {
|
|
252
|
+
onPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
|
|
253
|
+
onLongPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export interface MapViewRef {
|
|
257
|
+
getPointInView: (coordinate: GeoJSON.Position) => Promise<GeoJSON.Point>;
|
|
258
|
+
getCoordinateFromView: (point: number[]) => Promise<GeoJSON.Position>;
|
|
259
|
+
getVisibleBounds: () => Promise<VisibleBounds>;
|
|
260
|
+
queryRenderedFeaturesAtPoint: (
|
|
261
|
+
point: [screenPointX: number, screenPointY: number],
|
|
262
|
+
filter: FilterExpression | undefined,
|
|
263
|
+
layerIDs: string[],
|
|
264
|
+
) => Promise<GeoJSON.FeatureCollection>;
|
|
265
|
+
queryRenderedFeaturesInRect: (
|
|
266
|
+
bbox: GeoJSON.BBox,
|
|
267
|
+
filter: FilterExpression | undefined,
|
|
268
|
+
layerIDs: string[],
|
|
269
|
+
) => Promise<GeoJSON.FeatureCollection>;
|
|
270
|
+
setCamera: () => void;
|
|
271
|
+
takeSnap: (writeToDisk?: boolean) => Promise<string>;
|
|
272
|
+
getZoom: () => Promise<number>;
|
|
273
|
+
getCenter: () => Promise<GeoJSON.Position>;
|
|
274
|
+
setSourceVisibility: (
|
|
275
|
+
visible: boolean,
|
|
276
|
+
sourceId: string,
|
|
277
|
+
sourceLayerId?: string | null,
|
|
278
|
+
) => void;
|
|
279
|
+
showAttribution: () => Promise<void>;
|
|
280
|
+
setNativeProps: (props: NativeProps) => void;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* MapView backed by MapLibre GL Native
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
const MapView = memo(
|
|
288
|
+
React.forwardRef<MapViewRef, MapViewProps>(
|
|
289
|
+
(
|
|
290
|
+
{
|
|
291
|
+
localizeLabels = false,
|
|
292
|
+
scrollEnabled = true,
|
|
293
|
+
pitchEnabled = true,
|
|
294
|
+
rotateEnabled = true,
|
|
295
|
+
attributionEnabled = true,
|
|
296
|
+
logoEnabled = false,
|
|
297
|
+
surfaceView = false,
|
|
298
|
+
regionWillChangeDebounceTime = 10,
|
|
299
|
+
regionDidChangeDebounceTime = 500,
|
|
300
|
+
...props
|
|
301
|
+
}: MapViewProps,
|
|
302
|
+
ref,
|
|
303
|
+
) => {
|
|
304
|
+
// * exposes the methods of the function component so we don't break projects that depend on calling this methods
|
|
305
|
+
useImperativeHandle(
|
|
306
|
+
ref,
|
|
307
|
+
(): MapViewRef => ({
|
|
308
|
+
/**
|
|
309
|
+
* Converts a geographic coordinate to a point in the given view’s coordinate system.
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* const pointInView = await this._map.getPointInView([-37.817070, 144.949901]);
|
|
313
|
+
*
|
|
314
|
+
* @param {Array<Number>} coordinate - A point expressed in the map view's coordinate system.
|
|
315
|
+
* @return {Array}
|
|
316
|
+
*/
|
|
317
|
+
getPointInView,
|
|
318
|
+
/**
|
|
319
|
+
* Converts a point in the given view’s coordinate system to a geographic coordinate.
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* const coordinate = await this._map.getCoordinateFromView([100, 100]);
|
|
323
|
+
*
|
|
324
|
+
* @param {Array<Number>} point - A point expressed in the given view’s coordinate system.
|
|
325
|
+
* @return {Array}
|
|
326
|
+
*/
|
|
327
|
+
getCoordinateFromView,
|
|
328
|
+
/**
|
|
329
|
+
* The coordinate bounds(ne, sw) visible in the users’s viewport.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* const visibleBounds = await this._map.getVisibleBounds();
|
|
333
|
+
*
|
|
334
|
+
* @return {Array}
|
|
335
|
+
*/
|
|
336
|
+
getVisibleBounds,
|
|
337
|
+
/**
|
|
338
|
+
* Returns an array of rendered map features that intersect with a given point.
|
|
339
|
+
*
|
|
340
|
+
* @example
|
|
341
|
+
* this._map.queryRenderedFeaturesAtPoint([30, 40], ['==', 'type', 'Point'], ['id1', 'id2'])
|
|
342
|
+
*
|
|
343
|
+
* @param {Array<Number>} coordinate - A point expressed in the map view’s coordinate system.
|
|
344
|
+
* @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
|
|
345
|
+
* @param {Array=} layerIDs - A array of layer id's to filter the features by
|
|
346
|
+
* @return {GeoJSON.FeatureCollection}
|
|
347
|
+
*/
|
|
348
|
+
queryRenderedFeaturesAtPoint,
|
|
349
|
+
/**
|
|
350
|
+
* Returns an array of rendered map features that intersect with the given rectangle,
|
|
351
|
+
* restricted to the given style layers and filtered by the given predicate.
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* this._map.queryRenderedFeaturesInRect([30, 40, 20, 10], ['==', 'type', 'Point'], ['id1', 'id2'])
|
|
355
|
+
*
|
|
356
|
+
* @param {Array<Number>} bbox - A rectangle expressed in the map view’s coordinate system.
|
|
357
|
+
* @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
|
|
358
|
+
* @param {Array=} layerIDs - A array of layer id's to filter the features by
|
|
359
|
+
* @return {GeoJSON.FeatureCollection}
|
|
360
|
+
*/
|
|
361
|
+
queryRenderedFeaturesInRect,
|
|
362
|
+
/**
|
|
363
|
+
* Map camera will perform updates based on provided config. Deprecated use Camera#setCamera.
|
|
364
|
+
*/
|
|
365
|
+
setCamera,
|
|
366
|
+
/**
|
|
367
|
+
* Takes snapshot of map with current tiles and returns a URI to the image
|
|
368
|
+
* @param {Boolean} writeToDisk If true will create a temp file, otherwise it is in base64
|
|
369
|
+
* @return {String}
|
|
370
|
+
*/
|
|
371
|
+
takeSnap,
|
|
372
|
+
/**
|
|
373
|
+
* Returns the current zoom of the map view.
|
|
374
|
+
*
|
|
375
|
+
* @example
|
|
376
|
+
* const zoom = await this._map.getZoom();
|
|
377
|
+
*
|
|
378
|
+
* @return {Number}
|
|
379
|
+
*/
|
|
380
|
+
getZoom,
|
|
381
|
+
/**
|
|
382
|
+
* Returns the map's geographical centerpoint
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* const center = await this._map.getCenter();
|
|
386
|
+
*
|
|
387
|
+
* @return {Array<Number>} Coordinates
|
|
388
|
+
*/
|
|
389
|
+
getCenter,
|
|
390
|
+
/**
|
|
391
|
+
* Sets the visibility of all the layers referencing the specified `sourceLayerId` and/or `sourceId`
|
|
392
|
+
*
|
|
393
|
+
* @example
|
|
394
|
+
* await this._map.setSourceVisibility(false, 'composite', 'building')
|
|
395
|
+
*
|
|
396
|
+
* @param {boolean} visible - Visibility of the layers
|
|
397
|
+
* @param {String} sourceId - Identifier of the target source (e.g. 'composite')
|
|
398
|
+
* @param {String=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
|
|
399
|
+
*/
|
|
400
|
+
setSourceVisibility,
|
|
401
|
+
/**
|
|
402
|
+
* Show the attribution and telemetry action sheet.
|
|
403
|
+
* If you implement a custom attribution button, you should add this action to the button.
|
|
404
|
+
*/
|
|
405
|
+
showAttribution,
|
|
406
|
+
setNativeProps,
|
|
407
|
+
}),
|
|
408
|
+
);
|
|
409
|
+
|
|
410
|
+
const {
|
|
411
|
+
_runNativeCommand,
|
|
412
|
+
_runPendingNativeCommands,
|
|
413
|
+
_onAndroidCallback,
|
|
414
|
+
} = useNativeBridge(NATIVE_MODULE_NAME);
|
|
415
|
+
const logger = useRef<Logger>(Logger.sharedInstance());
|
|
416
|
+
// * start the logger before anyuseEffect
|
|
417
|
+
useOnce(() => {
|
|
418
|
+
logger.current.start();
|
|
419
|
+
});
|
|
420
|
+
const _nativeRef = useRef<RCTMLNMapViewRefType>();
|
|
421
|
+
const [isReady, setIsReady] = useState(false);
|
|
422
|
+
|
|
423
|
+
// Cleanups on unmount
|
|
424
|
+
useEffect(() => {
|
|
425
|
+
const currentLogger = logger.current;
|
|
426
|
+
|
|
427
|
+
return (): void => {
|
|
428
|
+
_onDebouncedRegionWillChange.clear();
|
|
429
|
+
_onDebouncedRegionDidChange.clear();
|
|
430
|
+
currentLogger.stop();
|
|
431
|
+
};
|
|
432
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
433
|
+
}, []);
|
|
434
|
+
|
|
435
|
+
// This will run on every render
|
|
436
|
+
// so similar to componentDidMount and UNSAFE_componentWillReceiveProps
|
|
437
|
+
useEffect(() => {
|
|
438
|
+
_setHandledMapChangedEvents(props);
|
|
439
|
+
}, [props]);
|
|
440
|
+
|
|
441
|
+
const _setHandledMapChangedEvents = (props: MapViewProps): void => {
|
|
442
|
+
if (isAndroid()) {
|
|
443
|
+
const events = [];
|
|
444
|
+
|
|
445
|
+
if (props.onRegionWillChange) {
|
|
446
|
+
events.push(MapLibreGL.EventTypes.RegionWillChange);
|
|
447
|
+
}
|
|
448
|
+
if (props.onRegionIsChanging) {
|
|
449
|
+
events.push(MapLibreGL.EventTypes.RegionIsChanging);
|
|
450
|
+
}
|
|
451
|
+
if (props.onRegionDidChange) {
|
|
452
|
+
events.push(MapLibreGL.EventTypes.RegionDidChange);
|
|
453
|
+
}
|
|
454
|
+
if (props.onUserLocationUpdate) {
|
|
455
|
+
events.push(MapLibreGL.EventTypes.UserLocationUpdated);
|
|
456
|
+
}
|
|
457
|
+
if (props.onWillStartLoadingMap) {
|
|
458
|
+
events.push(MapLibreGL.EventTypes.WillStartLoadingMap);
|
|
459
|
+
}
|
|
460
|
+
if (props.onDidFinishLoadingMap) {
|
|
461
|
+
events.push(MapLibreGL.EventTypes.DidFinishLoadingMap);
|
|
462
|
+
}
|
|
463
|
+
if (props.onDidFailLoadingMap) {
|
|
464
|
+
events.push(MapLibreGL.EventTypes.DidFailLoadingMap);
|
|
465
|
+
}
|
|
466
|
+
if (props.onWillStartRenderingFrame) {
|
|
467
|
+
events.push(MapLibreGL.EventTypes.WillStartRenderingFrame);
|
|
468
|
+
}
|
|
469
|
+
if (props.onDidFinishRenderingFrame) {
|
|
470
|
+
events.push(MapLibreGL.EventTypes.DidFinishRenderingFrame);
|
|
471
|
+
}
|
|
472
|
+
if (props.onDidFinishRenderingFrameFully) {
|
|
473
|
+
events.push(MapLibreGL.EventTypes.DidFinishRenderingFrameFully);
|
|
474
|
+
}
|
|
475
|
+
if (props.onWillStartRenderingMap) {
|
|
476
|
+
events.push(MapLibreGL.EventTypes.WillStartRenderingMap);
|
|
477
|
+
}
|
|
478
|
+
if (props.onDidFinishRenderingMap) {
|
|
479
|
+
events.push(MapLibreGL.EventTypes.DidFinishRenderingMap);
|
|
480
|
+
}
|
|
481
|
+
if (props.onDidFinishRenderingMapFully) {
|
|
482
|
+
events.push(MapLibreGL.EventTypes.DidFinishRenderingMapFully);
|
|
483
|
+
}
|
|
484
|
+
if (props.onDidFinishLoadingStyle) {
|
|
485
|
+
events.push(MapLibreGL.EventTypes.DidFinishLoadingStyle);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
_runNativeCommand(
|
|
489
|
+
"setHandledMapChangedEvents",
|
|
490
|
+
_nativeRef.current,
|
|
491
|
+
events,
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
const getPointInView = async (
|
|
497
|
+
coordinate: GeoJSON.Position,
|
|
498
|
+
): Promise<GeoJSON.Point> => {
|
|
499
|
+
const res: { pointInView: GeoJSON.Point } = await _runNativeCommand(
|
|
500
|
+
"getPointInView",
|
|
501
|
+
_nativeRef.current,
|
|
502
|
+
[coordinate],
|
|
503
|
+
);
|
|
504
|
+
return res.pointInView;
|
|
505
|
+
};
|
|
506
|
+
|
|
507
|
+
const getCoordinateFromView = async (
|
|
508
|
+
point: number[],
|
|
509
|
+
): Promise<GeoJSON.Position> => {
|
|
510
|
+
const res: { coordinateFromView: GeoJSON.Position } =
|
|
511
|
+
await _runNativeCommand("getCoordinateFromView", _nativeRef.current, [
|
|
512
|
+
point,
|
|
513
|
+
]);
|
|
514
|
+
return res.coordinateFromView;
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
const getVisibleBounds = async (): Promise<VisibleBounds> => {
|
|
518
|
+
const res: { visibleBounds: VisibleBounds } = await _runNativeCommand(
|
|
519
|
+
"getVisibleBounds",
|
|
520
|
+
_nativeRef.current,
|
|
521
|
+
);
|
|
522
|
+
return res.visibleBounds;
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
const queryRenderedFeaturesAtPoint = async (
|
|
526
|
+
point: [screenPointX: number, screenPointY: number],
|
|
527
|
+
filter?: FilterExpression,
|
|
528
|
+
layerIDs: string[] = [],
|
|
529
|
+
): Promise<GeoJSON.FeatureCollection> => {
|
|
530
|
+
if (!point || point.length < 2) {
|
|
531
|
+
throw new Error(
|
|
532
|
+
"Must pass in valid point in the map view's cooridnate system[x, y]",
|
|
533
|
+
);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
const res: { data: string | GeoJSON.FeatureCollection } =
|
|
537
|
+
await _runNativeCommand(
|
|
538
|
+
"queryRenderedFeaturesAtPoint",
|
|
539
|
+
_nativeRef.current,
|
|
540
|
+
[point, getFilter(filter), layerIDs],
|
|
541
|
+
);
|
|
542
|
+
|
|
543
|
+
if (isAndroid()) {
|
|
544
|
+
return JSON.parse(res.data as string);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
return res.data as GeoJSON.FeatureCollection;
|
|
548
|
+
};
|
|
549
|
+
|
|
550
|
+
const queryRenderedFeaturesInRect = async (
|
|
551
|
+
bbox: GeoJSON.BBox,
|
|
552
|
+
filter?: FilterExpression,
|
|
553
|
+
layerIDs: string[] = [],
|
|
554
|
+
): Promise<GeoJSON.FeatureCollection> => {
|
|
555
|
+
if (!bbox || bbox.length !== 4) {
|
|
556
|
+
throw new Error(
|
|
557
|
+
"Must pass in a valid bounding box[top, right, bottom, left]",
|
|
558
|
+
);
|
|
559
|
+
}
|
|
560
|
+
const res: { data: string | GeoJSON.FeatureCollection } =
|
|
561
|
+
await _runNativeCommand(
|
|
562
|
+
"queryRenderedFeaturesInRect",
|
|
563
|
+
_nativeRef.current,
|
|
564
|
+
[bbox, getFilter(filter), layerIDs],
|
|
565
|
+
);
|
|
566
|
+
|
|
567
|
+
if (isAndroid()) {
|
|
568
|
+
return JSON.parse(res.data as string);
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
return res.data as GeoJSON.FeatureCollection;
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
const setCamera = (): void => {
|
|
575
|
+
console.warn(
|
|
576
|
+
"MapView.setCamera is deprecated - please use Camera#setCamera",
|
|
577
|
+
);
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
const takeSnap = async (writeToDisk = false): Promise<string> => {
|
|
581
|
+
const res: { uri: string } = await _runNativeCommand(
|
|
582
|
+
"takeSnap",
|
|
583
|
+
_nativeRef.current,
|
|
584
|
+
[writeToDisk],
|
|
585
|
+
);
|
|
586
|
+
return res.uri;
|
|
587
|
+
};
|
|
588
|
+
|
|
589
|
+
const getZoom = async (): Promise<number> => {
|
|
590
|
+
const res: { zoom: number } = await _runNativeCommand(
|
|
591
|
+
"getZoom",
|
|
592
|
+
_nativeRef.current,
|
|
593
|
+
);
|
|
594
|
+
return res.zoom;
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
const getCenter = async (): Promise<GeoJSON.Position> => {
|
|
598
|
+
const res: { center: GeoJSON.Position } = await _runNativeCommand(
|
|
599
|
+
"getCenter",
|
|
600
|
+
_nativeRef.current,
|
|
601
|
+
);
|
|
602
|
+
return res.center;
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
const setSourceVisibility = (
|
|
606
|
+
visible: boolean,
|
|
607
|
+
sourceId: string,
|
|
608
|
+
sourceLayerId: string | null = null,
|
|
609
|
+
): void => {
|
|
610
|
+
_runNativeCommand("setSourceVisibility", _nativeRef.current, [
|
|
611
|
+
visible,
|
|
612
|
+
sourceId,
|
|
613
|
+
sourceLayerId,
|
|
614
|
+
]);
|
|
615
|
+
};
|
|
616
|
+
|
|
617
|
+
const showAttribution = async (): Promise<void> => {
|
|
618
|
+
_runNativeCommand("showAttribution", _nativeRef.current);
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
const _onPress = (
|
|
622
|
+
e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
|
|
623
|
+
): void => {
|
|
624
|
+
if (isFunction(props.onPress)) {
|
|
625
|
+
props.onPress(e.nativeEvent.payload);
|
|
626
|
+
}
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
const _onLongPress = (
|
|
630
|
+
e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
|
|
631
|
+
): void => {
|
|
632
|
+
if (isFunction(props.onLongPress)) {
|
|
633
|
+
props.onLongPress(e.nativeEvent.payload);
|
|
634
|
+
}
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
const _onRegionWillChange = (
|
|
638
|
+
payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
639
|
+
): void => {
|
|
640
|
+
if (isFunction(props.onRegionWillChange)) {
|
|
641
|
+
props.onRegionWillChange(payload);
|
|
642
|
+
}
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
const _onRegionDidChange = (
|
|
646
|
+
payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
647
|
+
): void => {
|
|
648
|
+
if (isFunction(props.onRegionDidChange)) {
|
|
649
|
+
props.onRegionDidChange(payload);
|
|
650
|
+
}
|
|
651
|
+
};
|
|
652
|
+
|
|
653
|
+
const _onDebouncedRegionWillChange = useCallback(
|
|
654
|
+
debounce(_onRegionWillChange, regionWillChangeDebounceTime, {
|
|
655
|
+
immediate: true,
|
|
656
|
+
}),
|
|
657
|
+
[_onRegionWillChange],
|
|
658
|
+
);
|
|
659
|
+
|
|
660
|
+
const _onDebouncedRegionDidChange = useCallback(
|
|
661
|
+
debounce(_onRegionDidChange, regionDidChangeDebounceTime),
|
|
662
|
+
[_onRegionDidChange],
|
|
663
|
+
);
|
|
664
|
+
|
|
665
|
+
const _onChange = (
|
|
666
|
+
e: NativeSyntheticEvent<{
|
|
667
|
+
type: string;
|
|
668
|
+
payload?: GeoJSON.Feature | Location;
|
|
669
|
+
}>,
|
|
670
|
+
): void => {
|
|
671
|
+
const { type, payload } = e.nativeEvent;
|
|
672
|
+
let propName: CallableProps | undefined;
|
|
673
|
+
|
|
674
|
+
switch (type) {
|
|
675
|
+
case MapLibreGL.EventTypes.RegionWillChange:
|
|
676
|
+
if (
|
|
677
|
+
regionWillChangeDebounceTime &&
|
|
678
|
+
regionWillChangeDebounceTime > 0
|
|
679
|
+
) {
|
|
680
|
+
if (payload) {
|
|
681
|
+
_onDebouncedRegionWillChange(
|
|
682
|
+
payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
683
|
+
);
|
|
684
|
+
}
|
|
685
|
+
} else {
|
|
686
|
+
propName = "onRegionWillChange";
|
|
687
|
+
}
|
|
688
|
+
break;
|
|
689
|
+
case MapLibreGL.EventTypes.RegionIsChanging:
|
|
690
|
+
propName = "onRegionIsChanging";
|
|
691
|
+
break;
|
|
692
|
+
case MapLibreGL.EventTypes.RegionDidChange:
|
|
693
|
+
if (
|
|
694
|
+
regionDidChangeDebounceTime &&
|
|
695
|
+
regionDidChangeDebounceTime > 0
|
|
696
|
+
) {
|
|
697
|
+
if (payload) {
|
|
698
|
+
_onDebouncedRegionDidChange(
|
|
699
|
+
payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
|
|
700
|
+
);
|
|
701
|
+
}
|
|
702
|
+
} else {
|
|
703
|
+
propName = "onRegionDidChange";
|
|
704
|
+
}
|
|
705
|
+
break;
|
|
706
|
+
case MapLibreGL.EventTypes.UserLocationUpdated:
|
|
707
|
+
propName = "onUserLocationUpdate";
|
|
708
|
+
break;
|
|
709
|
+
case MapLibreGL.EventTypes.WillStartLoadingMap:
|
|
710
|
+
propName = "onWillStartLoadingMap";
|
|
711
|
+
break;
|
|
712
|
+
case MapLibreGL.EventTypes.DidFinishLoadingMap:
|
|
713
|
+
propName = "onDidFinishLoadingMap";
|
|
714
|
+
break;
|
|
715
|
+
case MapLibreGL.EventTypes.DidFailLoadingMap:
|
|
716
|
+
propName = "onDidFailLoadingMap";
|
|
717
|
+
break;
|
|
718
|
+
case MapLibreGL.EventTypes.WillStartRenderingFrame:
|
|
719
|
+
propName = "onWillStartRenderingFrame";
|
|
720
|
+
break;
|
|
721
|
+
case MapLibreGL.EventTypes.DidFinishRenderingFrame:
|
|
722
|
+
propName = "onDidFinishRenderingFrame";
|
|
723
|
+
break;
|
|
724
|
+
case MapLibreGL.EventTypes.DidFinishRenderingFrameFully:
|
|
725
|
+
propName = "onDidFinishRenderingFrameFully";
|
|
726
|
+
break;
|
|
727
|
+
case MapLibreGL.EventTypes.WillStartRenderingMap:
|
|
728
|
+
propName = "onWillStartRenderingMap";
|
|
729
|
+
break;
|
|
730
|
+
case MapLibreGL.EventTypes.DidFinishRenderingMap:
|
|
731
|
+
propName = "onDidFinishRenderingMap";
|
|
732
|
+
break;
|
|
733
|
+
case MapLibreGL.EventTypes.DidFinishRenderingMapFully:
|
|
734
|
+
propName = "onDidFinishRenderingMapFully";
|
|
735
|
+
break;
|
|
736
|
+
case MapLibreGL.EventTypes.DidFinishLoadingStyle:
|
|
737
|
+
propName = "onDidFinishLoadingStyle";
|
|
738
|
+
break;
|
|
739
|
+
default:
|
|
740
|
+
console.warn("Unhandled event callback type", type);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
if (propName) {
|
|
744
|
+
_handleOnChange(propName, payload);
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
|
|
748
|
+
const _onLayout = (): void => {
|
|
749
|
+
setIsReady(true);
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
const _handleOnChange = <T extends CallableProps>(
|
|
753
|
+
propName: T,
|
|
754
|
+
payload?: object,
|
|
755
|
+
): void => {
|
|
756
|
+
const callable = props[propName] as (payload?: object) => void;
|
|
757
|
+
if (callable && isFunction(callable)) {
|
|
758
|
+
callable(payload);
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
|
|
762
|
+
const contentInsetValue = useMemo(() => {
|
|
763
|
+
if (!props.contentInset) {
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
if (!Array.isArray(props.contentInset)) {
|
|
768
|
+
return [props.contentInset];
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
return props.contentInset;
|
|
772
|
+
}, [props.contentInset]);
|
|
773
|
+
|
|
774
|
+
const _setNativeRef = (nativeRef: RCTMLNMapViewRefType): void => {
|
|
775
|
+
_nativeRef.current = nativeRef;
|
|
776
|
+
_runPendingNativeCommands(nativeRef);
|
|
777
|
+
};
|
|
778
|
+
|
|
779
|
+
const setNativeProps = (props: NativeProps): void => {
|
|
780
|
+
if (_nativeRef.current) {
|
|
781
|
+
_nativeRef.current.setNativeProps(props);
|
|
782
|
+
}
|
|
783
|
+
};
|
|
784
|
+
|
|
785
|
+
const _setStyleURL = (props: MapViewProps): void => {
|
|
786
|
+
// user set a styleURL, no need to alter props
|
|
787
|
+
if (props.styleURL) {
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
// user set styleJSON pass it to styleURL
|
|
792
|
+
if (props.styleJSON && !props.styleURL) {
|
|
793
|
+
props.styleURL = props.styleJSON;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
// user neither set styleJSON nor styleURL
|
|
797
|
+
// set defaultStyleUrl
|
|
798
|
+
if (!props.styleJSON || !props.styleURL) {
|
|
799
|
+
props.styleURL = defaultStyleURL;
|
|
800
|
+
}
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
const nativeProps = useMemo(() => {
|
|
804
|
+
return {
|
|
805
|
+
...props,
|
|
806
|
+
localizeLabels,
|
|
807
|
+
scrollEnabled,
|
|
808
|
+
pitchEnabled,
|
|
809
|
+
rotateEnabled,
|
|
810
|
+
attributionEnabled,
|
|
811
|
+
logoEnabled,
|
|
812
|
+
surfaceView,
|
|
813
|
+
regionWillChangeDebounceTime,
|
|
814
|
+
regionDidChangeDebounceTime,
|
|
815
|
+
contentInsetValue,
|
|
816
|
+
style: styles.matchParent,
|
|
817
|
+
};
|
|
818
|
+
}, [
|
|
819
|
+
localizeLabels,
|
|
820
|
+
scrollEnabled,
|
|
821
|
+
pitchEnabled,
|
|
822
|
+
rotateEnabled,
|
|
823
|
+
attributionEnabled,
|
|
824
|
+
logoEnabled,
|
|
825
|
+
surfaceView,
|
|
826
|
+
regionWillChangeDebounceTime,
|
|
827
|
+
regionDidChangeDebounceTime,
|
|
828
|
+
contentInsetValue,
|
|
829
|
+
props,
|
|
830
|
+
contentInsetValue,
|
|
831
|
+
]);
|
|
832
|
+
|
|
833
|
+
_setStyleURL(nativeProps);
|
|
834
|
+
|
|
835
|
+
const callbacks = {
|
|
836
|
+
ref: (ref: RCTMLNMapViewRefType): void => _setNativeRef(ref),
|
|
837
|
+
onPress: _onPress,
|
|
838
|
+
onLongPress: _onLongPress,
|
|
839
|
+
onMapChange: _onChange,
|
|
840
|
+
onAndroidCallback: isAndroid() ? _onAndroidCallback : undefined,
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
let mapView: ReactElement | null = null;
|
|
844
|
+
if (isAndroid() && !surfaceView && isReady) {
|
|
845
|
+
mapView = (
|
|
846
|
+
<RCTMLNAndroidTextureMapView {...nativeProps} {...callbacks}>
|
|
847
|
+
{props.children}
|
|
848
|
+
</RCTMLNAndroidTextureMapView>
|
|
849
|
+
);
|
|
850
|
+
} else if (isReady) {
|
|
851
|
+
mapView = (
|
|
852
|
+
<RCTMLNMapView {...nativeProps} {...callbacks}>
|
|
853
|
+
{props.children}
|
|
854
|
+
</RCTMLNMapView>
|
|
855
|
+
);
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
return (
|
|
859
|
+
<View
|
|
860
|
+
onLayout={_onLayout}
|
|
861
|
+
style={props.style}
|
|
862
|
+
testID={mapView ? undefined : props.testID}
|
|
863
|
+
>
|
|
864
|
+
{mapView}
|
|
865
|
+
</View>
|
|
866
|
+
);
|
|
867
|
+
},
|
|
868
|
+
),
|
|
869
|
+
);
|
|
870
|
+
|
|
871
|
+
type RCTMLNMapViewRefType = Component<NativeProps> & Readonly<NativeMethods>;
|
|
872
|
+
const RCTMLNMapView = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
|
|
873
|
+
|
|
874
|
+
let RCTMLNAndroidTextureMapView: typeof RCTMLNMapView;
|
|
875
|
+
if (isAndroid()) {
|
|
876
|
+
RCTMLNAndroidTextureMapView = requireNativeComponent<NativeProps>(
|
|
877
|
+
ANDROID_TEXTURE_NATIVE_MODULE_NAME,
|
|
878
|
+
);
|
|
879
|
+
}
|
|
880
|
+
export default MapView;
|