@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,302 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.styles.sources;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.graphics.Bitmap;
|
|
5
|
+
import android.graphics.drawable.BitmapDrawable;
|
|
6
|
+
import androidx.annotation.NonNull;
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
8
|
+
import androidx.annotation.Size;
|
|
9
|
+
import androidx.core.content.res.ResourcesCompat;
|
|
10
|
+
|
|
11
|
+
import com.facebook.react.bridge.WritableMap;
|
|
12
|
+
import com.facebook.react.bridge.WritableNativeMap;
|
|
13
|
+
import com.mapbox.geojson.Feature;
|
|
14
|
+
import com.mapbox.geojson.FeatureCollection;
|
|
15
|
+
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
|
16
|
+
import com.mapbox.mapboxsdk.maps.Style;
|
|
17
|
+
import com.mapbox.mapboxsdk.style.expressions.Expression;
|
|
18
|
+
import com.mapbox.mapboxsdk.style.sources.GeoJsonOptions;
|
|
19
|
+
import com.mapbox.mapboxsdk.style.sources.GeoJsonSource;
|
|
20
|
+
import com.mapbox.mapboxsdk.utils.BitmapUtils;
|
|
21
|
+
import com.mapbox.rctmgl.R;
|
|
22
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
|
|
23
|
+
import com.mapbox.rctmgl.events.AndroidCallbackEvent;
|
|
24
|
+
import com.mapbox.rctmgl.events.FeatureClickEvent;
|
|
25
|
+
import com.mapbox.rctmgl.utils.DownloadMapImageTask;
|
|
26
|
+
import com.mapbox.rctmgl.utils.ImageEntry;
|
|
27
|
+
|
|
28
|
+
import java.net.URL;
|
|
29
|
+
import java.util.ArrayList;
|
|
30
|
+
import java.util.Collections;
|
|
31
|
+
import java.util.List;
|
|
32
|
+
import java.util.Map;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Created by nickitaliano on 9/19/17.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
public class RCTMGLShapeSource extends RCTSource<GeoJsonSource> {
|
|
39
|
+
private URL mURL;
|
|
40
|
+
private RCTMGLShapeSourceManager mManager;
|
|
41
|
+
|
|
42
|
+
private String mShape;
|
|
43
|
+
|
|
44
|
+
private Boolean mCluster;
|
|
45
|
+
private Integer mClusterRadius;
|
|
46
|
+
private Integer mClusterMaxZoom;
|
|
47
|
+
|
|
48
|
+
private Integer mMaxZoom;
|
|
49
|
+
private Integer mBuffer;
|
|
50
|
+
private Double mTolerance;
|
|
51
|
+
private Boolean mLineMetrics;
|
|
52
|
+
|
|
53
|
+
private static Bitmap mImagePlaceholder;
|
|
54
|
+
private List<Map.Entry<String, ImageEntry>> mImages;
|
|
55
|
+
private List<Map.Entry<String, BitmapDrawable>> mNativeImages;
|
|
56
|
+
|
|
57
|
+
public RCTMGLShapeSource(Context context, RCTMGLShapeSourceManager manager) {
|
|
58
|
+
super(context);
|
|
59
|
+
mManager = manager;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Override
|
|
63
|
+
public void addToMap(final RCTMGLMapView mapView) {
|
|
64
|
+
// Wait for style before adding the source to the map
|
|
65
|
+
mapView.getMapboxMap().getStyle(new Style.OnStyleLoaded() {
|
|
66
|
+
@Override
|
|
67
|
+
public void onStyleLoaded(@NonNull Style style) {
|
|
68
|
+
MapboxMap map = mapView.getMapboxMap();
|
|
69
|
+
RCTMGLShapeSource.super.addToMap(mapView);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@Override
|
|
75
|
+
public GeoJsonSource makeSource() {
|
|
76
|
+
GeoJsonOptions options = getOptions();
|
|
77
|
+
|
|
78
|
+
if (mShape != null) {
|
|
79
|
+
return new GeoJsonSource(mID, mShape, options);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return new GeoJsonSource(mID, mURL, options);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public void setURL(URL url) {
|
|
86
|
+
mURL = url;
|
|
87
|
+
|
|
88
|
+
if (mSource != null && mMapView != null && !mMapView.isDestroyed() ) {
|
|
89
|
+
mSource.setUrl(mURL);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
public void setShape(String geoJSONStr) {
|
|
94
|
+
mShape = geoJSONStr;
|
|
95
|
+
|
|
96
|
+
if (mSource != null && mMapView != null && !mMapView.isDestroyed() ) {
|
|
97
|
+
mSource.setGeoJson(mShape);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public void setCluster(boolean cluster) {
|
|
102
|
+
mCluster = cluster;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
public void setClusterRadius(int clusterRadius) {
|
|
106
|
+
mClusterRadius = clusterRadius;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public void setClusterMaxZoom(int clusterMaxZoom) {
|
|
110
|
+
mClusterMaxZoom = clusterMaxZoom;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public void setMaxZoom(int maxZoom) {
|
|
114
|
+
mMaxZoom = maxZoom;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public void setBuffer(int buffer) {
|
|
118
|
+
mBuffer = buffer;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public void setTolerance(double tolerance) {
|
|
122
|
+
mTolerance = tolerance;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public void setLineMetrics(boolean lineMetrics) {
|
|
126
|
+
mLineMetrics = lineMetrics;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
public void onPress(OnPressEvent event) {
|
|
130
|
+
mManager.handleEvent(FeatureClickEvent.makeShapeSourceEvent(this, event));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private GeoJsonOptions getOptions() {
|
|
134
|
+
GeoJsonOptions options = new GeoJsonOptions();
|
|
135
|
+
|
|
136
|
+
if (mCluster != null) {
|
|
137
|
+
options.withCluster(mCluster);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (mClusterRadius != null) {
|
|
141
|
+
options.withClusterRadius(mClusterRadius);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (mClusterMaxZoom != null) {
|
|
145
|
+
options.withClusterMaxZoom(mClusterMaxZoom);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (mMaxZoom != null) {
|
|
149
|
+
options.withMaxZoom(mMaxZoom);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (mBuffer != null) {
|
|
153
|
+
options.withBuffer(mBuffer);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (mTolerance != null) {
|
|
157
|
+
options.withTolerance(mTolerance.floatValue());
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (mLineMetrics != null) {
|
|
161
|
+
options.withLineMetrics(mLineMetrics);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return options;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
public void querySourceFeatures(String callbackID,
|
|
168
|
+
@Nullable Expression filter) {
|
|
169
|
+
if (mSource == null) {
|
|
170
|
+
WritableMap payload = new WritableNativeMap();
|
|
171
|
+
payload.putString("error", "source is not yet loaded");
|
|
172
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
173
|
+
mManager.handleEvent(event);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
List<Feature> features = mSource.querySourceFeatures(filter);
|
|
177
|
+
WritableMap payload = new WritableNativeMap();
|
|
178
|
+
payload.putString("data", FeatureCollection.fromFeatures(features).toJson());
|
|
179
|
+
|
|
180
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
181
|
+
mManager.handleEvent(event);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public void getClusterExpansionZoom(String callbackID, String featureJSON) {
|
|
185
|
+
if (mSource == null) {
|
|
186
|
+
WritableMap payload = new WritableNativeMap();
|
|
187
|
+
payload.putString("error", "source is not yet loaded");
|
|
188
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
189
|
+
mManager.handleEvent(event);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
Feature feature = Feature.fromJson(featureJSON);
|
|
193
|
+
|
|
194
|
+
int zoom = mSource.getClusterExpansionZoom(feature);
|
|
195
|
+
|
|
196
|
+
WritableMap payload = new WritableNativeMap();
|
|
197
|
+
payload.putInt("data", zoom);
|
|
198
|
+
|
|
199
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
200
|
+
mManager.handleEvent(event);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
public void getClusterLeaves(String callbackID, String featureJSON, int number, int offset) {
|
|
204
|
+
if (mSource == null) {
|
|
205
|
+
WritableMap payload = new WritableNativeMap();
|
|
206
|
+
payload.putString("error", "source is not yet loaded");
|
|
207
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
208
|
+
mManager.handleEvent(event);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
Feature clusterFeature = Feature.fromJson(featureJSON);
|
|
212
|
+
FeatureCollection leaves = mSource.getClusterLeaves(clusterFeature, number, offset);
|
|
213
|
+
WritableMap payload = new WritableNativeMap();
|
|
214
|
+
payload.putString("data", leaves.toJson());
|
|
215
|
+
|
|
216
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
217
|
+
mManager.handleEvent(event);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
public void getClusterChildren(String callbackID, String featureJSON) {
|
|
221
|
+
if (mSource == null) {
|
|
222
|
+
WritableMap payload = new WritableNativeMap();
|
|
223
|
+
payload.putString("error", "source is not yet loaded");
|
|
224
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
225
|
+
mManager.handleEvent(event);
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
Feature clusterFeature = Feature.fromJson(featureJSON);
|
|
229
|
+
FeatureCollection leaves = mSource.getClusterChildren(clusterFeature);
|
|
230
|
+
WritableMap payload = new WritableNativeMap();
|
|
231
|
+
payload.putString("data", leaves.toJson());
|
|
232
|
+
|
|
233
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
234
|
+
mManager.handleEvent(event);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
238
|
+
public void getClusterExpansionZoomById(String callbackID, int clusterId) {
|
|
239
|
+
if (mSource == null) {
|
|
240
|
+
WritableMap payload = new WritableNativeMap();
|
|
241
|
+
payload.putString("error", "source is not yet loaded");
|
|
242
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
243
|
+
mManager.handleEvent(event);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
List<Feature> features = mSource.querySourceFeatures(Expression.eq(Expression.id(), clusterId));
|
|
247
|
+
int zoom = -1;
|
|
248
|
+
if (features.size() > 0) {
|
|
249
|
+
zoom = mSource.getClusterExpansionZoom(features.get(0));
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (zoom == -1) {
|
|
253
|
+
WritableMap payload = new WritableNativeMap();
|
|
254
|
+
payload.putString("error", "Could not get zoom for cluster id " + clusterId);
|
|
255
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
256
|
+
mManager.handleEvent(event);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
WritableMap payload = new WritableNativeMap();
|
|
261
|
+
payload.putInt("data", zoom);
|
|
262
|
+
|
|
263
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
264
|
+
mManager.handleEvent(event);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
268
|
+
public void getClusterLeavesById(String callbackID, int clusterId, int number, int offset) {
|
|
269
|
+
if (mSource == null) {
|
|
270
|
+
WritableMap payload = new WritableNativeMap();
|
|
271
|
+
payload.putString("error", "source is not yet loaded");
|
|
272
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
273
|
+
mManager.handleEvent(event);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
Feature clusterFeature = mSource.querySourceFeatures(Expression.eq(Expression.get("cluster_id"), clusterId)).get(0);
|
|
277
|
+
FeatureCollection leaves = mSource.getClusterLeaves(clusterFeature, number, offset);
|
|
278
|
+
WritableMap payload = new WritableNativeMap();
|
|
279
|
+
payload.putString("data", leaves.toJson());
|
|
280
|
+
|
|
281
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
282
|
+
mManager.handleEvent(event);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
286
|
+
public void getClusterChildrenById(String callbackID, int clusterId) {
|
|
287
|
+
if (mSource == null) {
|
|
288
|
+
WritableMap payload = new WritableNativeMap();
|
|
289
|
+
payload.putString("error", "source is not yet loaded");
|
|
290
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
291
|
+
mManager.handleEvent(event);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
Feature clusterFeature = mSource.querySourceFeatures(Expression.eq(Expression.get("cluster_id"), clusterId)).get(0);
|
|
295
|
+
FeatureCollection leaves = mSource.getClusterChildren(clusterFeature);
|
|
296
|
+
WritableMap payload = new WritableNativeMap();
|
|
297
|
+
payload.putString("data", leaves.toJson());
|
|
298
|
+
|
|
299
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
300
|
+
mManager.handleEvent(event);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.styles.sources;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.graphics.drawable.BitmapDrawable;
|
|
5
|
+
import android.graphics.drawable.Drawable;
|
|
6
|
+
import android.media.Image;
|
|
7
|
+
import android.util.Log;
|
|
8
|
+
import android.view.View;
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Nullable;
|
|
11
|
+
|
|
12
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
13
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
15
|
+
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
16
|
+
import com.facebook.react.bridge.ReadableType;
|
|
17
|
+
import com.facebook.react.common.MapBuilder;
|
|
18
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
19
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
20
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
21
|
+
import com.mapbox.rctmgl.components.AbstractEventEmitter;
|
|
22
|
+
import com.mapbox.rctmgl.components.annotation.RCTMGLCallout;
|
|
23
|
+
import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
|
|
24
|
+
import com.mapbox.rctmgl.components.styles.layers.RCTLayer;
|
|
25
|
+
import com.mapbox.rctmgl.events.constants.EventKeys;
|
|
26
|
+
import com.mapbox.rctmgl.utils.ExpressionParser;
|
|
27
|
+
import com.mapbox.rctmgl.utils.ImageEntry;
|
|
28
|
+
import com.mapbox.rctmgl.utils.ResourceUtils;
|
|
29
|
+
|
|
30
|
+
import java.net.MalformedURLException;
|
|
31
|
+
import java.net.URL;
|
|
32
|
+
import java.util.AbstractMap;
|
|
33
|
+
import java.util.ArrayList;
|
|
34
|
+
import java.util.List;
|
|
35
|
+
import java.util.Map;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Created by nickitaliano on 9/19/17.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
public class RCTMGLShapeSourceManager extends AbstractEventEmitter<RCTMGLShapeSource> {
|
|
42
|
+
public static final String LOG_TAG = "RCTMGLShapeSourceManager";
|
|
43
|
+
public static final String REACT_CLASS = "RCTMGLShapeSource";
|
|
44
|
+
|
|
45
|
+
private ReactApplicationContext mContext;
|
|
46
|
+
|
|
47
|
+
public RCTMGLShapeSourceManager(ReactApplicationContext context) {
|
|
48
|
+
super(context);
|
|
49
|
+
mContext = context;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Override
|
|
53
|
+
public String getName() {
|
|
54
|
+
return REACT_CLASS;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@Override
|
|
58
|
+
protected RCTMGLShapeSource createViewInstance(ThemedReactContext reactContext) {
|
|
59
|
+
return new RCTMGLShapeSource(reactContext, this);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Override
|
|
63
|
+
public View getChildAt(RCTMGLShapeSource source, int childPosition) {
|
|
64
|
+
return source.getLayerAt(childPosition);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@Override
|
|
68
|
+
public int getChildCount(RCTMGLShapeSource source) {
|
|
69
|
+
return source.getLayerCount();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@Override
|
|
73
|
+
public void addView(RCTMGLShapeSource source, View childView, int childPosition) {
|
|
74
|
+
source.addLayer(childView, getChildCount(source));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@Override
|
|
78
|
+
public void removeViewAt(RCTMGLShapeSource source, int childPosition) {
|
|
79
|
+
source.removeLayer(childPosition);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ReactProp(name = "id")
|
|
83
|
+
public void setId(RCTMGLShapeSource source, String id) {
|
|
84
|
+
source.setID(id);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@ReactProp(name = "url")
|
|
88
|
+
public void setURL(RCTMGLShapeSource source, String urlStr) {
|
|
89
|
+
try {
|
|
90
|
+
source.setURL(new URL(urlStr));
|
|
91
|
+
} catch (MalformedURLException e) {
|
|
92
|
+
Log.w(LOG_TAG, e.getLocalizedMessage());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@ReactProp(name = "shape")
|
|
97
|
+
public void setGeometry(RCTMGLShapeSource source, String geoJSONStr) {
|
|
98
|
+
source.setShape(geoJSONStr);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@ReactProp(name = "cluster")
|
|
102
|
+
public void setCluster(RCTMGLShapeSource source, int cluster) {
|
|
103
|
+
source.setCluster(cluster == 1);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@ReactProp(name = "clusterRadius")
|
|
107
|
+
public void setClusterRadius(RCTMGLShapeSource source, int radius) {
|
|
108
|
+
source.setClusterRadius(radius);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@ReactProp(name = "clusterMaxZoomLevel")
|
|
112
|
+
public void setClusterMaxZoomLevel(RCTMGLShapeSource source, int clusterMaxZoom) {
|
|
113
|
+
source.setClusterMaxZoom(clusterMaxZoom);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@ReactProp(name = "maxZoomLevel")
|
|
117
|
+
public void setMaxZoomLevel(RCTMGLShapeSource source, int maxZoom) {
|
|
118
|
+
source.setMaxZoom(maxZoom);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@ReactProp(name = "buffer")
|
|
122
|
+
public void setBuffer(RCTMGLShapeSource source, int buffer) {
|
|
123
|
+
source.setBuffer(buffer);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@ReactProp(name = "tolerance")
|
|
127
|
+
public void setTolerance(RCTMGLShapeSource source, double tolerance) {
|
|
128
|
+
source.setTolerance(tolerance);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@ReactProp(name = "lineMetrics")
|
|
132
|
+
public void setLineMetrics(RCTMGLShapeSource source, boolean lineMetrics) {
|
|
133
|
+
source.setLineMetrics(lineMetrics);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@ReactProp(name = "hasPressListener")
|
|
137
|
+
public void setHasPressListener(RCTMGLShapeSource source, boolean hasPressListener) {
|
|
138
|
+
source.setHasPressListener(hasPressListener);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@ReactProp(name="hitbox")
|
|
142
|
+
public void setHitbox(RCTMGLShapeSource source, ReadableMap map) {
|
|
143
|
+
source.setHitbox(map);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@Override
|
|
147
|
+
public Map<String, String> customEvents() {
|
|
148
|
+
return MapBuilder.<String, String>builder()
|
|
149
|
+
.put(EventKeys.SHAPE_SOURCE_LAYER_CLICK, "onMapboxShapeSourcePress")
|
|
150
|
+
.put(EventKeys.MAP_ANDROID_CALLBACK, "onAndroidCallback")
|
|
151
|
+
.build();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
//region React Methods
|
|
155
|
+
public static final int METHOD_FEATURES = 103;
|
|
156
|
+
public static final int METHOD_GET_CLUSTER_EXPANSION_ZOOM = 104;
|
|
157
|
+
public static final int METHOD_GET_CLUSTER_LEAVES = 105;
|
|
158
|
+
public static final int METHOD_GET_CLUSTER_CHILDREN = 106;
|
|
159
|
+
|
|
160
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
161
|
+
public static final int METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID = 107;
|
|
162
|
+
public static final int METHOD_GET_CLUSTER_LEAVES_BY_ID = 108;
|
|
163
|
+
public static final int METHOD_GET_CLUSTER_CHILDREN_BY_ID = 109;
|
|
164
|
+
|
|
165
|
+
@Nullable
|
|
166
|
+
@Override
|
|
167
|
+
public Map<String, Integer> getCommandsMap() {
|
|
168
|
+
return MapBuilder.<String, Integer>builder()
|
|
169
|
+
.put("features", METHOD_FEATURES)
|
|
170
|
+
.put("getClusterExpansionZoom", METHOD_GET_CLUSTER_EXPANSION_ZOOM)
|
|
171
|
+
.put("getClusterLeaves", METHOD_GET_CLUSTER_LEAVES)
|
|
172
|
+
.put("getClusterChildren", METHOD_GET_CLUSTER_CHILDREN)
|
|
173
|
+
|
|
174
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
175
|
+
.put("getClusterExpansionZoomById", METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID)
|
|
176
|
+
.put("getClusterLeavesById", METHOD_GET_CLUSTER_LEAVES_BY_ID)
|
|
177
|
+
.put("getClusterChildrenById", METHOD_GET_CLUSTER_CHILDREN_BY_ID)
|
|
178
|
+
|
|
179
|
+
.build();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@Override
|
|
183
|
+
public void receiveCommand(RCTMGLShapeSource source, int commandID, @Nullable ReadableArray args) {
|
|
184
|
+
switch (commandID) {
|
|
185
|
+
case METHOD_FEATURES:
|
|
186
|
+
source.querySourceFeatures(
|
|
187
|
+
args.getString(0),
|
|
188
|
+
ExpressionParser.from(args.getArray(1))
|
|
189
|
+
);
|
|
190
|
+
break;
|
|
191
|
+
case METHOD_GET_CLUSTER_EXPANSION_ZOOM:
|
|
192
|
+
source.getClusterExpansionZoom(args.getString(0), args.getString(1));
|
|
193
|
+
break;
|
|
194
|
+
case METHOD_GET_CLUSTER_LEAVES:
|
|
195
|
+
source.getClusterLeaves(
|
|
196
|
+
args.getString(0),
|
|
197
|
+
args.getString(1),
|
|
198
|
+
args.getInt(2),
|
|
199
|
+
args.getInt((3))
|
|
200
|
+
);
|
|
201
|
+
break;
|
|
202
|
+
case METHOD_GET_CLUSTER_CHILDREN:
|
|
203
|
+
source.getClusterChildren(
|
|
204
|
+
args.getString(0),
|
|
205
|
+
args.getString(1)
|
|
206
|
+
);
|
|
207
|
+
break;
|
|
208
|
+
case METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID:
|
|
209
|
+
source.getClusterExpansionZoomById(args.getString(0), args.getInt(1));
|
|
210
|
+
break;
|
|
211
|
+
case METHOD_GET_CLUSTER_LEAVES_BY_ID:
|
|
212
|
+
source.getClusterLeavesById(
|
|
213
|
+
args.getString(0),
|
|
214
|
+
args.getInt(1),
|
|
215
|
+
args.getInt(2),
|
|
216
|
+
args.getInt((3))
|
|
217
|
+
);
|
|
218
|
+
break;
|
|
219
|
+
case METHOD_GET_CLUSTER_CHILDREN_BY_ID:
|
|
220
|
+
source.getClusterChildrenById(
|
|
221
|
+
args.getString(0),
|
|
222
|
+
args.getInt(1)
|
|
223
|
+
);
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.styles.sources;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
|
|
5
|
+
import com.mapbox.mapboxsdk.style.sources.Source;
|
|
6
|
+
import com.mapbox.mapboxsdk.style.sources.TileSet;
|
|
7
|
+
|
|
8
|
+
import java.util.Collection;
|
|
9
|
+
|
|
10
|
+
@SuppressWarnings("unused")
|
|
11
|
+
public abstract class RCTMGLTileSource<T extends Source> extends RCTSource<T> {
|
|
12
|
+
static final String TILE_SPEC_VERSION = "2.1.0";
|
|
13
|
+
|
|
14
|
+
private String mURL;
|
|
15
|
+
private Collection<String> mTileUrlTemplates;
|
|
16
|
+
private String mAttribution;
|
|
17
|
+
|
|
18
|
+
private Integer mMinZoomLevel;
|
|
19
|
+
private Integer mMaxZoomLevel;
|
|
20
|
+
|
|
21
|
+
private boolean mIsTmsSource;
|
|
22
|
+
|
|
23
|
+
public RCTMGLTileSource(Context context) {
|
|
24
|
+
super(context);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public String getURL() {
|
|
28
|
+
return mURL;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public void setURL(String mURL) {
|
|
32
|
+
this.mURL = mURL;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public String getAttribution() {
|
|
36
|
+
return mAttribution;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public void setAttribution(String mAttribution) {
|
|
40
|
+
this.mAttribution = mAttribution;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public Integer getMinZoomLevel() {
|
|
44
|
+
return mMinZoomLevel;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public void setMinZoomLevel(Integer mMinZoomLevel) {
|
|
48
|
+
this.mMinZoomLevel = mMinZoomLevel;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public Integer getMaxZoomLevel() {
|
|
52
|
+
return mMaxZoomLevel;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public void setMaxZoomLevel(Integer mMaxZoomLevel) {
|
|
56
|
+
this.mMaxZoomLevel = mMaxZoomLevel;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public boolean getTMS() {
|
|
60
|
+
return mIsTmsSource;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public void setTMS(boolean mIsTmsSource) {
|
|
64
|
+
this.mIsTmsSource = mIsTmsSource;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public Collection<String> getTileUrlTemplates() {
|
|
68
|
+
return mTileUrlTemplates;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public void setTileUrlTemplates(Collection<String> tileUrlTemplates) {
|
|
72
|
+
this.mTileUrlTemplates = tileUrlTemplates;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public TileSet buildTileset() {
|
|
76
|
+
String[] tileUrlTemplates = mTileUrlTemplates.toArray(new String[mTileUrlTemplates.size()]);
|
|
77
|
+
TileSet tileSet = new TileSet(TILE_SPEC_VERSION, tileUrlTemplates);
|
|
78
|
+
|
|
79
|
+
if (mMinZoomLevel != null) {
|
|
80
|
+
tileSet.setMinZoom(mMinZoomLevel.floatValue());
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (mMaxZoomLevel != null) {
|
|
84
|
+
tileSet.setMaxZoom(mMaxZoomLevel.floatValue());
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (mIsTmsSource) {
|
|
88
|
+
tileSet.setScheme("tms");
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (mAttribution != null) {
|
|
92
|
+
tileSet.setAttribution(mAttribution);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return tileSet;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
package com.mapbox.rctmgl.components.styles.sources;
|
|
2
|
+
|
|
3
|
+
import android.view.View;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
7
|
+
import com.facebook.react.bridge.ReadableType;
|
|
8
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
9
|
+
import com.mapbox.rctmgl.components.AbstractEventEmitter;
|
|
10
|
+
|
|
11
|
+
import java.util.ArrayList;
|
|
12
|
+
import java.util.List;
|
|
13
|
+
|
|
14
|
+
public abstract class RCTMGLTileSourceManager<T extends RCTMGLTileSource> extends AbstractEventEmitter<T> {
|
|
15
|
+
|
|
16
|
+
RCTMGLTileSourceManager(ReactApplicationContext reactApplicationContext) {
|
|
17
|
+
super(reactApplicationContext);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@Override
|
|
21
|
+
public View getChildAt(T source, int childPosition) {
|
|
22
|
+
return source.getLayerAt(childPosition);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Override
|
|
26
|
+
public int getChildCount(T source) {
|
|
27
|
+
return source.getLayerCount();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
public void addView(T source, View childView, int childPosition) {
|
|
32
|
+
source.addLayer(childView, childPosition);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public void removeViewAt(T source, int childPosition) {
|
|
37
|
+
source.removeLayer(childPosition);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactProp(name="id")
|
|
41
|
+
public void setID(T source, String id) {
|
|
42
|
+
source.setID(id);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@ReactProp(name="url")
|
|
46
|
+
public void setURL(T source, String url) {
|
|
47
|
+
source.setURL(url);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@ReactProp(name="tileUrlTemplates")
|
|
51
|
+
public void setTileUrlTemplates(T source, ReadableArray tileUrlTemplates) {
|
|
52
|
+
List<String> urls = new ArrayList<>();
|
|
53
|
+
for (int i = 0; i < tileUrlTemplates.size(); i++) {
|
|
54
|
+
if (tileUrlTemplates.getType(0) == ReadableType.String) {
|
|
55
|
+
urls.add(tileUrlTemplates.getString(i));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
source.setTileUrlTemplates(urls);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@ReactProp(name="attribution")
|
|
62
|
+
public void setAttribution(T source, String attribution) {
|
|
63
|
+
source.setAttribution(attribution);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@ReactProp(name="minZoomLevel")
|
|
67
|
+
public void setMinZoomLevel(T source, int minZoomLevel) {
|
|
68
|
+
source.setMinZoomLevel(minZoomLevel);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@ReactProp(name="maxZoomLevel")
|
|
72
|
+
public void setMaxZoomLevel(T source, int maxZoomLevel) {
|
|
73
|
+
source.setMaxZoomLevel(maxZoomLevel);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@ReactProp(name="tms")
|
|
77
|
+
public void setTMS(T source, boolean tms) {
|
|
78
|
+
source.setTMS(tms);
|
|
79
|
+
}
|
|
80
|
+
}
|