@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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.annotation;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Nullable;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
+
import com.facebook.react.common.MapBuilder;
|
|
9
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
10
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
11
|
+
import com.mapbox.rctmgl.components.AbstractEventEmitter;
|
|
12
|
+
import com.mapbox.rctmgl.events.constants.EventKeys;
|
|
13
|
+
import com.mapbox.rctmgl.utils.GeoJSONUtils;
|
|
14
|
+
|
|
15
|
+
import java.util.Map;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Created by nickitaliano on 9/27/17.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
public class RCTMGLPointAnnotationManager extends AbstractEventEmitter<RCTMGLPointAnnotation> {
|
|
22
|
+
public static final String REACT_CLASS = "RCTMGLPointAnnotation";
|
|
23
|
+
|
|
24
|
+
public RCTMGLPointAnnotationManager(ReactApplicationContext reactApplicationContext) {
|
|
25
|
+
super(reactApplicationContext);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public Map<String, String> customEvents() {
|
|
30
|
+
return MapBuilder.<String, String>builder()
|
|
31
|
+
.put(EventKeys.POINT_ANNOTATION_SELECTED, "onMapboxPointAnnotationSelected")
|
|
32
|
+
.put(EventKeys.POINT_ANNOTATION_DESELECTED, "onMapboxPointAnnotationDeselected")
|
|
33
|
+
.put(EventKeys.POINT_ANNOTATION_DRAG_START, "onMapboxPointAnnotationDragStart")
|
|
34
|
+
.put(EventKeys.POINT_ANNOTATION_DRAG, "onMapboxPointAnnotationDrag")
|
|
35
|
+
.put(EventKeys.POINT_ANNOTATION_DRAG_END, "onMapboxPointAnnotationDragEnd")
|
|
36
|
+
.build();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//region React Methods
|
|
40
|
+
public static final int METHOD_REFRESH = 2;
|
|
41
|
+
|
|
42
|
+
@Nullable
|
|
43
|
+
@Override
|
|
44
|
+
public Map<String, Integer> getCommandsMap() {
|
|
45
|
+
return MapBuilder.<String, Integer>builder()
|
|
46
|
+
.put("refresh", METHOD_REFRESH)
|
|
47
|
+
.build();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@Override
|
|
51
|
+
public String getName() {
|
|
52
|
+
return REACT_CLASS;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Override
|
|
56
|
+
protected RCTMGLPointAnnotation createViewInstance(ThemedReactContext reactContext) {
|
|
57
|
+
return new RCTMGLPointAnnotation(reactContext, this);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@ReactProp(name="id")
|
|
61
|
+
public void setId(RCTMGLPointAnnotation annotation, String id) {
|
|
62
|
+
annotation.setID(id);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@ReactProp(name="coordinate")
|
|
66
|
+
public void setCoordinate(RCTMGLPointAnnotation annotation, String geoJSONStr) {
|
|
67
|
+
annotation.setCoordinate(GeoJSONUtils.toPointGeometry(geoJSONStr));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@ReactProp(name="anchor")
|
|
71
|
+
public void setAnchor(RCTMGLPointAnnotation annotation, ReadableMap map) {
|
|
72
|
+
annotation.setAnchor((float) map.getDouble("x"), (float) map.getDouble("y"));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@ReactProp(name="draggable")
|
|
76
|
+
public void setDraggable(RCTMGLPointAnnotation annotation, Boolean draggable) {
|
|
77
|
+
annotation.setDraggable(draggable);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@Override
|
|
81
|
+
public void receiveCommand(RCTMGLPointAnnotation annotation, int commandID, @Nullable ReadableArray args) {
|
|
82
|
+
switch (commandID) {
|
|
83
|
+
case METHOD_REFRESH:
|
|
84
|
+
annotation.refresh();
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.camera;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import androidx.annotation.NonNull;
|
|
5
|
+
import android.util.DisplayMetrics;
|
|
6
|
+
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
+
import com.mapbox.geojson.FeatureCollection;
|
|
9
|
+
import com.mapbox.geojson.Point;
|
|
10
|
+
import com.mapbox.mapboxsdk.camera.CameraPosition;
|
|
11
|
+
import com.mapbox.mapboxsdk.camera.CameraUpdate;
|
|
12
|
+
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
|
|
13
|
+
import com.mapbox.mapboxsdk.geometry.LatLng;
|
|
14
|
+
import com.mapbox.mapboxsdk.geometry.LatLngBounds;
|
|
15
|
+
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
|
16
|
+
import com.mapbox.rctmgl.components.camera.constants.CameraMode;
|
|
17
|
+
import com.mapbox.rctmgl.utils.GeoJSONUtils;
|
|
18
|
+
|
|
19
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Created by nickitaliano on 9/5/17.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
public class CameraStop {
|
|
26
|
+
private Double mBearing;
|
|
27
|
+
private Double mTilt;
|
|
28
|
+
private Double mZoom;
|
|
29
|
+
private LatLng mLatLng;
|
|
30
|
+
|
|
31
|
+
private LatLngBounds mBounds;
|
|
32
|
+
private int mPaddingLeft = 0;
|
|
33
|
+
private int mPaddingRight = 0;
|
|
34
|
+
private int mPaddingBottom = 0;
|
|
35
|
+
private int mPaddingTop = 0;
|
|
36
|
+
|
|
37
|
+
private int mMode = CameraMode.EASE;
|
|
38
|
+
private int mDuration = 2000;
|
|
39
|
+
private MapboxMap.CancelableCallback mCallback;
|
|
40
|
+
|
|
41
|
+
public CameraStop() {
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public void setBearing(double bearing) {
|
|
45
|
+
mBearing = bearing;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public void setTilt(double tilt) {
|
|
49
|
+
mTilt = tilt;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public void setZoom(double zoom) {
|
|
53
|
+
mZoom = zoom;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public void setLatLng(LatLng latLng) {
|
|
57
|
+
mLatLng = latLng;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public void setDuration(int duration) {
|
|
61
|
+
mDuration = duration;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public void setCallback(MapboxMap.CancelableCallback callback) {
|
|
65
|
+
mCallback = callback;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public void setBounds(LatLngBounds bounds) {
|
|
69
|
+
mBounds = bounds;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public void setPadding(int paddingLeft, int paddingRight, int paddingTop, int paddingBottom) {
|
|
73
|
+
mPaddingLeft = paddingLeft;
|
|
74
|
+
mPaddingRight = paddingRight;
|
|
75
|
+
mPaddingTop = paddingTop;
|
|
76
|
+
mPaddingBottom = paddingBottom;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public void setMode(@CameraMode.Mode int mode) {
|
|
80
|
+
mMode = mode;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public CameraUpdateItem toCameraUpdate(RCTMGLMapView mapView) {
|
|
84
|
+
MapboxMap map = mapView.getMapboxMap();
|
|
85
|
+
CameraPosition currentCamera = map.getCameraPosition();
|
|
86
|
+
CameraPosition.Builder builder = new CameraPosition.Builder(currentCamera);
|
|
87
|
+
|
|
88
|
+
// Adding map padding to the camera padding which is the same behavior as
|
|
89
|
+
// mapbox native does on iOS
|
|
90
|
+
double[] contentInset = mapView.getContentInset();
|
|
91
|
+
|
|
92
|
+
int paddingLeft = Double.valueOf(contentInset[0] + mPaddingLeft).intValue();
|
|
93
|
+
int paddingTop = Double.valueOf(contentInset[1] + mPaddingTop).intValue();
|
|
94
|
+
int paddingRight = Double.valueOf(contentInset[2] + mPaddingRight).intValue();
|
|
95
|
+
int paddingBottom = Double.valueOf(contentInset[3] + mPaddingBottom).intValue();
|
|
96
|
+
|
|
97
|
+
int[] cameraPadding = {paddingLeft, paddingTop, paddingRight, paddingBottom};
|
|
98
|
+
int[] cameraPaddingClipped = clippedPadding(cameraPadding, mapView);
|
|
99
|
+
|
|
100
|
+
boolean hasSetZoom = false;
|
|
101
|
+
|
|
102
|
+
if (mLatLng != null) {
|
|
103
|
+
builder.target(mLatLng);
|
|
104
|
+
builder.padding(
|
|
105
|
+
cameraPaddingClipped[0],
|
|
106
|
+
cameraPaddingClipped[1],
|
|
107
|
+
cameraPaddingClipped[2],
|
|
108
|
+
cameraPaddingClipped[3]
|
|
109
|
+
);
|
|
110
|
+
} else if (mBounds != null) {
|
|
111
|
+
double tilt = mTilt != null ? mTilt : currentCamera.tilt;
|
|
112
|
+
double bearing = mBearing != null ? mBearing : currentCamera.bearing;
|
|
113
|
+
|
|
114
|
+
CameraPosition boundsCamera = map.getCameraForLatLngBounds(mBounds, cameraPaddingClipped, bearing, tilt);
|
|
115
|
+
if (boundsCamera != null) {
|
|
116
|
+
builder.target(boundsCamera.target);
|
|
117
|
+
builder.zoom(boundsCamera.zoom);
|
|
118
|
+
builder.padding(boundsCamera.padding);
|
|
119
|
+
} else {
|
|
120
|
+
CameraUpdate update = CameraUpdateFactory.newLatLngBounds(
|
|
121
|
+
mBounds,
|
|
122
|
+
cameraPaddingClipped[0],
|
|
123
|
+
cameraPaddingClipped[1],
|
|
124
|
+
cameraPaddingClipped[2],
|
|
125
|
+
cameraPaddingClipped[3]
|
|
126
|
+
);
|
|
127
|
+
return new CameraUpdateItem(map, update, mDuration, mCallback, mMode);
|
|
128
|
+
}
|
|
129
|
+
hasSetZoom = true;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (mBearing != null) {
|
|
133
|
+
builder.bearing(mBearing);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (mTilt != null) {
|
|
137
|
+
builder.tilt(mTilt);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (mZoom != null && !hasSetZoom) {
|
|
141
|
+
builder.zoom(mZoom);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return new CameraUpdateItem(map, CameraUpdateFactory.newCameraPosition(builder.build()), mDuration, mCallback, mMode);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
public static CameraStop fromReadableMap(Context context, @NonNull ReadableMap readableMap, MapboxMap.CancelableCallback callback) {
|
|
148
|
+
CameraStop stop = new CameraStop();
|
|
149
|
+
|
|
150
|
+
if (readableMap.hasKey("pitch")) {
|
|
151
|
+
stop.setTilt(readableMap.getDouble("pitch"));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (readableMap.hasKey("heading")) {
|
|
155
|
+
stop.setBearing(readableMap.getDouble("heading"));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
int paddingTop = getPaddingByKey(readableMap, "paddingTop");
|
|
159
|
+
int paddingRight = getPaddingByKey(readableMap, "paddingRight");
|
|
160
|
+
int paddingBottom = getPaddingByKey(readableMap, "paddingBottom");
|
|
161
|
+
int paddingLeft = getPaddingByKey(readableMap, "paddingLeft");
|
|
162
|
+
|
|
163
|
+
// scale padding by pixel ratio
|
|
164
|
+
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
|
165
|
+
paddingTop = Float.valueOf(paddingTop * metrics.scaledDensity).intValue();
|
|
166
|
+
paddingRight = Float.valueOf(paddingRight * metrics.scaledDensity).intValue();
|
|
167
|
+
paddingBottom = Float.valueOf(paddingBottom * metrics.scaledDensity).intValue();
|
|
168
|
+
paddingLeft = Float.valueOf(paddingLeft * metrics.scaledDensity).intValue();
|
|
169
|
+
|
|
170
|
+
stop.setPadding(
|
|
171
|
+
paddingLeft,
|
|
172
|
+
paddingRight,
|
|
173
|
+
paddingTop,
|
|
174
|
+
paddingBottom
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
if (readableMap.hasKey("centerCoordinate")) {
|
|
178
|
+
Point target = GeoJSONUtils.toPointGeometry(readableMap.getString("centerCoordinate"));
|
|
179
|
+
stop.setLatLng(GeoJSONUtils.toLatLng(target));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (readableMap.hasKey("zoom")) {
|
|
183
|
+
stop.setZoom(readableMap.getDouble("zoom"));
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (readableMap.hasKey("duration")) {
|
|
187
|
+
stop.setDuration(readableMap.getInt("duration"));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (readableMap.hasKey("bounds")) {
|
|
191
|
+
FeatureCollection collection = FeatureCollection.fromJson(readableMap.getString("bounds"));
|
|
192
|
+
stop.setBounds(GeoJSONUtils.toLatLngBounds(collection));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (readableMap.hasKey("mode")) {
|
|
196
|
+
switch (readableMap.getInt("mode")) {
|
|
197
|
+
case CameraMode.FLIGHT:
|
|
198
|
+
stop.setMode(CameraMode.FLIGHT);
|
|
199
|
+
break;
|
|
200
|
+
case CameraMode.LINEAR:
|
|
201
|
+
stop.setMode(CameraMode.LINEAR);
|
|
202
|
+
break;
|
|
203
|
+
case CameraMode.NONE:
|
|
204
|
+
stop.setMode(CameraMode.NONE);
|
|
205
|
+
break;
|
|
206
|
+
default:
|
|
207
|
+
stop.setMode(CameraMode.EASE);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
stop.setCallback(callback);
|
|
212
|
+
return stop;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
private static int[] clippedPadding(int[] padding, RCTMGLMapView mapView) {
|
|
216
|
+
int mapHeight = mapView.getHeight();
|
|
217
|
+
int mapWidth = mapView.getWidth();
|
|
218
|
+
|
|
219
|
+
int left = padding[0];
|
|
220
|
+
int top = padding[1];
|
|
221
|
+
int right = padding[2];
|
|
222
|
+
int bottom = padding[3];
|
|
223
|
+
|
|
224
|
+
int resultLeft = left;
|
|
225
|
+
int resultTop = top;
|
|
226
|
+
int resultRight = right;
|
|
227
|
+
int resultBottom = bottom;
|
|
228
|
+
|
|
229
|
+
if (top + bottom >= mapHeight) {
|
|
230
|
+
double totalPadding = top + bottom;
|
|
231
|
+
double extra = totalPadding - mapHeight + 1.0; // add 1 to compensate for floating point math
|
|
232
|
+
resultTop -= (top * extra) / totalPadding;
|
|
233
|
+
resultBottom -= (bottom * extra) / totalPadding;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (left + right >= mapWidth) {
|
|
237
|
+
double totalPadding = left + right;
|
|
238
|
+
double extra = totalPadding - mapWidth + 1.0; // add 1 to compensate for floating point math
|
|
239
|
+
resultLeft -= (left * extra) / totalPadding;
|
|
240
|
+
resultRight -= (right * extra) / totalPadding;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return new int[] {resultLeft, resultTop, resultRight, resultBottom};
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
private static int getPaddingByKey(ReadableMap map, String key) {
|
|
247
|
+
return map.hasKey(key) ? map.getInt(key) : 0;
|
|
248
|
+
}
|
|
249
|
+
}
|
package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.camera;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.mapbox.mapboxsdk.camera.CameraUpdate;
|
|
6
|
+
import com.mapbox.mapboxsdk.constants.MapboxConstants;
|
|
7
|
+
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
|
8
|
+
import com.mapbox.rctmgl.components.camera.constants.CameraMode;
|
|
9
|
+
|
|
10
|
+
import java.lang.ref.WeakReference;
|
|
11
|
+
import java.util.concurrent.Callable;
|
|
12
|
+
import java.util.concurrent.ExecutionException;
|
|
13
|
+
import java.util.concurrent.ExecutorService;
|
|
14
|
+
import java.util.concurrent.Future;
|
|
15
|
+
import java.util.concurrent.FutureTask;
|
|
16
|
+
import java.util.concurrent.RunnableFuture;
|
|
17
|
+
import java.util.concurrent.TimeUnit;
|
|
18
|
+
import java.util.concurrent.TimeoutException;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Created by nickitaliano on 9/5/17.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
public class CameraUpdateItem implements RunnableFuture<Void> {
|
|
25
|
+
private int mDuration;
|
|
26
|
+
private MapboxMap.CancelableCallback mCallback;
|
|
27
|
+
private CameraUpdate mCameraUpdate;
|
|
28
|
+
private int mCameraMode;
|
|
29
|
+
|
|
30
|
+
private boolean isCameraActionFinished;
|
|
31
|
+
private boolean isCameraActionCancelled;
|
|
32
|
+
|
|
33
|
+
private WeakReference<MapboxMap> mMap;
|
|
34
|
+
|
|
35
|
+
public CameraUpdateItem(MapboxMap map, CameraUpdate update, int duration, MapboxMap.CancelableCallback callback, @CameraMode.Mode int cameraMode) {
|
|
36
|
+
mCameraUpdate = update;
|
|
37
|
+
mDuration = duration;
|
|
38
|
+
mCallback = callback;
|
|
39
|
+
mCameraMode = cameraMode;
|
|
40
|
+
mMap = new WeakReference<>(map);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public int getDuration() {
|
|
44
|
+
return mDuration;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Override
|
|
48
|
+
public void run() {
|
|
49
|
+
final MapboxMap.CancelableCallback callback = new MapboxMap.CancelableCallback() {
|
|
50
|
+
@Override
|
|
51
|
+
public void onCancel() {
|
|
52
|
+
handleCallbackResponse(true);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Override
|
|
56
|
+
public void onFinish() {
|
|
57
|
+
handleCallbackResponse(false);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
MapboxMap map = mMap.get();
|
|
62
|
+
if (map == null) {
|
|
63
|
+
isCameraActionCancelled = true;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// animateCamera / easeCamera only allows positive duration
|
|
68
|
+
if (mDuration == 0 || mCameraMode == CameraMode.NONE) {
|
|
69
|
+
map.moveCamera(mCameraUpdate, callback);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// On iOS a duration of -1 means default or dynamic duration (based on flight-path length)
|
|
74
|
+
// On Android we can fallback to Mapbox's default duration as there is no such API
|
|
75
|
+
int duration = mDuration < 0 ? MapboxConstants.ANIMATION_DURATION : mDuration;
|
|
76
|
+
|
|
77
|
+
if (mCameraMode == CameraMode.FLIGHT) {
|
|
78
|
+
map.animateCamera(mCameraUpdate, duration, callback);
|
|
79
|
+
} else if (mCameraMode == CameraMode.LINEAR) {
|
|
80
|
+
map.easeCamera(mCameraUpdate, duration, false, callback);
|
|
81
|
+
} else if (mCameraMode == CameraMode.EASE) {
|
|
82
|
+
map.easeCamera(mCameraUpdate, duration, true, callback);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@Override
|
|
87
|
+
public boolean cancel(boolean mayInterruptIfRunning) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Override
|
|
92
|
+
public boolean isCancelled() {
|
|
93
|
+
return isCameraActionCancelled;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@Override
|
|
97
|
+
public boolean isDone() {
|
|
98
|
+
return isCameraActionFinished;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@Override
|
|
102
|
+
public Void get() throws InterruptedException, ExecutionException {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@Override
|
|
107
|
+
public Void get(long timeout, @NonNull TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private void handleCallbackResponse(boolean isCancel) {
|
|
112
|
+
if (mCallback == null) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
isCameraActionCancelled = isCancel;
|
|
117
|
+
isCameraActionFinished = !isCancel;
|
|
118
|
+
|
|
119
|
+
if (isCancel) {
|
|
120
|
+
mCallback.onCancel();
|
|
121
|
+
} else {
|
|
122
|
+
mCallback.onFinish();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.camera;
|
|
2
|
+
|
|
3
|
+
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
|
4
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
|
|
5
|
+
|
|
6
|
+
import java.util.ArrayList;
|
|
7
|
+
import java.util.Iterator;
|
|
8
|
+
import java.util.LinkedList;
|
|
9
|
+
import java.util.List;
|
|
10
|
+
import java.util.Queue;
|
|
11
|
+
import java.util.concurrent.ExecutorService;
|
|
12
|
+
import java.util.concurrent.Executors;
|
|
13
|
+
import java.util.concurrent.FutureTask;
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Created by nickitaliano on 9/5/17.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
public class CameraUpdateQueue {
|
|
21
|
+
private Queue<CameraStop> mQueue;
|
|
22
|
+
|
|
23
|
+
private OnCompleteAllListener mCompleteListener;
|
|
24
|
+
|
|
25
|
+
public interface OnCompleteAllListener {
|
|
26
|
+
void onCompleteAll();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public CameraUpdateQueue() {
|
|
30
|
+
mQueue = new LinkedList<>();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public void offer(CameraStop item) {
|
|
34
|
+
mQueue.offer(item);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public int size() {
|
|
38
|
+
return mQueue.size();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public boolean isEmpty() {
|
|
42
|
+
return mQueue.isEmpty();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public void flush() {
|
|
46
|
+
while (mQueue.size() > 0) {
|
|
47
|
+
mQueue.remove();
|
|
48
|
+
}
|
|
49
|
+
mQueue = new LinkedList<>();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public void setOnCompleteAllListener(OnCompleteAllListener listener) {
|
|
53
|
+
mCompleteListener = listener;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public void execute(RCTMGLMapView map) {
|
|
57
|
+
if (mQueue.isEmpty()) {
|
|
58
|
+
if (mCompleteListener != null) {
|
|
59
|
+
mCompleteListener.onCompleteAll();
|
|
60
|
+
}
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
final CameraStop stop = mQueue.poll();
|
|
65
|
+
if (stop == null) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
CameraUpdateItem item = stop.toCameraUpdate(map);
|
|
70
|
+
item.run();
|
|
71
|
+
execute(map);
|
|
72
|
+
}
|
|
73
|
+
}
|