@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,180 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RCTMGLShapeSource.m
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 9/19/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RCTMGLShapeSource.h"
|
|
10
|
+
#import "RCTMGLUtils.h"
|
|
11
|
+
#import "RCTMGLMapView.h"
|
|
12
|
+
|
|
13
|
+
@implementation RCTMGLShapeSource
|
|
14
|
+
|
|
15
|
+
static UIImage * _placeHolderImage;
|
|
16
|
+
|
|
17
|
+
- (void)setUrl: (NSString*) url
|
|
18
|
+
{
|
|
19
|
+
_url = url;
|
|
20
|
+
if (self.source != nil) {
|
|
21
|
+
MGLShapeSource *source = (MGLShapeSource *)self.source;
|
|
22
|
+
[source setURL: url == nil ? nil : [NSURL URLWithString:url]];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
- (void)setShape:(NSString *)shape
|
|
27
|
+
{
|
|
28
|
+
_shape = shape;
|
|
29
|
+
|
|
30
|
+
if (self.source != nil) {
|
|
31
|
+
MGLShapeSource *source = (MGLShapeSource *)self.source;
|
|
32
|
+
[source setShape: shape == nil ? nil : [RCTMGLUtils shapeFromGeoJSON:_shape]];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)addToMap
|
|
37
|
+
{
|
|
38
|
+
if (self.map.style == nil) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
[super addToMap];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (void)removeFromMap
|
|
45
|
+
{
|
|
46
|
+
if (self.map.style == nil) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[super removeFromMap];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
- (nullable MGLSource*)makeSource
|
|
54
|
+
{
|
|
55
|
+
NSDictionary<MGLShapeSourceOption, id> *options = [self _getOptions];
|
|
56
|
+
|
|
57
|
+
if (_shape != nil) {
|
|
58
|
+
MGLShape *shape = [RCTMGLUtils shapeFromGeoJSON:_shape];
|
|
59
|
+
return [[MGLShapeSource alloc] initWithIdentifier:self.id shape:shape options:options];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (_url != nil) {
|
|
63
|
+
NSURL *url = [[NSURL alloc] initWithString:_url];
|
|
64
|
+
return [[MGLShapeSource alloc] initWithIdentifier:self.id URL:url options:options];
|
|
65
|
+
}
|
|
66
|
+
return nil;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
- (NSDictionary<MGLShapeSourceOption, id>*)_getOptions
|
|
70
|
+
{
|
|
71
|
+
NSMutableDictionary<MGLShapeSourceOption, id> *options = [[NSMutableDictionary alloc] init];
|
|
72
|
+
|
|
73
|
+
if (_cluster != nil) {
|
|
74
|
+
options[MGLShapeSourceOptionClustered] = [NSNumber numberWithBool:[_cluster intValue] == 1];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (_clusterRadius != nil) {
|
|
78
|
+
options[MGLShapeSourceOptionClusterRadius] = _clusterRadius;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (_clusterMaxZoomLevel != nil) {
|
|
82
|
+
options[MGLShapeSourceOptionMaximumZoomLevelForClustering] = _clusterMaxZoomLevel;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (_maxZoomLevel != nil) {
|
|
86
|
+
options[MGLShapeSourceOptionMaximumZoomLevel] = _maxZoomLevel;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (_buffer != nil) {
|
|
90
|
+
options[MGLShapeSourceOptionBuffer] = _buffer;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (_tolerance != nil) {
|
|
94
|
+
options[MGLShapeSourceOptionSimplificationTolerance] = _tolerance;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (_lineMetrics != nil) {
|
|
98
|
+
options[MGLShapeSourceOptionLineDistanceMetrics] = _lineMetrics;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return options;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
- (nonnull NSArray<id <MGLFeature>> *)featuresMatchingPredicate:(nullable NSPredicate *)predicate
|
|
105
|
+
{
|
|
106
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
107
|
+
|
|
108
|
+
return [shapeSource featuresMatchingPredicate:predicate];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
- (double)getClusterExpansionZoom:(nonnull NSString *)featureJSON
|
|
112
|
+
{
|
|
113
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
114
|
+
|
|
115
|
+
MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
|
|
116
|
+
|
|
117
|
+
return [shapeSource zoomLevelForExpandingCluster:(MGLPointFeatureCluster *)feature];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
- (nonnull NSArray<id <MGLFeature>> *)getClusterLeaves:(nonnull NSString *)featureJSON
|
|
121
|
+
number:(NSUInteger)number
|
|
122
|
+
offset:(NSUInteger)offset
|
|
123
|
+
{
|
|
124
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
125
|
+
|
|
126
|
+
MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
|
|
127
|
+
|
|
128
|
+
MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)feature;
|
|
129
|
+
return [shapeSource leavesOfCluster:cluster offset:offset limit:number];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
- (nonnull NSArray<id <MGLFeature>> *)getClusterChildren:(nonnull NSString *)featureJSON
|
|
133
|
+
{
|
|
134
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
135
|
+
|
|
136
|
+
MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
|
|
137
|
+
|
|
138
|
+
MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)feature;
|
|
139
|
+
return [shapeSource childrenOfCluster:cluster];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
144
|
+
- (double)getClusterExpansionZoomById:(nonnull NSNumber *)clusterId
|
|
145
|
+
{
|
|
146
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
147
|
+
NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate: [NSPredicate predicateWithFormat:@"%K = %i", @"cluster_id", clusterId.intValue]];
|
|
148
|
+
if (features.count == 0) {
|
|
149
|
+
return -1;
|
|
150
|
+
}
|
|
151
|
+
return [shapeSource zoomLevelForExpandingCluster:(MGLPointFeatureCluster *)features[0]];
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
155
|
+
- (nonnull NSArray<id <MGLFeature>> *)getClusterLeavesById:(nonnull NSNumber *)clusterId
|
|
156
|
+
number:(NSUInteger)number
|
|
157
|
+
offset:(NSUInteger)offset
|
|
158
|
+
{
|
|
159
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
160
|
+
|
|
161
|
+
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"cluster_id == %@", clusterId];
|
|
162
|
+
NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate:predicate];
|
|
163
|
+
|
|
164
|
+
MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)features[0];
|
|
165
|
+
return [shapeSource leavesOfCluster:cluster offset:offset limit:number];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
169
|
+
- (nonnull NSArray<id <MGLFeature>> *)getClusterChildrenById:(nonnull NSNumber *)clusterId
|
|
170
|
+
{
|
|
171
|
+
MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
|
|
172
|
+
|
|
173
|
+
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"cluster_id == %@", clusterId];
|
|
174
|
+
NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate:predicate];
|
|
175
|
+
|
|
176
|
+
MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)features[0];
|
|
177
|
+
return [shapeSource childrenOfCluster:cluster];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RCTMGLShapeSourceManager.h
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 9/19/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "ViewManager.h"
|
|
10
|
+
#import <React/RCTBridgeModule.h>
|
|
11
|
+
|
|
12
|
+
@interface RCTMGLShapeSourceManager : ViewManager<RCTBridgeModule>
|
|
13
|
+
|
|
14
|
+
@end
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RCTMGLShapeSourceManager.m
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 9/19/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#import <React/RCTUIManager.h>
|
|
9
|
+
|
|
10
|
+
#import "RCTMGLShapeSourceManager.h"
|
|
11
|
+
#import "RCTMGLShapeSource.h"
|
|
12
|
+
|
|
13
|
+
#import "FilterParser.h"
|
|
14
|
+
|
|
15
|
+
@implementation RCTMGLShapeSourceManager
|
|
16
|
+
|
|
17
|
+
RCT_EXPORT_MODULE(RCTMGLShapeSource)
|
|
18
|
+
|
|
19
|
+
RCT_EXPORT_VIEW_PROPERTY(id, NSString)
|
|
20
|
+
RCT_EXPORT_VIEW_PROPERTY(url, NSString)
|
|
21
|
+
RCT_EXPORT_VIEW_PROPERTY(shape, NSString)
|
|
22
|
+
|
|
23
|
+
RCT_EXPORT_VIEW_PROPERTY(cluster, NSNumber)
|
|
24
|
+
RCT_EXPORT_VIEW_PROPERTY(clusterRadius, NSNumber)
|
|
25
|
+
RCT_EXPORT_VIEW_PROPERTY(clusterMaxZoomLevel, NSNumber)
|
|
26
|
+
RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber)
|
|
27
|
+
RCT_EXPORT_VIEW_PROPERTY(buffer, NSNumber)
|
|
28
|
+
RCT_EXPORT_VIEW_PROPERTY(tolerance, NSNumber)
|
|
29
|
+
RCT_EXPORT_VIEW_PROPERTY(lineMetrics, NSNumber)
|
|
30
|
+
RCT_EXPORT_VIEW_PROPERTY(images, NSDictionary)
|
|
31
|
+
RCT_EXPORT_VIEW_PROPERTY(nativeImages, NSArray)
|
|
32
|
+
RCT_EXPORT_VIEW_PROPERTY(hasPressListener, BOOL)
|
|
33
|
+
RCT_EXPORT_VIEW_PROPERTY(hitbox, NSDictionary)
|
|
34
|
+
RCT_REMAP_VIEW_PROPERTY(onMapboxShapeSourcePress, onPress, RCTBubblingEventBlock)
|
|
35
|
+
|
|
36
|
+
- (UIView*)view
|
|
37
|
+
{
|
|
38
|
+
RCTMGLShapeSource *source = [RCTMGLShapeSource new];
|
|
39
|
+
source.bridge = self.bridge;
|
|
40
|
+
return source;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
RCT_EXPORT_METHOD(features:(nonnull NSNumber*)reactTag
|
|
44
|
+
withFilter:(NSArray *)filter
|
|
45
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
46
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
47
|
+
{
|
|
48
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
49
|
+
RCTMGLShapeSource* shapeSource = viewRegistry[reactTag];
|
|
50
|
+
|
|
51
|
+
if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
|
|
52
|
+
RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
NSPredicate* predicate = [FilterParser parse:filter];
|
|
57
|
+
NSArray<id<MGLFeature>> *shapes = [shapeSource featuresMatchingPredicate: predicate];
|
|
58
|
+
|
|
59
|
+
NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
|
|
60
|
+
for (int i = 0; i < shapes.count; i++) {
|
|
61
|
+
[features addObject:shapes[i].geoJSONDictionary];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
resolve(@{
|
|
65
|
+
@"data": @{ @"type": @"FeatureCollection", @"features": features }
|
|
66
|
+
});
|
|
67
|
+
}];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
RCT_EXPORT_METHOD(getClusterExpansionZoom:(nonnull NSNumber*)reactTag
|
|
71
|
+
featureJSON:(nonnull NSString*)featureJSON
|
|
72
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
73
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
74
|
+
{
|
|
75
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
76
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
77
|
+
|
|
78
|
+
if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
|
|
79
|
+
RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
double zoom = [shapeSource getClusterExpansionZoom: featureJSON];
|
|
84
|
+
if (zoom == -1) {
|
|
85
|
+
reject(@"zoom_error", [NSString stringWithFormat:@"Could not get zoom for cluster %@", featureJSON], nil);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
resolve(@{@"data":@(zoom)});
|
|
89
|
+
}];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
RCT_EXPORT_METHOD(getClusterLeaves:(nonnull NSNumber*)reactTag
|
|
94
|
+
featureJSON:(nonnull NSString*)featureJSON
|
|
95
|
+
number:(NSUInteger) number
|
|
96
|
+
offset:(NSUInteger) offset
|
|
97
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
98
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
99
|
+
{
|
|
100
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
101
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
102
|
+
|
|
103
|
+
NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterLeaves:featureJSON number:number offset:offset];
|
|
104
|
+
|
|
105
|
+
NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
|
|
106
|
+
for (int i = 0; i < shapes.count; i++) {
|
|
107
|
+
[features addObject:shapes[i].geoJSONDictionary];
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
resolve(@{
|
|
111
|
+
@"data": @{ @"type": @"FeatureCollection", @"features": features }
|
|
112
|
+
});
|
|
113
|
+
}];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
RCT_EXPORT_METHOD(getClusterChildren:(nonnull NSNumber*)reactTag
|
|
117
|
+
featureJSON:(nonnull NSString*)featureJSON
|
|
118
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
119
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
120
|
+
{
|
|
121
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
122
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
123
|
+
|
|
124
|
+
NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterChildren: featureJSON];
|
|
125
|
+
|
|
126
|
+
NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
|
|
127
|
+
for (int i = 0; i < shapes.count; i++) {
|
|
128
|
+
[features addObject:shapes[i].geoJSONDictionary];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
resolve(@{
|
|
132
|
+
@"data": @{ @"type": @"FeatureCollection", @"features": features }
|
|
133
|
+
});
|
|
134
|
+
}];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
138
|
+
RCT_EXPORT_METHOD(getClusterExpansionZoomById:(nonnull NSNumber*)reactTag
|
|
139
|
+
clusterId:(nonnull NSNumber*)clusterId
|
|
140
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
141
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
142
|
+
{
|
|
143
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
144
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
145
|
+
|
|
146
|
+
if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
|
|
147
|
+
RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
double zoom = [shapeSource getClusterExpansionZoomById:clusterId];
|
|
152
|
+
if (zoom == -1) {
|
|
153
|
+
reject(@"zoom_error", [NSString stringWithFormat:@"Could not get zoom for cluster id %@", clusterId], nil);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
resolve(@{@"data":@(zoom)});
|
|
157
|
+
}];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
161
|
+
RCT_EXPORT_METHOD(getClusterLeavesById:(nonnull NSNumber*)reactTag
|
|
162
|
+
clusterId:(nonnull NSNumber *)clusterId
|
|
163
|
+
number:(NSUInteger) number
|
|
164
|
+
offset:(NSUInteger) offset
|
|
165
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
166
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
167
|
+
{
|
|
168
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
169
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
170
|
+
|
|
171
|
+
NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterLeavesById:clusterId number:number offset:offset];
|
|
172
|
+
|
|
173
|
+
NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
|
|
174
|
+
for (int i = 0; i < shapes.count; i++) {
|
|
175
|
+
[features addObject:shapes[i].geoJSONDictionary];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
resolve(@{
|
|
179
|
+
@"data": @{ @"type": @"FeatureCollection", @"features": features }
|
|
180
|
+
});
|
|
181
|
+
}];
|
|
182
|
+
}
|
|
183
|
+
// Deprecated. Will be removed in 9+ ver.
|
|
184
|
+
RCT_EXPORT_METHOD(getClusterChildrenById:(nonnull NSNumber*)reactTag
|
|
185
|
+
clusterId:(nonnull NSNumber *)clusterId
|
|
186
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
187
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
188
|
+
{
|
|
189
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
|
|
190
|
+
RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
|
|
191
|
+
|
|
192
|
+
NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterChildrenById: clusterId];
|
|
193
|
+
|
|
194
|
+
NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
|
|
195
|
+
for (int i = 0; i < shapes.count; i++) {
|
|
196
|
+
[features addObject:shapes[i].geoJSONDictionary];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
resolve(@{
|
|
200
|
+
@"data": @{ @"type": @"FeatureCollection", @"features": features }
|
|
201
|
+
});
|
|
202
|
+
}];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//
|
|
2
|
+
// BaseSource.h
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 9/8/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import <React/RCTComponent.h>
|
|
10
|
+
#import "RCTMGLLayer.h"
|
|
11
|
+
#import <UIKit/UIKit.h>
|
|
12
|
+
@import Mapbox;
|
|
13
|
+
|
|
14
|
+
@interface RCTMGLSource : UIView
|
|
15
|
+
|
|
16
|
+
extern NSString * _Nonnull const DEFAULT_SOURCE_ID;
|
|
17
|
+
|
|
18
|
+
@property (nonatomic, strong) NSMutableArray<id<RCTComponent>> *reactSubviews;
|
|
19
|
+
@property (nonatomic, strong) NSMutableArray<RCTMGLLayer*> *layers;
|
|
20
|
+
@property (nonatomic, strong) MGLSource *source;
|
|
21
|
+
@property (nonatomic, strong) RCTMGLMapView *map;
|
|
22
|
+
@property (nonatomic, strong) NSDictionary<NSString *, NSNumber *> *hitbox;
|
|
23
|
+
|
|
24
|
+
@property (nonatomic, copy) NSString *id;
|
|
25
|
+
@property (nonatomic, assign) BOOL hasPressListener;
|
|
26
|
+
@property (nonatomic, copy) RCTBubblingEventBlock onPress;
|
|
27
|
+
|
|
28
|
+
- (void)addToMap;
|
|
29
|
+
- (void)removeFromMap;
|
|
30
|
+
- (nullable MGLSource*)makeSource;
|
|
31
|
+
- (NSArray<NSString *> *)getLayerIDs;
|
|
32
|
+
|
|
33
|
+
+ (BOOL)isDefaultSource:(NSString*)sourceID;
|
|
34
|
+
|
|
35
|
+
@end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
//
|
|
2
|
+
// BaseSource.m
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 9/8/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RCTMGLSource.h"
|
|
10
|
+
#import <React/UIView+React.h>
|
|
11
|
+
#import "RCTMGLMapView.h"
|
|
12
|
+
#import <React/RCTLog.h>
|
|
13
|
+
|
|
14
|
+
@implementation RCTMGLSource
|
|
15
|
+
|
|
16
|
+
double const DEFAULT_HITBOX_AREA = 44.0;
|
|
17
|
+
NSString *const DEFAULT_SOURCE_ID = @"composite";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
21
|
+
{
|
|
22
|
+
if (self = [super initWithFrame:frame]) {
|
|
23
|
+
_layers = [[NSMutableArray alloc] init];
|
|
24
|
+
_reactSubviews = [[NSMutableArray alloc] init];
|
|
25
|
+
_hitbox = @{ @"width": @(DEFAULT_HITBOX_AREA), @"height": @(DEFAULT_HITBOX_AREA) };
|
|
26
|
+
}
|
|
27
|
+
return self;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#pragma clang diagnostic push
|
|
31
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
32
|
+
- (void)insertReactSubview:(id<RCTComponent>)subview atIndex:(NSInteger)atIndex {
|
|
33
|
+
if ([subview isKindOfClass:[RCTMGLLayer class]]) {
|
|
34
|
+
RCTMGLLayer *layer = (RCTMGLLayer*)subview;
|
|
35
|
+
|
|
36
|
+
if (_map.style != nil) {
|
|
37
|
+
[layer addToMap:_map style:_map.style];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[_layers addObject:layer];
|
|
41
|
+
[_reactSubviews insertObject:layer atIndex:atIndex];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
#pragma clang diagnostic pop
|
|
45
|
+
|
|
46
|
+
#pragma clang diagnostic push
|
|
47
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
48
|
+
- (void)removeReactSubview:(id<RCTComponent>)subview {
|
|
49
|
+
if ([subview isKindOfClass:[RCTMGLLayer class]]) {
|
|
50
|
+
RCTMGLLayer *layer = (RCTMGLLayer*)subview;
|
|
51
|
+
[layer removeFromMap:_map.style];
|
|
52
|
+
[_layers removeObject:layer];
|
|
53
|
+
[_reactSubviews removeObject:layer];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
#pragma clang diagnostic pop
|
|
57
|
+
|
|
58
|
+
#pragma clang diagnostic push
|
|
59
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
60
|
+
- (NSArray<id<RCTComponent>> *)reactSubviews {
|
|
61
|
+
return _reactSubviews;
|
|
62
|
+
}
|
|
63
|
+
#pragma clang diagnostic pop
|
|
64
|
+
|
|
65
|
+
- (void)setMap:(RCTMGLMapView *)map
|
|
66
|
+
{
|
|
67
|
+
if (map == nil) {
|
|
68
|
+
[self removeFromMap];
|
|
69
|
+
_map = nil;
|
|
70
|
+
} else {
|
|
71
|
+
_map = map;
|
|
72
|
+
[self addToMap];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
- (void)addToMap
|
|
77
|
+
{
|
|
78
|
+
if (_map.style == nil) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
MGLSource *existingSource = [_map.style sourceWithIdentifier:_id];
|
|
83
|
+
if (existingSource != nil) {
|
|
84
|
+
_source = existingSource;
|
|
85
|
+
} else {
|
|
86
|
+
_source = [self makeSource];
|
|
87
|
+
if (_source != nil) {
|
|
88
|
+
[_map.style addSource:_source];
|
|
89
|
+
} else {
|
|
90
|
+
RCTLogError(@"Could not create source with id:%@. Make sure url/shape is provided", _id);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (_layers.count > 0) {
|
|
95
|
+
for (int i = 0; i < _layers.count; i++) {
|
|
96
|
+
RCTMGLLayer *layer = [_layers objectAtIndex:i];
|
|
97
|
+
[layer addToMap:_map style:_map.style];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
- (void)removeFromMap
|
|
103
|
+
{
|
|
104
|
+
if (_map.style == nil) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
for (int i = 0; i < _layers.count; i++) {
|
|
109
|
+
RCTMGLLayer *layer = [_layers objectAtIndex:i];
|
|
110
|
+
[layer removeFromMap:_map.style];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (![RCTMGLSource isDefaultSource:_id]) {
|
|
114
|
+
if (_source != nil) {
|
|
115
|
+
[_map.style removeSource:_source];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
- (nullable MGLSource*)makeSource
|
|
121
|
+
{
|
|
122
|
+
@throw [NSException exceptionWithName:NSInternalInconsistencyException
|
|
123
|
+
reason:[NSString stringWithFormat:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]
|
|
124
|
+
userInfo:nil];
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
- (NSArray<NSString *> *)getLayerIDs
|
|
128
|
+
{
|
|
129
|
+
NSMutableArray *layerIDs = [[NSMutableArray alloc] init];
|
|
130
|
+
|
|
131
|
+
for (RCTMGLLayer *layer in _layers) {
|
|
132
|
+
[layerIDs addObject:layer.id];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return layerIDs;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
+ (BOOL)isDefaultSource:(NSString *)sourceID
|
|
139
|
+
{
|
|
140
|
+
return [sourceID isEqualToString:DEFAULT_SOURCE_ID];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@end
|