@maplibre/maplibre-react-native 11.0.0-alpha.8 → 11.0.0-alpha.9
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/android/build.gradle +0 -3
- package/android/src/main/java/org/maplibre/reactnative/MLRNPackage.kt +43 -0
- package/android/src/main/java/org/maplibre/reactnative/components/AbstractEvent.kt +24 -0
- package/android/src/main/java/org/maplibre/reactnative/components/AbstractEventEmitter.kt +71 -0
- package/android/src/main/java/org/maplibre/reactnative/components/annotation/MLRNPointAnnotation.java +1 -1
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraStop.kt +203 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateItem.kt +109 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateQueue.kt +60 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.kt +409 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraManager.kt +69 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraModule.kt +34 -0
- package/android/src/main/java/org/maplibre/reactnative/components/camera/constants/CameraEasing.kt +24 -0
- package/android/src/main/java/org/maplibre/reactnative/components/images/MLRNImages.java +1 -2
- package/android/src/main/java/org/maplibre/reactnative/components/location/LocationComponentManager.java +1 -1
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapView.kt +23 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapViewManager.kt +23 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapView.kt +1338 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewManager.kt +187 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewModule.kt +159 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/CameraChangeTracker.kt +26 -0
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/LayerSourceInfo.kt +74 -0
- package/android/src/main/java/org/maplibre/reactnative/components/styles/layers/MLRNLayer.java +1 -5
- package/android/src/main/java/org/maplibre/reactnative/components/styles/light/MLRNLight.java +1 -6
- package/android/src/main/java/org/maplibre/reactnative/components/styles/sources/MLRNShapeSource.java +2 -9
- package/android/src/main/java/org/maplibre/reactnative/components/styles/sources/MLRNSource.java +1 -1
- package/android/src/main/java/org/maplibre/reactnative/events/AbstractEvent.java +2 -5
- package/android/src/main/java/org/maplibre/reactnative/events/MapChangeEvent.kt +18 -0
- package/android/src/main/java/org/maplibre/reactnative/events/MapClickEvent.java +4 -0
- package/android/src/main/java/org/maplibre/reactnative/events/MapPressEvent.kt +27 -0
- package/android/src/main/java/org/maplibre/reactnative/events/TrackUserLocationChangeEvent.kt +24 -0
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventKeys.java +0 -1
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventTypes.java +0 -19
- package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.java +1 -1
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationMode.kt +43 -0
- package/android/src/main/java/org/maplibre/reactnative/location/{UserTrackingState.java → TrackUserLocationState.java} +1 -1
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.java +1 -1
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNModule.java +1 -49
- package/android/src/main/java/org/maplibre/reactnative/utils/ConvertUtils.java +2 -9
- package/android/src/main/java/org/maplibre/reactnative/utils/GeoJSONUtils.kt +322 -0
- package/android/src/main/java/org/maplibre/reactnative/utils/ReactTagResolver.kt +85 -0
- package/ios/MLRNCallout.h +1 -1
- package/ios/MLRNEvent.m +3 -1
- package/ios/MLRNEventTypes.h +10 -31
- package/ios/MLRNEventTypes.m +10 -30
- package/ios/MLRNImages.h +1 -1
- package/ios/MLRNImages.m +1 -1
- package/ios/MLRNLayer.h +1 -1
- package/ios/MLRNLayer.m +2 -2
- package/ios/MLRNLight.h +2 -1
- package/ios/MLRNLocationModule.m +2 -2
- package/ios/MLRNMapTouchEvent.h +2 -1
- package/ios/MLRNMapTouchEvent.m +12 -10
- package/ios/MLRNModule.m +5 -52
- package/ios/MLRNNativeUserLocation.m +0 -1
- package/ios/MLRNOfflineModule.h +2 -2
- package/ios/MLRNOfflineModule.m +9 -9
- package/ios/MLRNPointAnnotation.h +1 -1
- package/ios/MLRNShapeSource.h +1 -1
- package/ios/MLRNSource.h +3 -1
- package/ios/MLRNStyle.m +20 -20
- package/ios/MLRNUtils.h +17 -2
- package/ios/MLRNUtils.m +25 -2
- package/ios/components/camera/CameraEasing.h +8 -0
- package/ios/{CameraStop.h → components/camera/CameraStop.h} +10 -6
- package/ios/components/camera/CameraStop.m +75 -0
- package/ios/{CameraUpdateItem.m → components/camera/CameraUpdateItem.m} +45 -46
- package/ios/components/camera/MLRNCamera.h +26 -0
- package/ios/components/camera/MLRNCamera.m +195 -0
- package/ios/components/camera/MLRNCameraComponentView.h +18 -0
- package/ios/components/camera/MLRNCameraComponentView.mm +192 -0
- package/ios/components/camera/MLRNCameraManager.h +11 -0
- package/ios/components/camera/MLRNCameraManager.m +20 -0
- package/ios/components/camera/MLRNCameraModule.h +4 -0
- package/ios/components/camera/MLRNCameraModule.mm +111 -0
- package/ios/{MLRNMapView.h → components/map-view/MLRNMapView.h} +42 -20
- package/ios/components/map-view/MLRNMapView.m +809 -0
- package/ios/components/map-view/MLRNMapViewComponentView.h +18 -0
- package/ios/components/map-view/MLRNMapViewComponentView.mm +400 -0
- package/ios/components/map-view/MLRNMapViewManager.h +70 -0
- package/ios/components/map-view/MLRNMapViewManager.m +163 -0
- package/ios/components/map-view/MLRNMapViewModule.h +4 -0
- package/ios/components/map-view/MLRNMapViewModule.mm +249 -0
- package/ios/{MLRNSnapshotModule → modules/snapshot}/MLRNSnapshotModule.mm +0 -1
- package/lib/commonjs/MLRNModule.js +1 -3
- package/lib/commonjs/MLRNModule.js.map +1 -1
- package/lib/commonjs/components/Annotation.js +1 -13
- package/lib/commonjs/components/Annotation.js.map +1 -1
- package/lib/commonjs/components/Images.js.map +1 -1
- package/lib/commonjs/components/ShapeSource.js +2 -21
- package/lib/commonjs/components/ShapeSource.js.map +1 -1
- package/lib/commonjs/components/VectorSource.js +3 -26
- package/lib/commonjs/components/VectorSource.js.map +1 -1
- package/lib/commonjs/components/camera/Camera.js +97 -0
- package/lib/commonjs/components/camera/Camera.js.map +1 -0
- package/lib/commonjs/components/camera/CameraNativeComponent.ts +61 -0
- package/lib/commonjs/components/camera/NativeCameraModule.js +11 -0
- package/lib/commonjs/components/camera/NativeCameraModule.js.map +1 -0
- package/lib/commonjs/components/map-view/MapView.js +115 -0
- package/lib/commonjs/components/map-view/MapView.js.map +1 -0
- package/lib/commonjs/components/map-view/MapViewNativeComponent.ts +96 -0
- package/lib/commonjs/components/map-view/NativeMapViewModule.js +9 -0
- package/lib/commonjs/components/map-view/NativeMapViewModule.js.map +1 -0
- package/lib/commonjs/index.js +246 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modules/snapshot/NativeSnapshotModule.js +2 -2
- package/lib/commonjs/modules/snapshot/NativeSnapshotModule.js.map +1 -1
- package/lib/commonjs/modules/snapshot/SnapshotManager.js +3 -2
- package/lib/commonjs/modules/snapshot/SnapshotManager.js.map +1 -1
- package/lib/commonjs/types/Bounds.js +2 -0
- package/lib/commonjs/types/{OnPressEvent.js.map → Bounds.js.map} +1 -1
- package/lib/commonjs/types/PressEvent.js +2 -0
- package/lib/{module/types/OnPressEvent.js.map → commonjs/types/PressEvent.js.map} +1 -1
- package/lib/commonjs/types/ViewPadding.js +2 -0
- package/lib/commonjs/types/{MapLibreRNEvent.js.map → ViewPadding.js.map} +1 -1
- package/lib/commonjs/types/codegen/UnsafeMixed.js +2 -0
- package/lib/commonjs/types/codegen/UnsafeMixed.js.map +1 -0
- package/lib/commonjs/utils/index.js +0 -11
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/MLRNModule.js +0 -1
- package/lib/module/MLRNModule.js.map +1 -1
- package/lib/module/components/Annotation.js +2 -14
- package/lib/module/components/Annotation.js.map +1 -1
- package/lib/module/components/Images.js.map +1 -1
- package/lib/module/components/ShapeSource.js +3 -22
- package/lib/module/components/ShapeSource.js.map +1 -1
- package/lib/module/components/VectorSource.js +4 -27
- package/lib/module/components/VectorSource.js.map +1 -1
- package/lib/module/components/camera/Camera.js +92 -0
- package/lib/module/components/camera/Camera.js.map +1 -0
- package/lib/module/components/camera/CameraNativeComponent.ts +61 -0
- package/lib/module/components/camera/NativeCameraModule.js +10 -0
- package/lib/module/components/camera/NativeCameraModule.js.map +1 -0
- package/lib/module/components/map-view/MapView.js +110 -0
- package/lib/module/components/map-view/MapView.js.map +1 -0
- package/lib/module/components/map-view/MapViewNativeComponent.ts +96 -0
- package/lib/module/components/map-view/NativeMapViewModule.js +5 -0
- package/lib/module/components/map-view/NativeMapViewModule.js.map +1 -0
- package/lib/module/index.js +30 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/snapshot/NativeSnapshotModule.js +1 -1
- package/lib/module/modules/snapshot/NativeSnapshotModule.js.map +1 -1
- package/lib/module/modules/snapshot/SnapshotManager.js +1 -1
- package/lib/module/modules/snapshot/SnapshotManager.js.map +1 -1
- package/lib/module/types/Bounds.js +2 -0
- package/lib/module/types/{MapLibreRNEvent.js.map → Bounds.js.map} +1 -1
- package/lib/module/types/PressEvent.js +2 -0
- package/lib/module/types/PressEvent.js.map +1 -0
- package/lib/module/types/ViewPadding.js +2 -0
- package/lib/module/types/ViewPadding.js.map +1 -0
- package/lib/module/types/codegen/UnsafeMixed.js +2 -0
- package/lib/module/types/codegen/UnsafeMixed.js.map +1 -0
- package/lib/module/utils/index.js +0 -9
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/commonjs/src/MLRNModule.d.ts +1 -7
- package/lib/typescript/commonjs/src/MLRNModule.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/Annotation.d.ts +3 -3
- package/lib/typescript/commonjs/src/components/Annotation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/Images.d.ts +1 -2
- package/lib/typescript/commonjs/src/components/Images.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/ShapeSource.d.ts +2 -5
- package/lib/typescript/commonjs/src/components/ShapeSource.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/VectorSource.d.ts +3 -2
- package/lib/typescript/commonjs/src/components/VectorSource.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/camera/Camera.d.ts +180 -0
- package/lib/typescript/commonjs/src/components/camera/Camera.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts +37 -0
- package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/camera/NativeCameraModule.d.ts +27 -0
- package/lib/typescript/commonjs/src/components/camera/NativeCameraModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/map-view/MapView.d.ts +323 -0
- package/lib/typescript/commonjs/src/components/map-view/MapView.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/map-view/MapViewNativeComponent.d.ts +69 -0
- package/lib/typescript/commonjs/src/components/map-view/MapViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/map-view/NativeMapViewModule.d.ts +45 -0
- package/lib/typescript/commonjs/src/components/map-view/NativeMapViewModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +41 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/snapshot/NativeSnapshotModule.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/snapshot/NativeSnapshotModule.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/Bounds.d.ts +2 -0
- package/lib/typescript/commonjs/src/types/Bounds.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/PressEvent.d.ts +16 -0
- package/lib/typescript/commonjs/src/types/PressEvent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/ViewPadding.d.ts +7 -0
- package/lib/typescript/commonjs/src/types/ViewPadding.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/codegen/UnsafeMixed.d.ts +10 -0
- package/lib/typescript/commonjs/src/types/codegen/UnsafeMixed.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/index.d.ts +1 -3
- package/lib/typescript/commonjs/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/src/MLRNModule.d.ts +1 -7
- package/lib/typescript/module/src/MLRNModule.d.ts.map +1 -1
- package/lib/typescript/module/src/components/Annotation.d.ts +3 -3
- package/lib/typescript/module/src/components/Annotation.d.ts.map +1 -1
- package/lib/typescript/module/src/components/Images.d.ts +1 -2
- package/lib/typescript/module/src/components/Images.d.ts.map +1 -1
- package/lib/typescript/module/src/components/ShapeSource.d.ts +2 -5
- package/lib/typescript/module/src/components/ShapeSource.d.ts.map +1 -1
- package/lib/typescript/module/src/components/VectorSource.d.ts +3 -2
- package/lib/typescript/module/src/components/VectorSource.d.ts.map +1 -1
- package/lib/typescript/module/src/components/camera/Camera.d.ts +180 -0
- package/lib/typescript/module/src/components/camera/Camera.d.ts.map +1 -0
- package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts +37 -0
- package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/components/camera/NativeCameraModule.d.ts +27 -0
- package/lib/typescript/module/src/components/camera/NativeCameraModule.d.ts.map +1 -0
- package/lib/typescript/module/src/components/map-view/MapView.d.ts +323 -0
- package/lib/typescript/module/src/components/map-view/MapView.d.ts.map +1 -0
- package/lib/typescript/module/src/components/map-view/MapViewNativeComponent.d.ts +69 -0
- package/lib/typescript/module/src/components/map-view/MapViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/components/map-view/NativeMapViewModule.d.ts +45 -0
- package/lib/typescript/module/src/components/map-view/NativeMapViewModule.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +41 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/snapshot/NativeSnapshotModule.d.ts +2 -1
- package/lib/typescript/module/src/modules/snapshot/NativeSnapshotModule.d.ts.map +1 -1
- package/lib/typescript/module/src/types/Bounds.d.ts +2 -0
- package/lib/typescript/module/src/types/Bounds.d.ts.map +1 -0
- package/lib/typescript/module/src/types/PressEvent.d.ts +16 -0
- package/lib/typescript/module/src/types/PressEvent.d.ts.map +1 -0
- package/lib/typescript/module/src/types/ViewPadding.d.ts +7 -0
- package/lib/typescript/module/src/types/ViewPadding.d.ts.map +1 -0
- package/lib/typescript/module/src/types/codegen/UnsafeMixed.d.ts +10 -0
- package/lib/typescript/module/src/types/codegen/UnsafeMixed.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/index.d.ts +1 -3
- package/lib/typescript/module/src/utils/index.d.ts.map +1 -1
- package/package.json +38 -28
- package/src/MLRNModule.ts +0 -10
- package/src/components/Annotation.tsx +8 -23
- package/src/components/Images.tsx +2 -4
- package/src/components/ShapeSource.tsx +18 -31
- package/src/components/VectorSource.tsx +5 -28
- package/src/components/camera/Camera.tsx +311 -0
- package/src/components/camera/CameraNativeComponent.ts +61 -0
- package/src/components/camera/NativeCameraModule.ts +39 -0
- package/src/components/map-view/MapView.tsx +582 -0
- package/src/components/map-view/MapViewNativeComponent.ts +96 -0
- package/src/components/map-view/NativeMapViewModule.ts +83 -0
- package/src/index.ts +86 -1
- package/src/modules/snapshot/NativeSnapshotModule.ts +1 -2
- package/src/modules/snapshot/SnapshotManager.ts +1 -1
- package/src/types/Bounds.ts +1 -0
- package/src/types/PressEvent.ts +19 -0
- package/src/types/ViewPadding.ts +6 -0
- package/src/types/codegen/UnsafeMixed.ts +9 -0
- package/src/utils/index.ts +1 -14
- package/android/src/main/java/org/maplibre/reactnative/components/AbstractEvent.java +0 -35
- package/android/src/main/java/org/maplibre/reactnative/components/AbstractEventEmitter.java +0 -80
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraStop.java +0 -245
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateItem.java +0 -121
- package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateQueue.java +0 -68
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.java +0 -519
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraManager.java +0 -101
- package/android/src/main/java/org/maplibre/reactnative/components/camera/constants/CameraMode.java +0 -18
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/LayerSourceInfo.java +0 -59
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapView.java +0 -13
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapViewManager.java +0 -27
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapView.java +0 -1521
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewManager.java +0 -342
- package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/CameraChangeTracker.java +0 -37
- package/android/src/main/java/org/maplibre/reactnative/events/MapChangeEvent.java +0 -43
- package/android/src/main/java/org/maplibre/reactnative/events/MapUserTrackingModeEvent.java +0 -32
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocationVerticalAlignment.java +0 -7
- package/android/src/main/java/org/maplibre/reactnative/location/UserTrackingMode.java +0 -59
- package/android/src/main/java/org/maplibre/reactnative/utils/GeoJSONUtils.java +0 -310
- package/ios/CameraMode.h +0 -10
- package/ios/CameraMode.m +0 -10
- package/ios/CameraStop.m +0 -73
- package/ios/MLRNCamera.h +0 -29
- package/ios/MLRNCamera.m +0 -236
- package/ios/MLRNCameraManager.h +0 -5
- package/ios/MLRNCameraManager.m +0 -39
- package/ios/MLRNMapView.m +0 -497
- package/ios/MLRNMapViewManager.h +0 -9
- package/ios/MLRNMapViewManager.m +0 -604
- package/lib/commonjs/MapLibreRN.js +0 -266
- package/lib/commonjs/MapLibreRN.js.map +0 -1
- package/lib/commonjs/components/Camera.js +0 -333
- package/lib/commonjs/components/Camera.js.map +0 -1
- package/lib/commonjs/components/MapView.js +0 -449
- package/lib/commonjs/components/MapView.js.map +0 -1
- package/lib/commonjs/hooks/useNativeRef.js +0 -14
- package/lib/commonjs/hooks/useNativeRef.js.map +0 -1
- package/lib/commonjs/types/CameraMode.js +0 -14
- package/lib/commonjs/types/CameraMode.js.map +0 -1
- package/lib/commonjs/types/MapLibreRNEvent.js +0 -6
- package/lib/commonjs/types/OnPressEvent.js +0 -2
- package/lib/module/MapLibreRN.js +0 -33
- package/lib/module/MapLibreRN.js.map +0 -1
- package/lib/module/components/Camera.js +0 -328
- package/lib/module/components/Camera.js.map +0 -1
- package/lib/module/components/MapView.js +0 -444
- package/lib/module/components/MapView.js.map +0 -1
- package/lib/module/hooks/useNativeRef.js +0 -10
- package/lib/module/hooks/useNativeRef.js.map +0 -1
- package/lib/module/types/CameraMode.js +0 -10
- package/lib/module/types/CameraMode.js.map +0 -1
- package/lib/module/types/MapLibreRNEvent.js +0 -4
- package/lib/module/types/OnPressEvent.js +0 -2
- package/lib/typescript/commonjs/src/MapLibreRN.d.ts +0 -41
- package/lib/typescript/commonjs/src/MapLibreRN.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/Camera.d.ts +0 -134
- package/lib/typescript/commonjs/src/components/Camera.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/MapView.d.ts +0 -223
- package/lib/typescript/commonjs/src/components/MapView.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/hooks/useNativeRef.d.ts +0 -8
- package/lib/typescript/commonjs/src/hooks/useNativeRef.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/CameraMode.d.ts +0 -7
- package/lib/typescript/commonjs/src/types/CameraMode.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/MapLibreRNEvent.d.ts +0 -6
- package/lib/typescript/commonjs/src/types/MapLibreRNEvent.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/OnPressEvent.d.ts +0 -12
- package/lib/typescript/commonjs/src/types/OnPressEvent.d.ts.map +0 -1
- package/lib/typescript/module/src/MapLibreRN.d.ts +0 -41
- package/lib/typescript/module/src/MapLibreRN.d.ts.map +0 -1
- package/lib/typescript/module/src/components/Camera.d.ts +0 -134
- package/lib/typescript/module/src/components/Camera.d.ts.map +0 -1
- package/lib/typescript/module/src/components/MapView.d.ts +0 -223
- package/lib/typescript/module/src/components/MapView.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/useNativeRef.d.ts +0 -8
- package/lib/typescript/module/src/hooks/useNativeRef.d.ts.map +0 -1
- package/lib/typescript/module/src/types/CameraMode.d.ts +0 -7
- package/lib/typescript/module/src/types/CameraMode.d.ts.map +0 -1
- package/lib/typescript/module/src/types/MapLibreRNEvent.d.ts +0 -6
- package/lib/typescript/module/src/types/MapLibreRNEvent.d.ts.map +0 -1
- package/lib/typescript/module/src/types/OnPressEvent.d.ts +0 -12
- package/lib/typescript/module/src/types/OnPressEvent.d.ts.map +0 -1
- package/src/MapLibreRN.ts +0 -75
- package/src/components/Camera.tsx +0 -568
- package/src/components/MapView.tsx +0 -838
- package/src/hooks/useNativeRef.ts +0 -14
- package/src/types/CameraMode.ts +0 -6
- package/src/types/MapLibreRNEvent.ts +0 -7
- package/src/types/OnPressEvent.ts +0 -11
- /package/ios/{CameraUpdateItem.h → components/camera/CameraUpdateItem.h} +0 -0
- /package/ios/{CameraUpdateQueue.h → components/camera/CameraUpdateQueue.h} +0 -0
- /package/ios/{CameraUpdateQueue.m → components/camera/CameraUpdateQueue.m} +0 -0
- /package/ios/{MLRNSnapshotModule → modules/snapshot}/MLRNSnapshotModule.h +0 -0
package/ios/MLRNMapViewManager.m
DELETED
|
@@ -1,604 +0,0 @@
|
|
|
1
|
-
#import <React/RCTUIManager.h>
|
|
2
|
-
|
|
3
|
-
#import "CameraStop.h"
|
|
4
|
-
#import "CameraUpdateQueue.h"
|
|
5
|
-
#import "FilterParser.h"
|
|
6
|
-
#import "MLRNEvent.h"
|
|
7
|
-
#import "MLRNEventTypes.h"
|
|
8
|
-
#import "MLRNImages.h"
|
|
9
|
-
#import "MLRNMapTouchEvent.h"
|
|
10
|
-
#import "MLRNMapView.h"
|
|
11
|
-
#import "MLRNMapViewManager.h"
|
|
12
|
-
#import "MLRNUserLocation.h"
|
|
13
|
-
#import "MLRNUtils.h"
|
|
14
|
-
|
|
15
|
-
@interface MLRNMapViewManager () <MLNMapViewDelegate>
|
|
16
|
-
@end
|
|
17
|
-
|
|
18
|
-
@implementation MLRNMapViewManager
|
|
19
|
-
|
|
20
|
-
RCT_EXPORT_MODULE(MLRNMapView)
|
|
21
|
-
|
|
22
|
-
- (BOOL)requiresMainQueueSetup {
|
|
23
|
-
return YES;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// prevents SDK from crashing and cluttering logs
|
|
27
|
-
// since we don't have access to the frame right away
|
|
28
|
-
- (CGRect)defaultFrame {
|
|
29
|
-
return [[UIScreen mainScreen] bounds];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
- (UIView *)view {
|
|
33
|
-
MLRNMapView *mapView = [[MLRNMapView alloc] initWithFrame:[self defaultFrame]];
|
|
34
|
-
mapView.delegate = self;
|
|
35
|
-
|
|
36
|
-
// setup map gesture recongizers
|
|
37
|
-
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
|
|
38
|
-
action:nil];
|
|
39
|
-
doubleTap.numberOfTapsRequired = 2;
|
|
40
|
-
|
|
41
|
-
UITapGestureRecognizer *tap =
|
|
42
|
-
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapMap:)];
|
|
43
|
-
[tap requireGestureRecognizerToFail:doubleTap];
|
|
44
|
-
|
|
45
|
-
UILongPressGestureRecognizer *longPress =
|
|
46
|
-
[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(didLongPressMap:)];
|
|
47
|
-
|
|
48
|
-
// this allows the internal annotation gestures to take precedence over the map tap gesture
|
|
49
|
-
for (int i = 0; i < mapView.gestureRecognizers.count; i++) {
|
|
50
|
-
UIGestureRecognizer *gestureRecognizer = mapView.gestureRecognizers[i];
|
|
51
|
-
|
|
52
|
-
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
|
|
53
|
-
[tap requireGestureRecognizerToFail:gestureRecognizer];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
[mapView addGestureRecognizer:doubleTap];
|
|
58
|
-
[mapView addGestureRecognizer:tap];
|
|
59
|
-
[mapView addGestureRecognizer:longPress];
|
|
60
|
-
|
|
61
|
-
return mapView;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
#pragma mark - React View Props
|
|
65
|
-
|
|
66
|
-
RCT_REMAP_VIEW_PROPERTY(localizeLabels, reactLocalizeLabels, BOOL)
|
|
67
|
-
RCT_REMAP_VIEW_PROPERTY(scrollEnabled, reactScrollEnabled, BOOL)
|
|
68
|
-
RCT_REMAP_VIEW_PROPERTY(pitchEnabled, reactPitchEnabled, BOOL)
|
|
69
|
-
RCT_REMAP_VIEW_PROPERTY(rotateEnabled, reactRotateEnabled, BOOL)
|
|
70
|
-
RCT_REMAP_VIEW_PROPERTY(attributionEnabled, reactAttributionEnabled, BOOL)
|
|
71
|
-
RCT_REMAP_VIEW_PROPERTY(attributionPosition, reactAttributionPosition, NSDictionary)
|
|
72
|
-
RCT_REMAP_VIEW_PROPERTY(logoEnabled, reactLogoEnabled, BOOL)
|
|
73
|
-
RCT_REMAP_VIEW_PROPERTY(logoPosition, reactLogoPosition, NSDictionary)
|
|
74
|
-
RCT_REMAP_VIEW_PROPERTY(compassEnabled, reactCompassEnabled, BOOL)
|
|
75
|
-
RCT_REMAP_VIEW_PROPERTY(zoomEnabled, reactZoomEnabled, BOOL)
|
|
76
|
-
|
|
77
|
-
RCT_REMAP_VIEW_PROPERTY(compassViewPosition, reactCompassViewPosition, NSInteger *)
|
|
78
|
-
RCT_REMAP_VIEW_PROPERTY(compassViewMargins, reactCompassViewMargins, CGPoint)
|
|
79
|
-
|
|
80
|
-
RCT_REMAP_VIEW_PROPERTY(contentInset, reactContentInset, NSArray)
|
|
81
|
-
RCT_REMAP_VIEW_PROPERTY(mapStyle, reactMapStyle, NSString)
|
|
82
|
-
RCT_REMAP_VIEW_PROPERTY(preferredFramesPerSecond, reactPreferredFramesPerSecond, NSInteger)
|
|
83
|
-
|
|
84
|
-
RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
|
|
85
|
-
|
|
86
|
-
RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
|
|
87
|
-
RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
|
|
88
|
-
RCT_EXPORT_VIEW_PROPERTY(onMapChange, RCTBubblingEventBlock)
|
|
89
|
-
|
|
90
|
-
#pragma mark - React Methods
|
|
91
|
-
|
|
92
|
-
RCT_EXPORT_METHOD(getPointInView : (nonnull NSNumber *)reactTag atCoordinate : (
|
|
93
|
-
NSArray<NSNumber *> *)coordinate resolver : (RCTPromiseResolveBlock)
|
|
94
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
95
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
96
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
97
|
-
id view = viewRegistry[reactTag];
|
|
98
|
-
|
|
99
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
100
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
105
|
-
|
|
106
|
-
CGPoint pointInView =
|
|
107
|
-
[reactMapView convertCoordinate:CLLocationCoordinate2DMake([coordinate[1] doubleValue],
|
|
108
|
-
[coordinate[0] doubleValue])
|
|
109
|
-
toPointToView:reactMapView];
|
|
110
|
-
|
|
111
|
-
resolve(@{@"pointInView" : @[ @(pointInView.x), @(pointInView.y) ]});
|
|
112
|
-
}];
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
RCT_EXPORT_METHOD(getCoordinateFromView : (nonnull NSNumber *)reactTag atPoint : (CGPoint)
|
|
116
|
-
point resolver : (RCTPromiseResolveBlock)
|
|
117
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
118
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
119
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
120
|
-
id view = viewRegistry[reactTag];
|
|
121
|
-
|
|
122
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
123
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
128
|
-
|
|
129
|
-
CLLocationCoordinate2D coordinate = [reactMapView convertPoint:point
|
|
130
|
-
toCoordinateFromView:reactMapView];
|
|
131
|
-
|
|
132
|
-
resolve(@{@"coordinateFromView" : @[ @(coordinate.longitude), @(coordinate.latitude) ]});
|
|
133
|
-
}];
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
RCT_EXPORT_METHOD(takeSnap : (nonnull NSNumber *)reactTag writeToDisk : (BOOL)
|
|
137
|
-
writeToDisk resolver : (RCTPromiseResolveBlock)
|
|
138
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
139
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
140
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
141
|
-
id view = viewRegistry[reactTag];
|
|
142
|
-
|
|
143
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
144
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
149
|
-
NSString *uri = [reactMapView takeSnap:writeToDisk];
|
|
150
|
-
resolve(@{@"uri" : uri});
|
|
151
|
-
}];
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
RCT_EXPORT_METHOD(getVisibleBounds : (nonnull NSNumber *)reactTag resolver : (
|
|
155
|
-
RCTPromiseResolveBlock)resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
156
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
157
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
158
|
-
id view = viewRegistry[reactTag];
|
|
159
|
-
|
|
160
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
161
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
166
|
-
resolve(@{
|
|
167
|
-
@"visibleBounds" : [MLRNUtils fromCoordinateBounds:reactMapView.visibleCoordinateBounds]
|
|
168
|
-
});
|
|
169
|
-
}];
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
RCT_EXPORT_METHOD(getZoom : (nonnull NSNumber *)reactTag resolver : (RCTPromiseResolveBlock)
|
|
173
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
174
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
175
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
176
|
-
id view = viewRegistry[reactTag];
|
|
177
|
-
|
|
178
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
179
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
184
|
-
resolve(@{@"zoom" : @(reactMapView.zoomLevel)});
|
|
185
|
-
}];
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
RCT_EXPORT_METHOD(getCenter : (nonnull NSNumber *)reactTag resolver : (RCTPromiseResolveBlock)
|
|
189
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
190
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
191
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
192
|
-
id view = viewRegistry[reactTag];
|
|
193
|
-
|
|
194
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
195
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
200
|
-
resolve(@{
|
|
201
|
-
@"center" :
|
|
202
|
-
@[ @(reactMapView.centerCoordinate.longitude), @(reactMapView.centerCoordinate.latitude) ]
|
|
203
|
-
});
|
|
204
|
-
}];
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
RCT_EXPORT_METHOD(queryRenderedFeaturesAtPoint : (nonnull NSNumber *)reactTag atPoint : (
|
|
208
|
-
NSArray<NSNumber *> *)point withFilter : (NSArray *)
|
|
209
|
-
filter withLayerIDs : (NSArray<NSString *> *)layerIDs resolver : (
|
|
210
|
-
RCTPromiseResolveBlock)resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
211
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
212
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
213
|
-
id view = viewRegistry[reactTag];
|
|
214
|
-
|
|
215
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
216
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
NSSet *layerIDSet = nil;
|
|
221
|
-
if (layerIDs != nil && layerIDs.count > 0) {
|
|
222
|
-
layerIDSet = [NSSet setWithArray:layerIDs];
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
226
|
-
NSPredicate *predicate = [FilterParser parse:filter];
|
|
227
|
-
NSArray<id<MLNFeature>> *shapes = [reactMapView
|
|
228
|
-
visibleFeaturesAtPoint:CGPointMake([point[0] floatValue], [point[1] floatValue])
|
|
229
|
-
inStyleLayersWithIdentifiers:layerIDSet
|
|
230
|
-
predicate:predicate];
|
|
231
|
-
|
|
232
|
-
NSMutableArray<NSDictionary *> *features = [[NSMutableArray alloc] init];
|
|
233
|
-
for (int i = 0; i < shapes.count; i++) {
|
|
234
|
-
[features addObject:shapes[i].geoJSONDictionary];
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
resolve(@{@"data" : @{@"type" : @"FeatureCollection", @"features" : features}});
|
|
238
|
-
}];
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
RCT_EXPORT_METHOD(queryRenderedFeaturesInRect : (nonnull NSNumber *)reactTag withBBox : (
|
|
242
|
-
NSArray<NSNumber *> *)bbox withFilter : (NSArray *)filter withLayerIDs : (NSArray<NSString *> *)
|
|
243
|
-
layerIDs resolver : (RCTPromiseResolveBlock)
|
|
244
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
245
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
246
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
247
|
-
id view = viewRegistry[reactTag];
|
|
248
|
-
|
|
249
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
250
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
255
|
-
|
|
256
|
-
// bbox[top, right, bottom, left]
|
|
257
|
-
CGFloat width = [bbox[1] floatValue] - [bbox[3] floatValue];
|
|
258
|
-
CGFloat height = [bbox[0] floatValue] - [bbox[2] floatValue];
|
|
259
|
-
CGRect rect = CGRectMake([bbox[3] floatValue], [bbox[2] floatValue], width, height);
|
|
260
|
-
|
|
261
|
-
NSSet *layerIDSet = nil;
|
|
262
|
-
if (layerIDs != nil && layerIDs.count > 0) {
|
|
263
|
-
layerIDSet = [NSSet setWithArray:layerIDs];
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
NSPredicate *predicate = [FilterParser parse:filter];
|
|
267
|
-
NSArray<id<MLNFeature>> *shapes = [reactMapView visibleFeaturesInRect:rect
|
|
268
|
-
inStyleLayersWithIdentifiers:layerIDSet
|
|
269
|
-
predicate:predicate];
|
|
270
|
-
|
|
271
|
-
NSArray<NSDictionary *> *features = [self featuresToJSON:shapes];
|
|
272
|
-
|
|
273
|
-
resolve(@{@"data" : @{@"type" : @"FeatureCollection", @"features" : features}});
|
|
274
|
-
}];
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
RCT_EXPORT_METHOD(showAttribution : (nonnull NSNumber *)reactTag resolver : (RCTPromiseResolveBlock)
|
|
278
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
279
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
280
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
281
|
-
id view = viewRegistry[reactTag];
|
|
282
|
-
|
|
283
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
284
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
__weak MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
289
|
-
[reactMapView showAttribution:reactMapView];
|
|
290
|
-
resolve(nil);
|
|
291
|
-
}];
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
RCT_EXPORT_METHOD(setSourceVisibility : (nonnull NSNumber *)reactTag visible : (
|
|
295
|
-
BOOL)visible sourceId : (nonnull NSString *)sourceId sourceLayerId : (nullable NSString *)
|
|
296
|
-
sourceLayerId resolver : (RCTPromiseResolveBlock)
|
|
297
|
-
resolve rejecter : (RCTPromiseRejectBlock)reject) {
|
|
298
|
-
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager,
|
|
299
|
-
NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
300
|
-
id view = viewRegistry[reactTag];
|
|
301
|
-
|
|
302
|
-
if (![view isKindOfClass:[MLRNMapView class]]) {
|
|
303
|
-
RCTLogError(@"Invalid react tag, could not find MLRNMapView");
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
__weak MLRNMapView *reactMapView = (MLRNMapView *)view;
|
|
308
|
-
[reactMapView setSourceVisibility:visible sourceId:sourceId sourceLayerId:sourceLayerId];
|
|
309
|
-
resolve(nil);
|
|
310
|
-
}];
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
#pragma mark - UIGestureRecognizers
|
|
314
|
-
|
|
315
|
-
- (void)didTapMap:(UITapGestureRecognizer *)recognizer {
|
|
316
|
-
MLRNMapView *mapView = (MLRNMapView *)recognizer.view;
|
|
317
|
-
CGPoint screenPoint = [recognizer locationInView:mapView];
|
|
318
|
-
NSArray<MLRNSource *> *touchableSources = [mapView getAllTouchableSources];
|
|
319
|
-
|
|
320
|
-
NSMutableDictionary<NSString *, NSArray<id<MLNFeature>> *> *hits =
|
|
321
|
-
[[NSMutableDictionary alloc] init];
|
|
322
|
-
NSMutableArray<MLRNSource *> *hitTouchableSources = [[NSMutableArray alloc] init];
|
|
323
|
-
for (MLRNSource *touchableSource in touchableSources) {
|
|
324
|
-
NSDictionary<NSString *, NSNumber *> *hitbox = touchableSource.hitbox;
|
|
325
|
-
float halfWidth = [hitbox[@"width"] floatValue] / 2.f;
|
|
326
|
-
float halfHeight = [hitbox[@"height"] floatValue] / 2.f;
|
|
327
|
-
|
|
328
|
-
CGFloat top = screenPoint.y - halfHeight;
|
|
329
|
-
CGFloat left = screenPoint.x - halfWidth;
|
|
330
|
-
CGRect hitboxRect =
|
|
331
|
-
CGRectMake(left, top, [hitbox[@"width"] floatValue], [hitbox[@"height"] floatValue]);
|
|
332
|
-
|
|
333
|
-
NSArray<id<MLNFeature>> *features =
|
|
334
|
-
[mapView visibleFeaturesInRect:hitboxRect
|
|
335
|
-
inStyleLayersWithIdentifiers:[NSSet setWithArray:[touchableSource getLayerIDs]]
|
|
336
|
-
predicate:nil];
|
|
337
|
-
|
|
338
|
-
if (features.count > 0) {
|
|
339
|
-
hits[touchableSource.id] = features;
|
|
340
|
-
[hitTouchableSources addObject:touchableSource];
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
if (hits.count > 0) {
|
|
345
|
-
MLRNSource *source = [mapView getTouchableSourceWithHighestZIndex:hitTouchableSources];
|
|
346
|
-
if (source != nil && source.hasPressListener) {
|
|
347
|
-
NSArray *geoJSONDicts = [self featuresToJSON:hits[source.id]];
|
|
348
|
-
|
|
349
|
-
NSString *eventType = RCT_MAPBOX_VECTOR_SOURCE_LAYER_PRESS;
|
|
350
|
-
if ([source isKindOfClass:[MLRNShapeSource class]]) {
|
|
351
|
-
eventType = RCT_MAPBOX_SHAPE_SOURCE_LAYER_PRESS;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
CLLocationCoordinate2D coordinate = [mapView convertPoint:screenPoint
|
|
355
|
-
toCoordinateFromView:mapView];
|
|
356
|
-
|
|
357
|
-
MLRNEvent *event =
|
|
358
|
-
[MLRNEvent makeEvent:eventType
|
|
359
|
-
withPayload:@{
|
|
360
|
-
@"features" : geoJSONDicts,
|
|
361
|
-
@"point" : @{
|
|
362
|
-
@"x" : [NSNumber numberWithDouble:screenPoint.x],
|
|
363
|
-
@"y" : [NSNumber numberWithDouble:screenPoint.y]
|
|
364
|
-
},
|
|
365
|
-
@"coordinates" : @{
|
|
366
|
-
@"latitude" : [NSNumber numberWithDouble:coordinate.latitude],
|
|
367
|
-
@"longitude" : [NSNumber numberWithDouble:coordinate.longitude]
|
|
368
|
-
}
|
|
369
|
-
}];
|
|
370
|
-
[self fireEvent:event withCallback:source.onPress];
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
if (mapView.onPress == nil) {
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
MLRNMapTouchEvent *event = [MLRNMapTouchEvent makeTapEvent:mapView withPoint:screenPoint];
|
|
380
|
-
[self fireEvent:event withCallback:mapView.onPress];
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
- (void)didLongPressMap:(UILongPressGestureRecognizer *)recognizer {
|
|
384
|
-
MLRNMapView *mapView = (MLRNMapView *)recognizer.view;
|
|
385
|
-
|
|
386
|
-
if (mapView == nil || mapView.onPress == nil ||
|
|
387
|
-
recognizer.state != UIGestureRecognizerStateBegan) {
|
|
388
|
-
return;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
MLRNMapTouchEvent *event =
|
|
392
|
-
[MLRNMapTouchEvent makeLongPressEvent:mapView withPoint:[recognizer locationInView:mapView]];
|
|
393
|
-
[self fireEvent:event withCallback:mapView.onLongPress];
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
#pragma mark - MLNMapViewDelegate
|
|
397
|
-
|
|
398
|
-
- (MLNAnnotationView *)mapView:(MLNMapView *)mapView
|
|
399
|
-
viewForAnnotation:(id<MLNAnnotation>)annotation {
|
|
400
|
-
if ([annotation isKindOfClass:[MLNUserLocation class]] && mapView.userLocation != nil) {
|
|
401
|
-
MLRNMapView *reactMapView = ((MLRNMapView *)mapView);
|
|
402
|
-
if (reactMapView.useNativeUserLocationAnnotationView) {
|
|
403
|
-
return nil;
|
|
404
|
-
}
|
|
405
|
-
return [[MLRNUserLocation sharedInstance] hiddenUserAnnotation];
|
|
406
|
-
} else if ([annotation isKindOfClass:[MLRNPointAnnotation class]]) {
|
|
407
|
-
MLRNPointAnnotation *rctAnnotation = (MLRNPointAnnotation *)annotation;
|
|
408
|
-
return [rctAnnotation getAnnotationView];
|
|
409
|
-
}
|
|
410
|
-
return nil;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
- (void)mapView:(MLNMapView *)mapView
|
|
414
|
-
didChangeUserTrackingMode:(MLNUserTrackingMode)mode
|
|
415
|
-
animated:(BOOL)animated {
|
|
416
|
-
MLRNMapView *reactMapView = ((MLRNMapView *)mapView);
|
|
417
|
-
[reactMapView didChangeUserTrackingMode:mode animated:animated];
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
- (void)mapView:(MLNMapView *)mapView didSelectAnnotation:(nonnull id<MLNAnnotation>)annotation {
|
|
421
|
-
if ([annotation isKindOfClass:[MLRNPointAnnotation class]]) {
|
|
422
|
-
MLRNPointAnnotation *rctAnnotation = (MLRNPointAnnotation *)annotation;
|
|
423
|
-
|
|
424
|
-
if (rctAnnotation.onSelected != nil) {
|
|
425
|
-
MLRNMapTouchEvent *event = [MLRNMapTouchEvent makeAnnotationTapEvent:rctAnnotation];
|
|
426
|
-
rctAnnotation.onSelected([event toJSON]);
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
- (void)mapView:(MLNMapView *)mapView didDeselectAnnotation:(nonnull id<MLNAnnotation>)annotation {
|
|
432
|
-
if ([annotation isKindOfClass:[MLRNPointAnnotation class]]) {
|
|
433
|
-
MLRNPointAnnotation *rctAnnotation = (MLRNPointAnnotation *)annotation;
|
|
434
|
-
|
|
435
|
-
if (rctAnnotation.onDeselected != nil) {
|
|
436
|
-
rctAnnotation.onDeselected(nil);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
- (BOOL)mapView:(MLNMapView *)mapView annotationCanShowCallout:(id<MLNAnnotation>)annotation {
|
|
442
|
-
if ([annotation isKindOfClass:[MLRNPointAnnotation class]]) {
|
|
443
|
-
MLRNPointAnnotation *rctAnnotation = (MLRNPointAnnotation *)annotation;
|
|
444
|
-
return rctAnnotation.calloutView != nil;
|
|
445
|
-
}
|
|
446
|
-
return NO;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
- (UIView<MLNCalloutView> *)mapView:(MLNMapView *)mapView
|
|
450
|
-
calloutViewForAnnotation:(id<MLNAnnotation>)annotation {
|
|
451
|
-
if ([annotation isKindOfClass:[MLRNPointAnnotation class]]) {
|
|
452
|
-
MLRNPointAnnotation *rctAnnotation = (MLRNPointAnnotation *)annotation;
|
|
453
|
-
return rctAnnotation.calloutView;
|
|
454
|
-
}
|
|
455
|
-
return nil;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
- (BOOL)mapView:(MLNMapView *)mapView
|
|
459
|
-
shouldChangeFromCamera:(MLNMapCamera *)oldCamera
|
|
460
|
-
toCamera:(MLNMapCamera *)newCamera {
|
|
461
|
-
MLRNMapView *reactMapView = ((MLRNMapView *)mapView);
|
|
462
|
-
return MLNCoordinateBoundsIsEmpty(reactMapView.maxBounds) ||
|
|
463
|
-
MLNCoordinateInCoordinateBounds(newCamera.centerCoordinate, reactMapView.maxBounds);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
- (void)mapView:(MLNMapView *)mapView
|
|
467
|
-
regionWillChangeWithReason:(MLNCameraChangeReason)reason
|
|
468
|
-
animated:(BOOL)animated {
|
|
469
|
-
((MLRNMapView *)mapView).isUserInteraction = (BOOL)(reason & ~MLNCameraChangeReasonProgrammatic);
|
|
470
|
-
NSDictionary *payload = [self _makeRegionPayload:mapView animated:animated];
|
|
471
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_REGION_WILL_CHANGE_EVENT andPayload:payload];
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
- (void)mapViewRegionIsChanging:(MLNMapView *)mapView {
|
|
475
|
-
NSDictionary *payload = [self _makeRegionPayload:mapView animated:false];
|
|
476
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_REGION_IS_CHANGING andPayload:payload];
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
- (void)mapView:(MLNMapView *)mapView
|
|
480
|
-
regionDidChangeWithReason:(MLNCameraChangeReason)reason
|
|
481
|
-
animated:(BOOL)animated {
|
|
482
|
-
if (((reason & MLNCameraChangeReasonTransitionCancelled) ==
|
|
483
|
-
MLNCameraChangeReasonTransitionCancelled) &&
|
|
484
|
-
((reason & MLNCameraChangeReasonGesturePan) != MLNCameraChangeReasonGesturePan))
|
|
485
|
-
return;
|
|
486
|
-
|
|
487
|
-
((MLRNMapView *)mapView).isUserInteraction = (BOOL)(reason & ~MLNCameraChangeReasonProgrammatic);
|
|
488
|
-
|
|
489
|
-
NSDictionary *payload = [self _makeRegionPayload:mapView animated:animated];
|
|
490
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_REGION_DID_CHANGE andPayload:payload];
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
- (void)mapViewWillStartLoadingMap:(MLNMapView *)mapView {
|
|
494
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_WILL_START_LOADING_MAP];
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
- (void)mapViewDidFinishLoadingMap:(MLNMapView *)mapView {
|
|
498
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FINISH_LOADING_MAP];
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
- (void)mapViewDidFailLoadingMap:(MLNMapView *)mapView withError:(NSError *)error {
|
|
502
|
-
NSLog(@"Failed loading map %@", error);
|
|
503
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FAIL_LOADING_MAP];
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
- (void)mapViewWillStartRenderingFrame:(MLNMapView *)mapView {
|
|
507
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_WILL_START_RENDERING_FRAME];
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
- (void)mapViewDidFinishRenderingFrame:(MLNMapView *)mapView fullyRendered:(BOOL)fullyRendered {
|
|
511
|
-
if (fullyRendered) {
|
|
512
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FINISH_RENDERING_FRAME_FULLY];
|
|
513
|
-
} else {
|
|
514
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FINSIH_RENDERING_FRAME];
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
- (void)mapViewWillStartRenderingMap:(MLNMapView *)mapView {
|
|
519
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_WILL_START_RENDERING_MAP];
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
- (void)mapViewDidFinishRenderingMap:(MLNMapView *)mapView fullyRendered:(BOOL)fullyRendered {
|
|
523
|
-
if (fullyRendered) {
|
|
524
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FINISH_RENDERING_MAP_FULLY];
|
|
525
|
-
} else {
|
|
526
|
-
[self reactMapDidChange:mapView eventType:RCT_MAPBOX_DID_FINISH_RENDERING_MAP];
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
- (void)mapView:(MLNMapView *)mapView didFinishLoadingStyle:(MLNStyle *)style {
|
|
531
|
-
MLRNMapView *reactMapView = (MLRNMapView *)mapView;
|
|
532
|
-
if (reactMapView.reactLocalizeLabels == true) {
|
|
533
|
-
[style localizeLabelsIntoLocale:nil];
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
for (int i = 0; i < reactMapView.sources.count; i++) {
|
|
537
|
-
MLRNSource *source = reactMapView.sources[i];
|
|
538
|
-
source.map = reactMapView;
|
|
539
|
-
}
|
|
540
|
-
for (int i = 0; i < reactMapView.layers.count; i++) {
|
|
541
|
-
MLRNLayer *layer = reactMapView.layers[i];
|
|
542
|
-
layer.map = reactMapView;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
if (reactMapView.light != nil) {
|
|
546
|
-
reactMapView.light.map = reactMapView;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
[reactMapView notifyStyleLoaded];
|
|
550
|
-
[self reactMapDidChange:reactMapView eventType:RCT_MAPBOX_DID_FINISH_LOADING_STYLE];
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
- (UIImage *)mapView:(MLNMapView *)mapView didFailToLoadImage:(NSString *)imageName {
|
|
554
|
-
MLRNMapView *reactMapView = ((MLRNMapView *)mapView);
|
|
555
|
-
NSArray<MLRNImages *> *allImages = [reactMapView getAllImages];
|
|
556
|
-
for (MLRNImages *images in allImages) {
|
|
557
|
-
if ([images addMissingImageToStyle:imageName]) {
|
|
558
|
-
// The image was added inside addMissingImageToStyle so we can return nil
|
|
559
|
-
return nil;
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
for (MLRNImages *images in allImages) {
|
|
564
|
-
[images sendImageMissingEvent:imageName];
|
|
565
|
-
}
|
|
566
|
-
return nil;
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
- (void)reactMapDidChange:(MLNMapView *)mapView eventType:(NSString *)type {
|
|
570
|
-
[self reactMapDidChange:mapView eventType:type andPayload:nil];
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
- (void)reactMapDidChange:(MLNMapView *)mapView
|
|
574
|
-
eventType:(NSString *)type
|
|
575
|
-
andPayload:(NSDictionary *)payload {
|
|
576
|
-
MLRNMapView *reactMapView = (MLRNMapView *)mapView;
|
|
577
|
-
MLRNEvent *event = [MLRNEvent makeEvent:type withPayload:payload];
|
|
578
|
-
[self fireEvent:event withCallback:reactMapView.onMapChange];
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
- (NSDictionary *)_makeRegionPayload:(MLNMapView *)mapView animated:(BOOL)animated {
|
|
582
|
-
MLRNMapView *rctMapView = (MLRNMapView *)mapView;
|
|
583
|
-
MLNPointFeature *feature = [[MLNPointFeature alloc] init];
|
|
584
|
-
feature.coordinate = mapView.centerCoordinate;
|
|
585
|
-
feature.attributes = @{
|
|
586
|
-
@"zoomLevel" : [NSNumber numberWithDouble:mapView.zoomLevel],
|
|
587
|
-
@"heading" : [NSNumber numberWithDouble:mapView.camera.heading],
|
|
588
|
-
@"pitch" : [NSNumber numberWithDouble:mapView.camera.pitch],
|
|
589
|
-
@"animated" : [NSNumber numberWithBool:animated],
|
|
590
|
-
@"isUserInteraction" : @(rctMapView.isUserInteraction),
|
|
591
|
-
@"visibleBounds" : [MLRNUtils fromCoordinateBounds:mapView.visibleCoordinateBounds]
|
|
592
|
-
};
|
|
593
|
-
return feature.geoJSONDictionary;
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
- (NSArray<NSDictionary *> *)featuresToJSON:(NSArray<id<MLNFeature>> *)features {
|
|
597
|
-
NSMutableArray<NSDictionary *> *json = [[NSMutableArray alloc] init];
|
|
598
|
-
for (id<MLNFeature> feature in features) {
|
|
599
|
-
[json addObject:feature.geoJSONDictionary];
|
|
600
|
-
}
|
|
601
|
-
return json;
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
@end
|