@maplibre/maplibre-react-native 8.6.0-beta.0
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/.eslintignore +3 -0
- package/.eslintrc.js +158 -0
- package/.gitattributes +1 -0
- package/.nvmrc +1 -0
- package/.prettierrc.js +7 -0
- package/.sonarcloud.properties +15 -0
- package/CHANGELOG.md +367 -0
- package/CODE_OF_CONDUCT.md +2 -0
- package/CONTRIBUTING.md +34 -0
- package/LICENSE.md +9 -0
- package/README.md +224 -0
- package/RELEASE.md +30 -0
- package/android/build.gradle +34 -0
- package/android/install.md +16 -0
- package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
- package/android/rctmgl/build.gradle +61 -0
- package/android/rctmgl/proguard-rules.pro +25 -0
- package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +67 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +66 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1527 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +353 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2242 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +212 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +302 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +227 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/IEvent.java +18 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/LocationManager.java +168 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocation.java +63 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +158 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java +348 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
- package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
- package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
- package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
- package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
- package/android/rctmgl/src/main/res/values/strings.xml +3 -0
- package/android/settings.gradle +1 -0
- package/app.plugin.js +1 -0
- package/assets/heading.png +0 -0
- package/assets/heading@2x.png +0 -0
- package/assets/heading@3x.png +0 -0
- package/assets/indoor_building_map_android.png +0 -0
- package/assets/indoor_building_map_ios.png +0 -0
- package/assets/mapbox_logo.png +0 -0
- package/babel.config.js +9 -0
- package/docs/Annotation.md +39 -0
- package/docs/Annotations.md +17 -0
- package/docs/BackgroundLayer.md +166 -0
- package/docs/Callout.md +15 -0
- package/docs/Camera.md +162 -0
- package/docs/CircleLayer.md +453 -0
- package/docs/CustomHttpHeaders.md +87 -0
- package/docs/FillExtrusionLayer.md +327 -0
- package/docs/FillLayer.md +293 -0
- package/docs/GettingStarted.md +72 -0
- package/docs/HeadingIndicator.md +10 -0
- package/docs/HeatmapLayer.md +215 -0
- package/docs/ImageSource.md +12 -0
- package/docs/Images.md +12 -0
- package/docs/Light.md +159 -0
- package/docs/LineLayer.md +567 -0
- package/docs/Logger.md +23 -0
- package/docs/MapView.md +211 -0
- package/docs/MapboxGL.md +65 -0
- package/docs/MarkerView.md +14 -0
- package/docs/NativeUserLocation.md +11 -0
- package/docs/OfflineManager.md +246 -0
- package/docs/PointAnnotation.md +34 -0
- package/docs/RasterLayer.md +357 -0
- package/docs/RasterSource.md +17 -0
- package/docs/ShapeSource.md +100 -0
- package/docs/Style.md +10 -0
- package/docs/StyleSheet.md +430 -0
- package/docs/SymbolLayer.md +1658 -0
- package/docs/UserLocation.md +39 -0
- package/docs/VectorSource.md +48 -0
- package/docs/docs.json +6093 -0
- package/docs/snapshotManager.md +53 -0
- package/index.d.ts +953 -0
- package/ios/RCTMGL/CameraMode.h +18 -0
- package/ios/RCTMGL/CameraMode.m +18 -0
- package/ios/RCTMGL/CameraStop.h +26 -0
- package/ios/RCTMGL/CameraStop.m +83 -0
- package/ios/RCTMGL/CameraUpdateItem.h +18 -0
- package/ios/RCTMGL/CameraUpdateItem.m +178 -0
- package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
- package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
- package/ios/RCTMGL/FilterParser.h +14 -0
- package/ios/RCTMGL/FilterParser.m +22 -0
- package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
- package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
- package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
- package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
- package/ios/RCTMGL/MGLModule.h +13 -0
- package/ios/RCTMGL/MGLModule.m +269 -0
- package/ios/RCTMGL/MGLOfflineModule.h +19 -0
- package/ios/RCTMGL/MGLOfflineModule.m +516 -0
- package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
- package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
- package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
- package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
- package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
- package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
- package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
- package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
- package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
- package/ios/RCTMGL/RCTMGL.h +13 -0
- package/ios/RCTMGL/RCTMGL.m +13 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
- package/ios/RCTMGL/RCTMGLCallout.h +15 -0
- package/ios/RCTMGL/RCTMGLCallout.m +74 -0
- package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
- package/ios/RCTMGL/RCTMGLCamera.h +39 -0
- package/ios/RCTMGL/RCTMGLCamera.m +258 -0
- package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
- package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
- package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
- package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
- package/ios/RCTMGL/RCTMGLEvent.h +21 -0
- package/ios/RCTMGL/RCTMGLEvent.m +47 -0
- package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
- package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
- package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
- package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
- package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
- package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
- package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
- package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
- package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
- package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
- package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
- package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
- package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
- package/ios/RCTMGL/RCTMGLImages.h +25 -0
- package/ios/RCTMGL/RCTMGLImages.m +126 -0
- package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
- package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
- package/ios/RCTMGL/RCTMGLLayer.h +52 -0
- package/ios/RCTMGL/RCTMGLLayer.m +236 -0
- package/ios/RCTMGL/RCTMGLLight.h +17 -0
- package/ios/RCTMGL/RCTMGLLight.m +46 -0
- package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
- package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
- package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
- package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
- package/ios/RCTMGL/RCTMGLLocation.h +19 -0
- package/ios/RCTMGL/RCTMGLLocation.m +32 -0
- package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
- package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
- package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
- package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
- package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
- package/ios/RCTMGL/RCTMGLLogging.h +18 -0
- package/ios/RCTMGL/RCTMGLLogging.m +132 -0
- package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
- package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
- package/ios/RCTMGL/RCTMGLMapView.h +91 -0
- package/ios/RCTMGL/RCTMGLMapView.m +536 -0
- package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
- package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
- package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
- package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
- package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
- package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
- package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
- package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
- package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
- package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
- package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
- package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
- package/ios/RCTMGL/RCTMGLShapeSource.h +52 -0
- package/ios/RCTMGL/RCTMGLShapeSource.m +180 -0
- package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
- package/ios/RCTMGL/RCTMGLShapeSourceManager.m +205 -0
- package/ios/RCTMGL/RCTMGLSource.h +35 -0
- package/ios/RCTMGL/RCTMGLSource.m +143 -0
- package/ios/RCTMGL/RCTMGLStyle.h +219 -0
- package/ios/RCTMGL/RCTMGLStyle.m +1654 -0
- package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
- package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
- package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
- package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
- package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
- package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
- package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
- package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
- package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
- package/ios/RCTMGL/RCTMGLUtils.h +31 -0
- package/ios/RCTMGL/RCTMGLUtils.m +218 -0
- package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
- package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
- package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
- package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
- package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
- package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
- package/ios/RCTMGL/RNMBImageUtils.h +17 -0
- package/ios/RCTMGL/RNMBImageUtils.m +31 -0
- package/ios/RCTMGL/ViewManager.h +16 -0
- package/ios/RCTMGL/ViewManager.m +63 -0
- package/ios/RCTMGL/index.d.ts +1164 -0
- package/ios/RCTMGL.xcodeproj/project.pbxproj +774 -0
- package/ios/install.md +44 -0
- package/javascript/components/AbstractLayer.js +75 -0
- package/javascript/components/AbstractSource.js +15 -0
- package/javascript/components/BackgroundLayer.js +97 -0
- package/javascript/components/Callout.js +139 -0
- package/javascript/components/Camera.js +665 -0
- package/javascript/components/CircleLayer.js +101 -0
- package/javascript/components/FillExtrusionLayer.js +98 -0
- package/javascript/components/FillLayer.js +94 -0
- package/javascript/components/HeadingIndicator.js +31 -0
- package/javascript/components/HeatmapLayer.js +99 -0
- package/javascript/components/ImageSource.js +82 -0
- package/javascript/components/Images.js +119 -0
- package/javascript/components/Light.js +47 -0
- package/javascript/components/LineLayer.js +94 -0
- package/javascript/components/MapView.js +817 -0
- package/javascript/components/MarkerView.js +87 -0
- package/javascript/components/NativeBridgeComponent.js +86 -0
- package/javascript/components/NativeUserLocation.js +41 -0
- package/javascript/components/PointAnnotation.js +216 -0
- package/javascript/components/RasterLayer.js +95 -0
- package/javascript/components/RasterSource.js +124 -0
- package/javascript/components/ShapeSource.js +357 -0
- package/javascript/components/Style.js +264 -0
- package/javascript/components/SymbolLayer.js +120 -0
- package/javascript/components/UserLocation.js +273 -0
- package/javascript/components/VectorSource.js +200 -0
- package/javascript/components/annotations/Annotation.js +122 -0
- package/javascript/index.js +153 -0
- package/javascript/modules/location/locationManager.js +101 -0
- package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
- package/javascript/modules/offline/OfflinePack.js +40 -0
- package/javascript/modules/offline/offlineManager.js +378 -0
- package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
- package/javascript/modules/snapshot/snapshotManager.js +62 -0
- package/javascript/utils/BridgeValue.js +81 -0
- package/javascript/utils/Logger.js +114 -0
- package/javascript/utils/animated/Animated.js +39 -0
- package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
- package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
- package/javascript/utils/animated/AnimatedPoint.js +126 -0
- package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +124 -0
- package/javascript/utils/animated/AnimatedShape.js +72 -0
- package/javascript/utils/deprecation.js +25 -0
- package/javascript/utils/filterUtils.js +7 -0
- package/javascript/utils/geoUtils.js +73 -0
- package/javascript/utils/index.js +113 -0
- package/javascript/utils/styleMap.js +1901 -0
- package/maplibre-react-native.podspec +79 -0
- package/package.json +120 -0
- package/plugin/build/withMapbox.d.ts +12 -0
- package/plugin/build/withMapbox.js +119 -0
- package/plugin/install.md +32 -0
- package/react-native.config.js +10 -0
- package/scripts/autogenHelpers/DocJSONBuilder.js +458 -0
- package/scripts/autogenHelpers/JSDocNodeTree.js +131 -0
- package/scripts/autogenHelpers/MarkdownBuilder.js +29 -0
- package/scripts/autogenHelpers/globals.js +507 -0
- package/scripts/autogenerate.js +374 -0
- package/scripts/download-style-spec.sh +15 -0
- package/scripts/templates/RCTMGLStyle.h.ejs +33 -0
- package/scripts/templates/RCTMGLStyle.m.ejs +97 -0
- package/scripts/templates/RCTMGLStyleFactory.java.ejs +107 -0
- package/scripts/templates/component.md.ejs +122 -0
- package/scripts/templates/index.d.ts.ejs +56 -0
- package/scripts/templates/styleMap.js.ejs +115 -0
- package/setup-jest.js +121 -0
- package/style-spec/v8.json +5798 -0
- package/tsconfig.json +65 -0
package/README.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
[](https://maplibre.org)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# MapLibre GL SDK for React Native
|
|
7
|
+
|
|
8
|
+
_A React Native library for building maps with
|
|
9
|
+
the [MapLibre GL Native SDK for iOS & Android](https://github.com/maplibre/maplibre-gl-native)_.
|
|
10
|
+
|
|
11
|
+
This project originated as a fork of [rnmapbox](https://github.com/rnmapbox/maps), a community-maintained
|
|
12
|
+
React Native Library for building maps with the Mapbox iOS and Android mobile SDKs. The original product
|
|
13
|
+
supported both Mapbox and MapLibre for some time, but as the MapLibre and Mapbox SDKs have
|
|
14
|
+
diverged, it has become necessary to separate the projects into specific wrappers by underlying renderer.
|
|
15
|
+
|
|
16
|
+
**This project is in the process of being onboarded and prepared for broad use by the MapLibre community. PRs and tickets welcomed.** Track the status over at: https://github.com/maplibre/maplibre/issues/134
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
_TODO: update NPM badge_
|
|
21
|
+
|
|
22
|
+
[](https://badge.fury.io/js/%40react-native-mapbox-gl%2Fmaps)
|
|
23
|
+
[](https://github.com/maplibre/maplibre-react-native/actions/workflows/android-actions.yml)
|
|
24
|
+
[](https://github.com/maplibre/maplibre-react-native/actions/workflows/ios-actions.yml)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
<br>
|
|
29
|
+
|
|
30
|
+
<img src="./assets/indoor_building_map_android.png"
|
|
31
|
+
alt="Indoor Building Map Android"
|
|
32
|
+
height="300"
|
|
33
|
+
/>
|
|
34
|
+
<img src="./assets/indoor_building_map_ios.png"
|
|
35
|
+
alt="Indoor Building Map iOS"
|
|
36
|
+
height="300"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
# Quickstart for app developers
|
|
40
|
+
|
|
41
|
+
## Prerequisites
|
|
42
|
+
|
|
43
|
+
1. On Android we support from version 6 (API 23) upwards
|
|
44
|
+
2. You will need a vector tile source (such as Stadia Maps or MapTiler) for production use; a demonstration URL is used in the below example.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## Dependencies
|
|
48
|
+
|
|
49
|
+
- [node](https://nodejs.org)
|
|
50
|
+
- [npm](https://www.npmjs.com/)
|
|
51
|
+
- [React Native](https://facebook.github.io/react-native/) (0.60+)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
55
|
+
|
|
56
|
+
### Step 1 - Install Package:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
# install with Yarn
|
|
60
|
+
yarn add @maplibre/maplibre-react-native
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# or install with NPM
|
|
64
|
+
npm install @maplibre/maplibre-react-native --save
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 2 - Installation Guides:
|
|
68
|
+
|
|
69
|
+
- [Android](/android/install.md)
|
|
70
|
+
- [iOS](/ios/install.md)
|
|
71
|
+
- [Expo](/plugin/install.md)
|
|
72
|
+
- [Example](/example)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
### Getting Started
|
|
76
|
+
For more information, check out our [Getting Started](/docs/GettingStarted.md) section
|
|
77
|
+
|
|
78
|
+
## Run Project
|
|
79
|
+
Before you run your project be sure you have completed the Installation Guides for Android or iOS.
|
|
80
|
+
|
|
81
|
+
### Run iOS Simulator
|
|
82
|
+
```sh
|
|
83
|
+
# Run with yarn
|
|
84
|
+
yarn run ios
|
|
85
|
+
|
|
86
|
+
# or Run with NPM
|
|
87
|
+
npm run ios
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Run Android Emulator
|
|
91
|
+
```sh
|
|
92
|
+
# Run with yarn
|
|
93
|
+
yarn run android
|
|
94
|
+
|
|
95
|
+
# or Run with NPM
|
|
96
|
+
npm run android
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Adding a map
|
|
100
|
+
|
|
101
|
+
```js
|
|
102
|
+
import React, {Component} from 'react';
|
|
103
|
+
import {StyleSheet, View} from 'react-native';
|
|
104
|
+
import MapboxGL from '@maplibre/maplibre-react-native';
|
|
105
|
+
|
|
106
|
+
const styles = StyleSheet.create({
|
|
107
|
+
page: {
|
|
108
|
+
flex: 1,
|
|
109
|
+
justifyContent: 'center',
|
|
110
|
+
alignItems: 'center',
|
|
111
|
+
backgroundColor: '#F5FCFF',
|
|
112
|
+
},
|
|
113
|
+
map: {
|
|
114
|
+
flex: 1,
|
|
115
|
+
alignSelf: 'stretch',
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export default class App extends Component {
|
|
120
|
+
render() {
|
|
121
|
+
return (
|
|
122
|
+
<View style={styles.page}>
|
|
123
|
+
<MapboxGL.MapView
|
|
124
|
+
style={styles.map}
|
|
125
|
+
logoEnabled={false}
|
|
126
|
+
styleURL="https://demotiles.maplibre.org/style.json"
|
|
127
|
+
/>
|
|
128
|
+
</View>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Documentation
|
|
135
|
+
|
|
136
|
+
### Components
|
|
137
|
+
|
|
138
|
+
- [MapView](/docs/MapView.md)
|
|
139
|
+
- [Light](/docs/Light.md)
|
|
140
|
+
- [StyleSheet](/docs/StyleSheet.md)
|
|
141
|
+
- [PointAnnotation](/docs/PointAnnotation.md)
|
|
142
|
+
- [MarkerView](/docs/MarkerView.md)
|
|
143
|
+
- [Callout](/docs/Callout.md)
|
|
144
|
+
- [Camera](docs/Camera.md)
|
|
145
|
+
- [UserLocation](docs/UserLocation.md)
|
|
146
|
+
- [Images](docs/Images.md)
|
|
147
|
+
|
|
148
|
+
### Sources
|
|
149
|
+
|
|
150
|
+
- [VectorSource](/docs/VectorSource.md)
|
|
151
|
+
- [ShapeSource](/docs/ShapeSource.md)
|
|
152
|
+
- [RasterSource](/docs/RasterSource.md)
|
|
153
|
+
|
|
154
|
+
### Layers
|
|
155
|
+
|
|
156
|
+
- [BackgroundLayer](/docs/BackgroundLayer.md)
|
|
157
|
+
- [CircleLayer](/docs/CircleLayer.md)
|
|
158
|
+
- [FillExtrusionLayer](/docs/FillExtrusionLayer.md)
|
|
159
|
+
- [FillLayer](/docs/FillLayer.md)
|
|
160
|
+
- [LineLayer](/docs/LineLayer.md)
|
|
161
|
+
- [RasterLayer](/docs/RasterLayer.md)
|
|
162
|
+
- [SymbolLayer](/docs/SymbolLayer.md)
|
|
163
|
+
- [HeatmapLayer](/docs/HeatmapLayer.md)
|
|
164
|
+
|
|
165
|
+
### Offline
|
|
166
|
+
|
|
167
|
+
- [OfflineManager](/docs/OfflineManager.md)
|
|
168
|
+
- [SnapshotManager](/docs/snapshotManager.md)
|
|
169
|
+
|
|
170
|
+
### Misc
|
|
171
|
+
|
|
172
|
+
- [MapboxGL](/docs/MapboxGL.md)
|
|
173
|
+
- [CustomHttpHeaders](/docs/CustomHttpHeaders.md)
|
|
174
|
+
- [Logger](/docs/Logger.md)
|
|
175
|
+
|
|
176
|
+
## Expo Support
|
|
177
|
+
|
|
178
|
+
This package is not available in the [Expo Go](https://expo.io/client) app. Learn how you can use it with [custom dev clients](/plugin/install.md).
|
|
179
|
+
|
|
180
|
+
# Quickstart for contributors
|
|
181
|
+
|
|
182
|
+
## Environment Setup
|
|
183
|
+
|
|
184
|
+
This project includes `.nvmrc`. You should use nvm so that you're always developing for the correct
|
|
185
|
+
version of Node.
|
|
186
|
+
|
|
187
|
+
This project uses `yarn` as a package manager. DO NOT install `yarn` using `npm` as that will install
|
|
188
|
+
the outdated 1.x branch. Full instructions are in the [yarn docs](https://yarnpkg.com/getting-started/install),
|
|
189
|
+
but here's the quick checklist at the time of this writing.
|
|
190
|
+
|
|
191
|
+
1. `corepack enable`
|
|
192
|
+
2. `corepack prepare yarn@stable --activate`
|
|
193
|
+
3. On first install, the above may change your yarn config away from `pnp`; check your git working copy for changes and revert if necessary.
|
|
194
|
+
4. `yarn install`
|
|
195
|
+
|
|
196
|
+
### JetBrains IDE Setup
|
|
197
|
+
|
|
198
|
+
Your JetBrains IDE (such as IntelliJ) needs to be set to use yarn under Preferences > Languages & Frameworks > Node.js.
|
|
199
|
+
This may require a manual change if you did not have yarn previously installed.
|
|
200
|
+
|
|
201
|
+
## Testing with Jest
|
|
202
|
+
|
|
203
|
+
This library provides some mocks which are necessary for running tests.
|
|
204
|
+
|
|
205
|
+
Example:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
"jest": {
|
|
209
|
+
"preset": "react-native",
|
|
210
|
+
"setupFilesAfterEnv": ["@maplibre/maplibre-react-native/setup-jest"]
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Optional: Local development with yalc
|
|
215
|
+
|
|
216
|
+
When developing locally, it is often desirable to test in the context of an external project.
|
|
217
|
+
However, it's not easy to do this out of the box with `yarn` or `npm`.
|
|
218
|
+
[`yalc`](https://www.viget.com/articles/how-to-use-local-unpublished-node-packages-as-project-dependencies/)
|
|
219
|
+
can mitigate some of the pain with this.
|
|
220
|
+
|
|
221
|
+
## Community
|
|
222
|
+
|
|
223
|
+
Join the #maplibre-native Slack channel at OSMUS: get an invite at https://slack.openstreetmap.us/
|
|
224
|
+
Read the [CONTRIBUTING.md](CONTRIBUTING.md) guide in order to get familiar with how we do things around here.
|
package/RELEASE.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# How to create a release for this repo
|
|
2
|
+
|
|
3
|
+
## Make sure `master` builds correctly
|
|
4
|
+
|
|
5
|
+
Are all our [actions](https://github.com/maplibre/maplibre-react-native/actions) passing successfully?
|
|
6
|
+
If not, make sure to investigate the issue and fix it prior to a release.
|
|
7
|
+
|
|
8
|
+
## Bump the version in our package.json
|
|
9
|
+
|
|
10
|
+
Once you verified, that `master` isn't broken, go on and increase the `version` within our `package.json`.
|
|
11
|
+
|
|
12
|
+
## Update the CHANGELOG accordingly
|
|
13
|
+
|
|
14
|
+
Our [`CHANGELOG.md`](https://github.com/maplibre/maplibre-react-native/blob/master/CHANGELOG.md) should be updated whenever a PR is merged/ noteworthy changes are commited to `master`.
|
|
15
|
+
Prior to a release, the changes should be documented under the `UNRELEASED` section.
|
|
16
|
+
Once it's clear, that a release is about to be published, move the items under `UNRELEASED` to _this_ releases sections.
|
|
17
|
+
Let your actions be guided by the previous release entries.
|
|
18
|
+
|
|
19
|
+
## Draft a new release on Github
|
|
20
|
+
|
|
21
|
+
Within the [releases](https://github.com/maplibre/maplibre-react-native/releases) section of the repo you can [`Draft a new release`](https://github.com/maplibre/maplibre-react-native/releases/new).
|
|
22
|
+
|
|
23
|
+
`Tag version` & `Release title` should be the same.
|
|
24
|
+
As redundant as it might sound, please add the changes from the `CHANGELOG.md` into the body of the release.
|
|
25
|
+
|
|
26
|
+
## Monitor the repos issues for updates
|
|
27
|
+
|
|
28
|
+
Once the release is out the door (on [npm](https://www.npmjs.com/package/@maplibre/maplibre-react-native)),
|
|
29
|
+
make sure to monitor the [issues](https://github.com/maplibre/maplibre-react-native/issues) closely for
|
|
30
|
+
problems the community might encounter.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
2
|
+
|
|
3
|
+
buildscript {
|
|
4
|
+
ext {
|
|
5
|
+
buildToolsVersion = "28.0.3"
|
|
6
|
+
minSdkVersion = 16
|
|
7
|
+
compileSdkVersion = 33
|
|
8
|
+
targetSdkVersion = 33
|
|
9
|
+
supportLibVersion = "28.0.0"
|
|
10
|
+
}
|
|
11
|
+
repositories {
|
|
12
|
+
google()
|
|
13
|
+
jcenter()
|
|
14
|
+
}
|
|
15
|
+
dependencies {
|
|
16
|
+
classpath 'com.android.tools.build:gradle:3.5.2'
|
|
17
|
+
|
|
18
|
+
// NOTE: Do not place your application dependencies here; they belong
|
|
19
|
+
// in the individual module build.gradle files
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
allprojects {
|
|
24
|
+
repositories {
|
|
25
|
+
mavenLocal()
|
|
26
|
+
google()
|
|
27
|
+
jcenter()
|
|
28
|
+
maven { url "https://jitpack.io" }
|
|
29
|
+
maven {
|
|
30
|
+
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
31
|
+
url "$rootDir/../node_modules/react-native/android"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Android Installation
|
|
2
|
+
|
|
3
|
+
We've set up the default MapLibre dependencies for you, and no
|
|
4
|
+
special installation is required!
|
|
5
|
+
|
|
6
|
+
Feel free to check out the `/example` projects [`android/build.gradle`](https://github.com/maplibre/maplibre-react-native/blob/main/example/)
|
|
7
|
+
projects for inspiration to get started.
|
|
8
|
+
|
|
9
|
+
Note that the Android SDK is slightly peculiar in that it absolutely
|
|
10
|
+
requires setting an access token, even though it will be `null` for
|
|
11
|
+
most users (non-Mapbox-users). Simply add something like this near
|
|
12
|
+
the top of your `App.js`.
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
MapboxGL.setAccessToken(null);
|
|
16
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
apply plugin: 'com.android.library'
|
|
2
|
+
|
|
3
|
+
def safeExtGet(prop, fallback) {
|
|
4
|
+
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
android {
|
|
8
|
+
compileSdkVersion safeExtGet("compileSdkVersion", 33)
|
|
9
|
+
buildToolsVersion safeExtGet("buildToolsVersion", '33.0.1')
|
|
10
|
+
|
|
11
|
+
defaultConfig {
|
|
12
|
+
minSdkVersion safeExtGet('minSdkVersion', 16)
|
|
13
|
+
targetSdkVersion safeExtGet('targetSdkVersion', 26)
|
|
14
|
+
versionCode 1
|
|
15
|
+
versionName "1.0"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
compileOptions {
|
|
19
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
20
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
buildTypes {
|
|
24
|
+
release {
|
|
25
|
+
minifyEnabled false
|
|
26
|
+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
dependencies {
|
|
32
|
+
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
33
|
+
|
|
34
|
+
// React Native
|
|
35
|
+
implementation "com.facebook.react:react-native:+"
|
|
36
|
+
|
|
37
|
+
// MapLibre SDK
|
|
38
|
+
implementation "org.maplibre.gl:android-sdk:9.5.2"
|
|
39
|
+
implementation "org.maplibre.gl:android-sdk-turf:5.9.0"
|
|
40
|
+
|
|
41
|
+
// Dependencies
|
|
42
|
+
implementation "com.android.support:support-vector-drawable:${safeExtGet('supportLibVersion', '28.0.0')}"
|
|
43
|
+
implementation "com.android.support:support-annotations:${safeExtGet('supportLibVersion', '28.0.0')}"
|
|
44
|
+
implementation "com.android.support:appcompat-v7:${safeExtGet('supportLibVersion', '28.0.0')}"
|
|
45
|
+
implementation "com.squareup.okhttp3:okhttp:${safeExtGet('okhttpVersion', '4.9.0')}"
|
|
46
|
+
implementation "com.squareup.okhttp3:okhttp-urlconnection:${safeExtGet('okhttpVersion', '4.9.0')}"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
// MapLibre plugins
|
|
50
|
+
implementation ("org.maplibre.gl:android-plugin-localization-v9:1.0.0")
|
|
51
|
+
implementation ("org.maplibre.gl:android-plugin-annotation-v9:1.0.0")
|
|
52
|
+
implementation ("org.maplibre.gl:android-plugin-markerview-v9:1.0.0")
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
allprojects {
|
|
56
|
+
repositories {
|
|
57
|
+
maven {
|
|
58
|
+
url = "https://dl.bintray.com/maplibre/maplibre-gl-native"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Add project specific ProGuard rules here.
|
|
2
|
+
# By default, the flags in this file are appended to flags specified
|
|
3
|
+
# in /Users/nickitaliano/Library/Android/sdk/tools/proguard/proguard-android.txt
|
|
4
|
+
# You can edit the include path and order by changing the proguardFiles
|
|
5
|
+
# directive in build.gradle.
|
|
6
|
+
#
|
|
7
|
+
# For more details, see
|
|
8
|
+
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
9
|
+
|
|
10
|
+
# Add any project specific keep options here:
|
|
11
|
+
|
|
12
|
+
# If your project uses WebView with JS, uncomment the following
|
|
13
|
+
# and specify the fully qualified class name to the JavaScript interface
|
|
14
|
+
# class:
|
|
15
|
+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
16
|
+
# public *;
|
|
17
|
+
#}
|
|
18
|
+
|
|
19
|
+
# Uncomment this to preserve the line number information for
|
|
20
|
+
# debugging stack traces.
|
|
21
|
+
#-keepattributes SourceFile,LineNumberTable
|
|
22
|
+
|
|
23
|
+
# If you keep the line number information, uncomment this to
|
|
24
|
+
# hide the original source file name.
|
|
25
|
+
#-renamesourcefileattribute SourceFile
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
package com.mapbox.rctmgl;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.ReactPackage;
|
|
4
|
+
import com.facebook.react.bridge.JavaScriptModule;
|
|
5
|
+
import com.facebook.react.bridge.NativeModule;
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
+
import com.facebook.react.uimanager.ViewManager;
|
|
8
|
+
|
|
9
|
+
import java.util.ArrayList;
|
|
10
|
+
import java.util.Collections;
|
|
11
|
+
import java.util.List;
|
|
12
|
+
|
|
13
|
+
import com.mapbox.rctmgl.components.annotation.RCTMGLCalloutManager;
|
|
14
|
+
import com.mapbox.rctmgl.components.annotation.RCTMGLPointAnnotationManager;
|
|
15
|
+
import com.mapbox.rctmgl.components.annotation.RCTMGLMarkerViewManager;
|
|
16
|
+
import com.mapbox.rctmgl.components.camera.RCTMGLCameraManager;
|
|
17
|
+
import com.mapbox.rctmgl.components.images.RCTMGLImagesManager;
|
|
18
|
+
import com.mapbox.rctmgl.components.location.RCTMGLNativeUserLocationManager;
|
|
19
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapViewManager;
|
|
20
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLAndroidTextureMapViewManager;
|
|
21
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLBackgroundLayerManager;
|
|
22
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLCircleLayerManager;
|
|
23
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLFillExtrusionLayerManager;
|
|
24
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLFillLayerManager;
|
|
25
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLHeatmapLayerManager;
|
|
26
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLLineLayerManager;
|
|
27
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLRasterLayerManager;
|
|
28
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTMGLSymbolLayerManager;
|
|
29
|
+
import com.mapbox.rctmgl.components.styles.light.RCTMGLLightManager;
|
|
30
|
+
import com.mapbox.rctmgl.components.styles.sources.RCTMGLImageSourceManager;
|
|
31
|
+
import com.mapbox.rctmgl.components.styles.sources.RCTMGLRasterSourceManager;
|
|
32
|
+
import com.mapbox.rctmgl.components.styles.sources.RCTMGLShapeSourceManager;
|
|
33
|
+
import com.mapbox.rctmgl.components.styles.sources.RCTMGLVectorSourceManager;
|
|
34
|
+
import com.mapbox.rctmgl.modules.RCTMGLLocationModule;
|
|
35
|
+
import com.mapbox.rctmgl.modules.RCTMGLLogging;
|
|
36
|
+
import com.mapbox.rctmgl.modules.RCTMGLModule;
|
|
37
|
+
import com.mapbox.rctmgl.modules.RCTMGLOfflineModule;
|
|
38
|
+
import com.mapbox.rctmgl.modules.RCTMGLSnapshotModule;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Created by nickitaliano on 8/18/17.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
public class RCTMGLPackage implements ReactPackage {
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
public List<NativeModule> createNativeModules(ReactApplicationContext reactApplicationContext) {
|
|
48
|
+
List<NativeModule> modules = new ArrayList<>();
|
|
49
|
+
|
|
50
|
+
modules.add(new RCTMGLModule(reactApplicationContext));
|
|
51
|
+
modules.add(new RCTMGLOfflineModule(reactApplicationContext));
|
|
52
|
+
modules.add(new RCTMGLSnapshotModule(reactApplicationContext));
|
|
53
|
+
modules.add(new RCTMGLLocationModule(reactApplicationContext));
|
|
54
|
+
modules.add(new RCTMGLLogging(reactApplicationContext));
|
|
55
|
+
|
|
56
|
+
return modules;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Deprecated
|
|
60
|
+
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
|
61
|
+
return Collections.emptyList();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@Override
|
|
65
|
+
public List<ViewManager> createViewManagers(ReactApplicationContext reactApplicationContext) {
|
|
66
|
+
List<ViewManager> managers = new ArrayList<>();
|
|
67
|
+
|
|
68
|
+
// components
|
|
69
|
+
managers.add(new RCTMGLCameraManager(reactApplicationContext));
|
|
70
|
+
managers.add(new RCTMGLMapViewManager(reactApplicationContext));
|
|
71
|
+
managers.add(new RCTMGLMarkerViewManager(reactApplicationContext));
|
|
72
|
+
managers.add(new RCTMGLAndroidTextureMapViewManager(reactApplicationContext));
|
|
73
|
+
managers.add(new RCTMGLLightManager());
|
|
74
|
+
managers.add(new RCTMGLPointAnnotationManager(reactApplicationContext));
|
|
75
|
+
managers.add(new RCTMGLCalloutManager());
|
|
76
|
+
managers.add(new RCTMGLNativeUserLocationManager());
|
|
77
|
+
|
|
78
|
+
// sources
|
|
79
|
+
managers.add(new RCTMGLVectorSourceManager(reactApplicationContext));
|
|
80
|
+
managers.add(new RCTMGLShapeSourceManager(reactApplicationContext));
|
|
81
|
+
managers.add(new RCTMGLRasterSourceManager(reactApplicationContext));
|
|
82
|
+
managers.add(new RCTMGLImageSourceManager());
|
|
83
|
+
|
|
84
|
+
// images
|
|
85
|
+
managers.add(new RCTMGLImagesManager(reactApplicationContext));
|
|
86
|
+
|
|
87
|
+
// layers
|
|
88
|
+
managers.add(new RCTMGLFillLayerManager());
|
|
89
|
+
managers.add(new RCTMGLFillExtrusionLayerManager());
|
|
90
|
+
managers.add(new RCTMGLHeatmapLayerManager());
|
|
91
|
+
managers.add(new RCTMGLLineLayerManager());
|
|
92
|
+
managers.add(new RCTMGLCircleLayerManager());
|
|
93
|
+
managers.add(new RCTMGLSymbolLayerManager());
|
|
94
|
+
managers.add(new RCTMGLRasterLayerManager());
|
|
95
|
+
managers.add(new RCTMGLBackgroundLayerManager());
|
|
96
|
+
|
|
97
|
+
return managers;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.WritableMap;
|
|
4
|
+
import com.facebook.react.uimanager.events.Event;
|
|
5
|
+
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
6
|
+
|
|
7
|
+
import javax.annotation.Nullable;
|
|
8
|
+
|
|
9
|
+
public class AbstractEvent extends Event<AbstractEvent> {
|
|
10
|
+
private String mEventName;
|
|
11
|
+
private final boolean mCanCoalesce;
|
|
12
|
+
private WritableMap mEvent;
|
|
13
|
+
|
|
14
|
+
public AbstractEvent(int viewId, String eventName, boolean canCoalesce, @Nullable WritableMap event) {
|
|
15
|
+
super(viewId);
|
|
16
|
+
mEventName = eventName;
|
|
17
|
+
mCanCoalesce = canCoalesce;
|
|
18
|
+
mEvent = event;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Override
|
|
22
|
+
public String getEventName() {
|
|
23
|
+
return mEventName;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@Override
|
|
27
|
+
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
|
28
|
+
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), mEvent);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Override
|
|
32
|
+
public boolean canCoalesce() {
|
|
33
|
+
return mCanCoalesce;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components;
|
|
2
|
+
|
|
3
|
+
import android.view.ViewGroup;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
+
import com.facebook.react.common.MapBuilder;
|
|
7
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
8
|
+
import com.facebook.react.uimanager.UIManagerModule;
|
|
9
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
10
|
+
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
11
|
+
import com.mapbox.rctmgl.events.IEvent;
|
|
12
|
+
|
|
13
|
+
import java.util.HashMap;
|
|
14
|
+
import java.util.Map;
|
|
15
|
+
|
|
16
|
+
import javax.annotation.Nullable;
|
|
17
|
+
import javax.annotation.Nonnull;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Created by nickitaliano on 8/23/17.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
abstract public class AbstractEventEmitter<T extends ViewGroup> extends ViewGroupManager<T> {
|
|
24
|
+
private static final double BRIDGE_TIMEOUT_MS = 10;
|
|
25
|
+
private Map<String, Long> mRateLimitedEvents;
|
|
26
|
+
private EventDispatcher mEventDispatcher;
|
|
27
|
+
private ReactApplicationContext mRCTAppContext;
|
|
28
|
+
|
|
29
|
+
public AbstractEventEmitter(ReactApplicationContext reactApplicationContext) {
|
|
30
|
+
mRateLimitedEvents = new HashMap<>();
|
|
31
|
+
mRCTAppContext = reactApplicationContext;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public void handleEvent(IEvent event) {
|
|
35
|
+
String eventCacheKey = getEventCacheKey(event);
|
|
36
|
+
|
|
37
|
+
// fail safe to protect bridge from being spammed
|
|
38
|
+
if (shouldDropEvent(eventCacheKey, event)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
mRateLimitedEvents.put(eventCacheKey, System.currentTimeMillis());
|
|
43
|
+
mEventDispatcher.dispatchEvent(new AbstractEvent(event.getID(), event.getKey(), event.canCoalesce(), event.toJSON()));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
protected void addEventEmitters(ThemedReactContext context, @Nonnull T view) {
|
|
48
|
+
mEventDispatcher = context.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Nullable
|
|
52
|
+
@Override
|
|
53
|
+
public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
|
|
54
|
+
Map<String, String> events = customEvents();
|
|
55
|
+
|
|
56
|
+
if (events == null) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
Map<String, Object> exportedEvents = new HashMap<>();
|
|
61
|
+
|
|
62
|
+
for (Map.Entry<String, String> event : events.entrySet()) {
|
|
63
|
+
exportedEvents.put(event.getKey(), MapBuilder.of("registrationName", event.getValue()));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return exportedEvents;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@Nullable
|
|
70
|
+
public abstract Map<String, String> customEvents();
|
|
71
|
+
|
|
72
|
+
private boolean shouldDropEvent(String cacheKey, IEvent event) {
|
|
73
|
+
Long lastEventTimestamp = mRateLimitedEvents.get(cacheKey);
|
|
74
|
+
return lastEventTimestamp != null && (event.getTimestamp() - lastEventTimestamp) <= BRIDGE_TIMEOUT_MS;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private String getEventCacheKey(IEvent event) {
|
|
78
|
+
return String.format("%s-%s", event.getKey(), event.getType());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.views.view.ReactViewGroup;
|
|
6
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Created by nickitaliano on 9/6/17.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
public abstract class AbstractMapFeature extends ReactViewGroup {
|
|
13
|
+
public AbstractMapFeature(Context context) {
|
|
14
|
+
super(context);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public abstract void addToMap(RCTMGLMapView mapView);
|
|
18
|
+
public abstract void removeFromMap(RCTMGLMapView mapView);
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.annotation;
|
|
2
|
+
|
|
3
|
+
import android.view.View;
|
|
4
|
+
|
|
5
|
+
import androidx.annotation.NonNull;
|
|
6
|
+
|
|
7
|
+
import com.mapbox.mapboxsdk.geometry.LatLng;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Subclass of MarkerView so we MarkerViewManager can implement remove/restoreViews
|
|
11
|
+
*/
|
|
12
|
+
public class MarkerView extends com.mapbox.mapboxsdk.plugins.markerview.MarkerView {
|
|
13
|
+
View view;
|
|
14
|
+
|
|
15
|
+
public MarkerView(@NonNull LatLng latLng, @NonNull View view) {
|
|
16
|
+
super(latLng, view);
|
|
17
|
+
this.view = view;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public View getView() {
|
|
21
|
+
return this.view;
|
|
22
|
+
}
|
|
23
|
+
}
|