@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,536 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RCTMGLMapView.m
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 8/23/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RCTMGLMapView.h"
|
|
10
|
+
#import "CameraUpdateQueue.h"
|
|
11
|
+
#import "RCTMGLUtils.h"
|
|
12
|
+
#import "RNMBImageUtils.h"
|
|
13
|
+
#import "RCTMGLImages.h"
|
|
14
|
+
#import <React/UIView+React.h>
|
|
15
|
+
#import "RCTMGLNativeUserLocation.h"
|
|
16
|
+
#import "RCTMGLLogging.h"
|
|
17
|
+
|
|
18
|
+
@implementation RCTMGLMapView
|
|
19
|
+
{
|
|
20
|
+
BOOL _pendingInitialLayout;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static double const DEG2RAD = M_PI / 180;
|
|
24
|
+
static double const LAT_MAX = 85.051128779806604;
|
|
25
|
+
static double const TILE_SIZE = 256;
|
|
26
|
+
static double const EARTH_RADIUS_M = 6378137;
|
|
27
|
+
static double const M2PI = M_PI * 2;
|
|
28
|
+
|
|
29
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
30
|
+
{
|
|
31
|
+
if (self = [super initWithFrame:frame]) {
|
|
32
|
+
_pendingInitialLayout = YES;
|
|
33
|
+
_cameraUpdateQueue = [[CameraUpdateQueue alloc] init];
|
|
34
|
+
_sources = [[NSMutableArray alloc] init];
|
|
35
|
+
_images = [[NSMutableArray alloc] init];
|
|
36
|
+
_layers = [[NSMutableArray alloc] init];
|
|
37
|
+
_pointAnnotations = [[NSMutableArray alloc] init];
|
|
38
|
+
_reactSubviews = [[NSMutableArray alloc] init];
|
|
39
|
+
_layerWaiters = [[NSMutableDictionary alloc] init];
|
|
40
|
+
_styleWaiters = [[NSMutableArray alloc] init];
|
|
41
|
+
_logging = [[RCTMGLLogging alloc] init];
|
|
42
|
+
}
|
|
43
|
+
return self;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (void)layoutSubviews
|
|
47
|
+
{
|
|
48
|
+
[super layoutSubviews];
|
|
49
|
+
if (_pendingInitialLayout) {
|
|
50
|
+
_pendingInitialLayout = NO;
|
|
51
|
+
|
|
52
|
+
[ _reactCamera initialLayout];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
- (void)invalidate
|
|
57
|
+
{
|
|
58
|
+
if (_reactSubviews.count == 0) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
for (int i = 0; i < _reactSubviews.count; i++) {
|
|
62
|
+
[self removeFromMap:_reactSubviews[i]];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
- (void)layerAdded:(MGLStyleLayer*) layer
|
|
67
|
+
{
|
|
68
|
+
NSString* layerID = layer.identifier;
|
|
69
|
+
NSMutableArray* waiters = [_layerWaiters valueForKey:layerID];
|
|
70
|
+
if (waiters) {
|
|
71
|
+
for (FoundLayerBlock foundLayerBlock in waiters) {
|
|
72
|
+
foundLayerBlock(layer);
|
|
73
|
+
}
|
|
74
|
+
[_layerWaiters removeObjectForKey:layerID];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
- (void)waitForLayerWithID:(nonnull NSString*)layerID then:(void (^)(MGLStyleLayer* layer))foundLayer {
|
|
79
|
+
if (self.style) {
|
|
80
|
+
MGLStyleLayer* layer = [self.style layerWithIdentifier:layerID];
|
|
81
|
+
if (layer) {
|
|
82
|
+
foundLayer(layer);
|
|
83
|
+
} else {
|
|
84
|
+
NSMutableArray* existingWaiters = [_layerWaiters valueForKey:layerID];
|
|
85
|
+
|
|
86
|
+
NSMutableArray* waiters = existingWaiters;
|
|
87
|
+
if (waiters == nil) {
|
|
88
|
+
waiters = [[NSMutableArray alloc] init];
|
|
89
|
+
}
|
|
90
|
+
[waiters addObject:foundLayer];
|
|
91
|
+
if (! existingWaiters) {
|
|
92
|
+
[_layerWaiters setObject:waiters forKey:layerID];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
// TODO
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
- (void)getStyle:(void (^)(MGLStyle* style))onStyleLoaded {
|
|
101
|
+
if (self.style) {
|
|
102
|
+
onStyleLoaded(self.style);
|
|
103
|
+
} else {
|
|
104
|
+
[_styleWaiters addObject:onStyleLoaded];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
- (void)notifyStyleLoaded {
|
|
109
|
+
if (!self.style) return;
|
|
110
|
+
for (StyleLoadedBlock styleLoadedBlock in self.styleWaiters) {
|
|
111
|
+
styleLoadedBlock(self.style);
|
|
112
|
+
}
|
|
113
|
+
[self.styleWaiters removeAllObjects];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
- (void) addToMap:(id<RCTComponent>)subview
|
|
118
|
+
{
|
|
119
|
+
if ([subview isKindOfClass:[RCTMGLSource class]]) {
|
|
120
|
+
RCTMGLSource *source = (RCTMGLSource*)subview;
|
|
121
|
+
source.map = self;
|
|
122
|
+
[_sources addObject:(RCTMGLSource*)subview];
|
|
123
|
+
} else if ([subview isKindOfClass:[RCTMGLLight class]]) {
|
|
124
|
+
RCTMGLLight *light = (RCTMGLLight*)subview;
|
|
125
|
+
_light = light;
|
|
126
|
+
_light.map = self;
|
|
127
|
+
} else if ([subview isKindOfClass:[RCTMGLNativeUserLocation class]]) {
|
|
128
|
+
RCTMGLNativeUserLocation *nativeUserLocation = (RCTMGLNativeUserLocation*)subview;
|
|
129
|
+
nativeUserLocation.map = self;
|
|
130
|
+
} else if ([subview isKindOfClass:[RCTMGLPointAnnotation class]]) {
|
|
131
|
+
RCTMGLPointAnnotation *pointAnnotation = (RCTMGLPointAnnotation *)subview;
|
|
132
|
+
pointAnnotation.map = self;
|
|
133
|
+
[_pointAnnotations addObject:pointAnnotation];
|
|
134
|
+
} else if ([subview isKindOfClass:[RCTMGLCamera class]]) {
|
|
135
|
+
RCTMGLCamera *camera = (RCTMGLCamera *)subview;
|
|
136
|
+
camera.map = self;
|
|
137
|
+
} else if ([subview isKindOfClass:[RCTMGLImages class]]) {
|
|
138
|
+
RCTMGLImages *images = (RCTMGLImages*)subview;
|
|
139
|
+
images.map = self;
|
|
140
|
+
[_images addObject:images];
|
|
141
|
+
} else if ([subview isKindOfClass:[RCTMGLLayer class]]) {
|
|
142
|
+
RCTMGLLayer *layer = (RCTMGLLayer*)subview;
|
|
143
|
+
layer.map = self;
|
|
144
|
+
[_layers addObject:layer];
|
|
145
|
+
} else {
|
|
146
|
+
NSArray<id<RCTComponent>> *childSubviews = [subview reactSubviews];
|
|
147
|
+
|
|
148
|
+
for (int i = 0; i < childSubviews.count; i++) {
|
|
149
|
+
[self addToMap:childSubviews[i]];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
- (void) removeFromMap:(id<RCTComponent>)subview
|
|
155
|
+
{
|
|
156
|
+
if ([subview isKindOfClass:[RCTMGLSource class]]) {
|
|
157
|
+
RCTMGLSource *source = (RCTMGLSource*)subview;
|
|
158
|
+
source.map = nil;
|
|
159
|
+
[_sources removeObject:source];
|
|
160
|
+
} else if ([subview isKindOfClass:[RCTMGLPointAnnotation class]]) {
|
|
161
|
+
RCTMGLPointAnnotation *pointAnnotation = (RCTMGLPointAnnotation *)subview;
|
|
162
|
+
pointAnnotation.map = nil;
|
|
163
|
+
[_pointAnnotations removeObject:pointAnnotation];
|
|
164
|
+
} else if ([subview isKindOfClass:[RCTMGLCamera class]]) {
|
|
165
|
+
RCTMGLCamera *camera = (RCTMGLCamera *)subview;
|
|
166
|
+
camera.map = nil;
|
|
167
|
+
} else if ([subview isKindOfClass:[RCTMGLImages class]]) {
|
|
168
|
+
RCTMGLImages *images = (RCTMGLImages*)subview;
|
|
169
|
+
images.map = nil;
|
|
170
|
+
[_images removeObject:images];
|
|
171
|
+
} else if ([subview isKindOfClass:[RCTMGLLayer class]]) {
|
|
172
|
+
RCTMGLLayer *layer = (RCTMGLLayer*)subview;
|
|
173
|
+
layer.map = nil;
|
|
174
|
+
[_layers removeObject:layer];
|
|
175
|
+
} else if ([subview isKindOfClass:[RCTMGLNativeUserLocation class]]) {
|
|
176
|
+
RCTMGLNativeUserLocation *nativeUserLocation = (RCTMGLNativeUserLocation *)subview;
|
|
177
|
+
nativeUserLocation.map = nil;
|
|
178
|
+
} else if ([subview isKindOfClass:[RCTMGLLight class]]) {
|
|
179
|
+
RCTMGLLight *light = (RCTMGLLight*)subview;
|
|
180
|
+
light.map = nil;
|
|
181
|
+
} else {
|
|
182
|
+
NSArray<id<RCTComponent>> *childSubViews = [subview reactSubviews];
|
|
183
|
+
|
|
184
|
+
for (int i = 0; i < childSubViews.count; i++) {
|
|
185
|
+
[self removeFromMap:childSubViews[i]];
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if ([_layerWaiters count] > 0) {
|
|
189
|
+
RCTLogWarn(@"The following layers were waited on but never added to the map: %@", [_layerWaiters allKeys]);
|
|
190
|
+
[_layerWaiters removeAllObjects];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- (void)setSourceVisibility:(BOOL)visible sourceId:(NSString *)sourceId sourceLayerId:(NSString *)sourceLayerId {
|
|
195
|
+
__weak typeof(self) weakSelf = self;
|
|
196
|
+
[self getStyle:^(MGLStyle *style) {
|
|
197
|
+
__strong typeof(self) strongSelf = weakSelf;
|
|
198
|
+
for (MGLStyleLayer *layer in strongSelf.style.layers) {
|
|
199
|
+
if ([layer isKindOfClass:[MGLForegroundStyleLayer class]]) {
|
|
200
|
+
MGLForegroundStyleLayer *foregroundLayer = (MGLForegroundStyleLayer*)layer;
|
|
201
|
+
if (![foregroundLayer.sourceIdentifier isEqualToString:sourceId]) continue;
|
|
202
|
+
if (sourceLayerId == nil || sourceLayerId.length == 0) {
|
|
203
|
+
layer.visible = visible;
|
|
204
|
+
} else if ([layer isKindOfClass:[MGLVectorStyleLayer class]]) {
|
|
205
|
+
MGLVectorStyleLayer *vectorLayer = (MGLVectorStyleLayer*)layer;
|
|
206
|
+
if ([vectorLayer.sourceLayerIdentifier isEqualToString:sourceLayerId]) {
|
|
207
|
+
layer.visible = visible;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}];
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
#pragma clang diagnostic push
|
|
216
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
217
|
+
- (void)insertReactSubview:(id<RCTComponent>)subview atIndex:(NSInteger)atIndex {
|
|
218
|
+
[self addToMap:subview];
|
|
219
|
+
[_reactSubviews insertObject:(UIView *)subview atIndex:(NSUInteger) atIndex];
|
|
220
|
+
}
|
|
221
|
+
#pragma clang diagnostic pop
|
|
222
|
+
|
|
223
|
+
#pragma clang diagnostic push
|
|
224
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
225
|
+
- (void)removeReactSubview:(id<RCTComponent>)subview {
|
|
226
|
+
// similarly, when the children are being removed we have to do the appropriate
|
|
227
|
+
// underlying mapview action here.
|
|
228
|
+
[self removeFromMap:subview];
|
|
229
|
+
[_reactSubviews removeObject:(UIView *)subview];
|
|
230
|
+
[(UIView *)subview removeFromSuperview];
|
|
231
|
+
}
|
|
232
|
+
#pragma clang diagnostic pop
|
|
233
|
+
|
|
234
|
+
#pragma clang diagnostic push
|
|
235
|
+
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
|
236
|
+
- (NSArray<id<RCTComponent>> *)reactSubviews {
|
|
237
|
+
return _reactSubviews;
|
|
238
|
+
}
|
|
239
|
+
#pragma clang diagnostic pop
|
|
240
|
+
|
|
241
|
+
- (void)setReactZoomEnabled:(BOOL)reactZoomEnabled
|
|
242
|
+
{
|
|
243
|
+
_reactZoomEnabled = reactZoomEnabled;
|
|
244
|
+
self.zoomEnabled = _reactZoomEnabled;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
- (void)setReactScrollEnabled:(BOOL)reactScrollEnabled
|
|
248
|
+
{
|
|
249
|
+
_reactScrollEnabled = reactScrollEnabled;
|
|
250
|
+
self.scrollEnabled = _reactScrollEnabled;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
- (void)setReactPitchEnabled:(BOOL)reactPitchEnabled
|
|
254
|
+
{
|
|
255
|
+
_reactPitchEnabled = reactPitchEnabled;
|
|
256
|
+
self.pitchEnabled = _reactPitchEnabled;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
- (void)setReactRotateEnabled:(BOOL)reactRotateEnabled
|
|
260
|
+
{
|
|
261
|
+
_reactRotateEnabled = reactRotateEnabled;
|
|
262
|
+
self.rotateEnabled = _reactRotateEnabled;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
- (void)setReactAttributionEnabled:(BOOL)reactAttributionEnabled
|
|
266
|
+
{
|
|
267
|
+
_reactAttributionEnabled = reactAttributionEnabled;
|
|
268
|
+
self.attributionButton.hidden = !_reactAttributionEnabled;
|
|
269
|
+
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
- (void)setReactAttributionPosition:(NSDictionary<NSString *,NSNumber *> *)position
|
|
273
|
+
{
|
|
274
|
+
NSNumber *left = [position valueForKey:@"left"];
|
|
275
|
+
NSNumber *right = [position valueForKey:@"right"];
|
|
276
|
+
NSNumber *top = [position valueForKey:@"top"];
|
|
277
|
+
NSNumber *bottom = [position valueForKey:@"bottom"];
|
|
278
|
+
if (left != nil && top != nil) {
|
|
279
|
+
[self setAttributionButtonPosition:MGLOrnamentPositionTopLeft];
|
|
280
|
+
[self setAttributionButtonMargins:CGPointMake([left floatValue], [top floatValue])];
|
|
281
|
+
} else if (right != nil && top != nil) {
|
|
282
|
+
[self setAttributionButtonPosition:MGLOrnamentPositionTopRight];
|
|
283
|
+
[self setAttributionButtonMargins:CGPointMake([right floatValue], [top floatValue])];
|
|
284
|
+
} else if (bottom != nil && right != nil) {
|
|
285
|
+
[self setAttributionButtonPosition:MGLOrnamentPositionBottomRight];
|
|
286
|
+
[self setAttributionButtonMargins:CGPointMake([right floatValue], [bottom floatValue])];
|
|
287
|
+
} else if (bottom != nil && left != nil) {
|
|
288
|
+
[self setAttributionButtonPosition:MGLOrnamentPositionBottomLeft];
|
|
289
|
+
[self setAttributionButtonMargins:CGPointMake([left floatValue], [bottom floatValue])];
|
|
290
|
+
} else {
|
|
291
|
+
[self setAttributionButtonPosition:MGLOrnamentPositionBottomRight];
|
|
292
|
+
// same as MGLOrnamentDefaultPositionOffset in MGLMapView.mm
|
|
293
|
+
[self setAttributionButtonMargins:CGPointMake(8, 8)];
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
- (void)setReactLogoEnabled:(BOOL)reactLogoEnabled
|
|
299
|
+
{
|
|
300
|
+
_reactLogoEnabled = reactLogoEnabled;
|
|
301
|
+
self.logoView.hidden = !_reactLogoEnabled;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
- (void)setReactLogoPosition:(NSDictionary<NSString *,NSNumber *> *)logoPosition
|
|
305
|
+
{
|
|
306
|
+
NSNumber *left = [logoPosition valueForKey:@"left"];
|
|
307
|
+
NSNumber *right = [logoPosition valueForKey:@"right"];
|
|
308
|
+
NSNumber *top = [logoPosition valueForKey:@"top"];
|
|
309
|
+
NSNumber *bottom = [logoPosition valueForKey:@"bottom"];
|
|
310
|
+
if (left != nil && top != nil) {
|
|
311
|
+
[self setLogoViewPosition:MGLOrnamentPositionTopLeft];
|
|
312
|
+
[self setLogoViewMargins:CGPointMake([left floatValue], [top floatValue])];
|
|
313
|
+
} else if (right != nil && top != nil) {
|
|
314
|
+
[self setLogoViewPosition:MGLOrnamentPositionTopRight];
|
|
315
|
+
[self setLogoViewMargins:CGPointMake([right floatValue], [top floatValue])];
|
|
316
|
+
} else if (bottom != nil && right != nil) {
|
|
317
|
+
[self setLogoViewPosition:MGLOrnamentPositionBottomRight];
|
|
318
|
+
[self setLogoViewMargins:CGPointMake([right floatValue], [bottom floatValue])];
|
|
319
|
+
} else if (bottom != nil && left != nil) {
|
|
320
|
+
[self setLogoViewPosition:MGLOrnamentPositionBottomLeft];
|
|
321
|
+
[self setLogoViewMargins:CGPointMake([left floatValue], [bottom floatValue])];
|
|
322
|
+
} else {
|
|
323
|
+
[self setLogoViewPosition:MGLOrnamentPositionBottomRight];
|
|
324
|
+
[self setLogoViewMargins:CGPointMake(8, 8)];
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
- (void)setReactCompassEnabled:(BOOL)reactCompassEnabled
|
|
330
|
+
{
|
|
331
|
+
_reactCompassEnabled = reactCompassEnabled;
|
|
332
|
+
self.compassView.hidden = !_reactCompassEnabled;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
- (void)setReactCompassViewPosition:(NSInteger *)reactCompassViewPosition
|
|
336
|
+
{
|
|
337
|
+
if(!self.compassView.hidden)
|
|
338
|
+
{
|
|
339
|
+
_reactCompassViewPosition = reactCompassViewPosition;
|
|
340
|
+
self.compassViewPosition = _reactCompassViewPosition;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
- (void)setReactCompassViewMargins:(CGPoint)reactCompassViewMargins
|
|
345
|
+
{
|
|
346
|
+
if(!self.compassView.hidden)
|
|
347
|
+
{
|
|
348
|
+
CGPoint point;
|
|
349
|
+
point = reactCompassViewMargins;
|
|
350
|
+
self.compassViewMargins = point;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
- (void)setReactShowUserLocation:(BOOL)reactShowUserLocation
|
|
355
|
+
{
|
|
356
|
+
// FMTODO
|
|
357
|
+
//_reactShowUserLocation = reactShowUserLocation;
|
|
358
|
+
self.showsUserLocation = reactShowUserLocation; //_reactShowUserLocation;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
- (void)setReactContentInset:(NSArray<NSNumber *> *)reactContentInset
|
|
362
|
+
{
|
|
363
|
+
CGFloat top = 0.0f, right = 0.0f, left = 0.0f, bottom = 0.0f;
|
|
364
|
+
|
|
365
|
+
if (reactContentInset.count == 4) {
|
|
366
|
+
top = [reactContentInset[0] floatValue];
|
|
367
|
+
right = [reactContentInset[1] floatValue];
|
|
368
|
+
bottom = [reactContentInset[2] floatValue];
|
|
369
|
+
left = [reactContentInset[3] floatValue];
|
|
370
|
+
} else if (reactContentInset.count == 2) {
|
|
371
|
+
top = [reactContentInset[0] floatValue];
|
|
372
|
+
right = [reactContentInset[1] floatValue];
|
|
373
|
+
bottom = [reactContentInset[0] floatValue];
|
|
374
|
+
left = [reactContentInset[1] floatValue];
|
|
375
|
+
} else if (reactContentInset.count == 1) {
|
|
376
|
+
top = [reactContentInset[0] floatValue];
|
|
377
|
+
right = [reactContentInset[0] floatValue];
|
|
378
|
+
bottom = [reactContentInset[0] floatValue];
|
|
379
|
+
left = [reactContentInset[0] floatValue];
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
self.contentInset = UIEdgeInsetsMake(top, left, bottom, right);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
- (void)setReactStyleURL:(NSString *)reactStyleURL
|
|
386
|
+
{
|
|
387
|
+
_reactStyleURL = reactStyleURL;
|
|
388
|
+
[self _removeAllSourcesFromMap];
|
|
389
|
+
self.styleURL = [self _getStyleURLFromKey:_reactStyleURL];
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
- (void)setReactPreferredFramesPerSecond:(NSInteger)reactPreferredFramesPerSecond
|
|
393
|
+
{
|
|
394
|
+
self.preferredFramesPerSecond = reactPreferredFramesPerSecond;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
#pragma mark - methods
|
|
399
|
+
|
|
400
|
+
- (NSString *)takeSnap:(BOOL)writeToDisk
|
|
401
|
+
{
|
|
402
|
+
UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0);
|
|
403
|
+
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
|
|
404
|
+
UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
|
|
405
|
+
UIGraphicsEndImageContext();
|
|
406
|
+
return writeToDisk ? [RNMBImageUtils createTempFile:snapshot] : [RNMBImageUtils createBase64:snapshot];
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
- (CLLocationDistance)getMetersPerPixelAtLatitude:(double)latitude withZoom:(double)zoomLevel
|
|
410
|
+
{
|
|
411
|
+
double constrainedZoom = [[RCTMGLUtils clamp:[NSNumber numberWithDouble:zoomLevel]
|
|
412
|
+
min:[NSNumber numberWithDouble:self.minimumZoomLevel]
|
|
413
|
+
max:[NSNumber numberWithDouble:self.maximumZoomLevel]] doubleValue];
|
|
414
|
+
|
|
415
|
+
double constrainedLatitude = [[RCTMGLUtils clamp:[NSNumber numberWithDouble:latitude]
|
|
416
|
+
min:[NSNumber numberWithDouble:-LAT_MAX]
|
|
417
|
+
max:[NSNumber numberWithDouble:LAT_MAX]] doubleValue];
|
|
418
|
+
|
|
419
|
+
double constrainedScale = pow(2.0, constrainedZoom);
|
|
420
|
+
return cos(constrainedLatitude * DEG2RAD) * M2PI * EARTH_RADIUS_M / (constrainedScale * TILE_SIZE);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
- (CLLocationDistance)altitudeFromZoom:(double)zoomLevel
|
|
424
|
+
{
|
|
425
|
+
return [self altitudeFromZoom:zoomLevel atLatitude:self.camera.centerCoordinate.latitude];
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
- (CLLocationDistance)altitudeFromZoom:(double)zoomLevel atLatitude:(CLLocationDegrees)latitude
|
|
429
|
+
{
|
|
430
|
+
return [self altitudeFromZoom:zoomLevel atLatitude:latitude atPitch:self.camera.pitch];
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
- (CLLocationDistance)altitudeFromZoom:(double)zoomLevel atLatitude:(CLLocationDegrees)latitude atPitch:(CGFloat)pitch
|
|
434
|
+
{
|
|
435
|
+
return MGLAltitudeForZoomLevel(zoomLevel, pitch, latitude, self.frame.size);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
- (RCTMGLPointAnnotation*)getRCTPointAnnotation:(MGLPointAnnotation *)mglAnnotation
|
|
439
|
+
{
|
|
440
|
+
for (int i = 0; i < _pointAnnotations.count; i++) {
|
|
441
|
+
RCTMGLPointAnnotation *rctAnnotation = _pointAnnotations[i];
|
|
442
|
+
if (rctAnnotation.annotation == mglAnnotation) {
|
|
443
|
+
return rctAnnotation;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return nil;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
- (NSArray<RCTMGLSource *> *)getAllTouchableSources
|
|
450
|
+
{
|
|
451
|
+
NSMutableArray<RCTMGLSource *> *touchableSources = [[NSMutableArray alloc] init];
|
|
452
|
+
|
|
453
|
+
for (RCTMGLSource *source in _sources) {
|
|
454
|
+
if (source.hasPressListener) {
|
|
455
|
+
[touchableSources addObject:source];
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
return touchableSources;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
- (NSArray<RCTMGLImages*>*)getAllImages
|
|
463
|
+
{
|
|
464
|
+
return [_images copy];
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
- (NSArray<RCTMGLShapeSource *> *)getAllShapeSources
|
|
468
|
+
{
|
|
469
|
+
NSMutableArray<RCTMGLSource *> *shapeSources = [[NSMutableArray alloc] init];
|
|
470
|
+
|
|
471
|
+
for (RCTMGLSource *source in _sources) {
|
|
472
|
+
if ([source isKindOfClass:[RCTMGLShapeSource class]]) {
|
|
473
|
+
[shapeSources addObject:source];
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
return shapeSources;
|
|
478
|
+
}
|
|
479
|
+
- (RCTMGLSource *)getTouchableSourceWithHighestZIndex:(NSArray<RCTMGLSource *> *)touchableSources
|
|
480
|
+
{
|
|
481
|
+
if (touchableSources == nil || touchableSources.count == 0) {
|
|
482
|
+
return nil;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
if (touchableSources.count == 1) {
|
|
486
|
+
return touchableSources[0];
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
NSMutableDictionary<NSString *, RCTMGLSource *> *layerToSoureDict = [[NSMutableDictionary alloc] init];
|
|
490
|
+
for (RCTMGLSource *touchableSource in touchableSources) {
|
|
491
|
+
NSArray<NSString *> *layerIDs = [touchableSource getLayerIDs];
|
|
492
|
+
|
|
493
|
+
for (NSString *layerID in layerIDs) {
|
|
494
|
+
layerToSoureDict[layerID] = touchableSource;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
NSArray<MGLStyleLayer *> *layers = self.style.layers;
|
|
499
|
+
for (int i = (int)layers.count - 1; i >= 0; i--) {
|
|
500
|
+
MGLStyleLayer *layer = layers[i];
|
|
501
|
+
|
|
502
|
+
RCTMGLSource *source = layerToSoureDict[layer.identifier];
|
|
503
|
+
if (source != nil) {
|
|
504
|
+
return source;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
return nil;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
- (NSURL*)_getStyleURLFromKey:(NSString *)styleURL
|
|
512
|
+
{
|
|
513
|
+
NSURL *url = [NSURL URLWithString:styleURL];
|
|
514
|
+
if (url) {
|
|
515
|
+
return url;
|
|
516
|
+
} else if (RCTJSONParse(styleURL, nil)) {
|
|
517
|
+
return [RCTMGLUtils styleURLFromStyleJSON:styleURL];
|
|
518
|
+
}
|
|
519
|
+
return url;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
- (void)_removeAllSourcesFromMap
|
|
523
|
+
{
|
|
524
|
+
if (self.style == nil || _sources.count == 0) {
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
for (RCTMGLSource *source in _sources) {
|
|
528
|
+
source.map = nil;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
- (void)didChangeUserTrackingMode:(MGLUserTrackingMode)mode animated:(BOOL)animated {
|
|
533
|
+
[_reactCamera didChangeUserTrackingMode:mode animated:animated];
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
@end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RCTMGLMapViewManager.h
|
|
3
|
+
// RCTMGL
|
|
4
|
+
//
|
|
5
|
+
// Created by Nick Italiano on 8/23/17.
|
|
6
|
+
// Copyright © 2017 Mapbox Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "ViewManager.h"
|
|
10
|
+
@import Mapbox;
|
|
11
|
+
|
|
12
|
+
@interface RCTMGLMapViewManager : ViewManager
|
|
13
|
+
|
|
14
|
+
- (void)didTapMap:(UITapGestureRecognizer *)recognizer;
|
|
15
|
+
- (void)didLongPressMap:(UILongPressGestureRecognizer *)recognizer;
|
|
16
|
+
|
|
17
|
+
@end
|