@maplibre/maplibre-react-native 11.0.0-alpha.7 → 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/MapLibreReactNative.podspec +1 -1
- 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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type CodegenTypes,
|
|
3
|
+
type TurboModule,
|
|
4
|
+
TurboModuleRegistry,
|
|
5
|
+
} from "react-native";
|
|
6
|
+
|
|
7
|
+
type NativeViewState = {
|
|
8
|
+
longitude: CodegenTypes.Double;
|
|
9
|
+
latitude: CodegenTypes.Double;
|
|
10
|
+
zoom: CodegenTypes.Double;
|
|
11
|
+
bearing: CodegenTypes.Double;
|
|
12
|
+
pitch: CodegenTypes.Double;
|
|
13
|
+
bounds: CodegenTypes.Double[];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export interface Spec extends TurboModule {
|
|
17
|
+
getCenter: (reactTag: CodegenTypes.Int32) => Promise<{
|
|
18
|
+
longitude: CodegenTypes.Double;
|
|
19
|
+
latitude: CodegenTypes.Double;
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
getZoom: (reactTag: CodegenTypes.Int32) => Promise<CodegenTypes.Double>;
|
|
23
|
+
|
|
24
|
+
getBearing: (reactTag: CodegenTypes.Int32) => Promise<CodegenTypes.Double>;
|
|
25
|
+
|
|
26
|
+
getPitch: (reactTag: CodegenTypes.Int32) => Promise<CodegenTypes.Double>;
|
|
27
|
+
|
|
28
|
+
getBounds: (reactTag: CodegenTypes.Int32) => Promise<CodegenTypes.Double[]>;
|
|
29
|
+
|
|
30
|
+
getViewState: (reactTag: CodegenTypes.Int32) => Promise<NativeViewState>;
|
|
31
|
+
|
|
32
|
+
project: (
|
|
33
|
+
reactTag: CodegenTypes.Int32,
|
|
34
|
+
coordinate: {
|
|
35
|
+
longitude: CodegenTypes.Double;
|
|
36
|
+
latitude: CodegenTypes.Double;
|
|
37
|
+
},
|
|
38
|
+
) => Promise<{
|
|
39
|
+
locationX: CodegenTypes.Double;
|
|
40
|
+
locationY: CodegenTypes.Double;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
unproject: (
|
|
44
|
+
reactTag: CodegenTypes.Int32,
|
|
45
|
+
point: { locationX: CodegenTypes.Double; locationY: CodegenTypes.Double },
|
|
46
|
+
) => Promise<{
|
|
47
|
+
longitude: CodegenTypes.Double;
|
|
48
|
+
latitude: CodegenTypes.Double;
|
|
49
|
+
}>;
|
|
50
|
+
|
|
51
|
+
queryRenderedFeaturesWithCoordinate: (
|
|
52
|
+
reactTag: CodegenTypes.Int32,
|
|
53
|
+
coordinate: {
|
|
54
|
+
longitude: CodegenTypes.Double;
|
|
55
|
+
latitude: CodegenTypes.Double;
|
|
56
|
+
},
|
|
57
|
+
layers: string[],
|
|
58
|
+
filter: string[],
|
|
59
|
+
) => Promise<object>;
|
|
60
|
+
|
|
61
|
+
queryRenderedFeaturesWithBounds: (
|
|
62
|
+
reactTag: CodegenTypes.Int32,
|
|
63
|
+
bounds: CodegenTypes.Double[],
|
|
64
|
+
layers: string[],
|
|
65
|
+
filter: string[],
|
|
66
|
+
) => Promise<object>;
|
|
67
|
+
|
|
68
|
+
setSourceVisibility: (
|
|
69
|
+
reactTag: CodegenTypes.Int32,
|
|
70
|
+
visible: boolean,
|
|
71
|
+
sourceId: string,
|
|
72
|
+
sourceLayerId: string | null,
|
|
73
|
+
) => Promise<void>;
|
|
74
|
+
|
|
75
|
+
takeSnap: (
|
|
76
|
+
reactTag: CodegenTypes.Int32,
|
|
77
|
+
writeToDisk: boolean,
|
|
78
|
+
) => Promise<string>;
|
|
79
|
+
|
|
80
|
+
showAttribution: (reactTag: CodegenTypes.Int32) => Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export default TurboModuleRegistry.getEnforcing<Spec>("MLRNMapViewModule");
|
package/src/index.ts
CHANGED
|
@@ -1 +1,86 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./MLRNModule";
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
type CameraOptions,
|
|
5
|
+
type CameraEasing,
|
|
6
|
+
type CameraAnimationOptions,
|
|
7
|
+
type CameraCenterOptions,
|
|
8
|
+
type CameraBoundsOptions,
|
|
9
|
+
type CameraCenterStop,
|
|
10
|
+
type CameraBoundsStop,
|
|
11
|
+
type CameraStop,
|
|
12
|
+
type InitialViewState,
|
|
13
|
+
type CameraRef,
|
|
14
|
+
type TrackUserLocation,
|
|
15
|
+
type TrackUserLocationChangeEvent,
|
|
16
|
+
type CameraProps,
|
|
17
|
+
Camera,
|
|
18
|
+
} from "./components/camera/Camera";
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
MapView,
|
|
22
|
+
type MapViewRef,
|
|
23
|
+
type ViewState,
|
|
24
|
+
type ViewStateChangeEvent,
|
|
25
|
+
} from "./components/map-view/MapView";
|
|
26
|
+
|
|
27
|
+
export { Light } from "./components/Light";
|
|
28
|
+
export { PointAnnotation } from "./components/PointAnnotation";
|
|
29
|
+
export type { PointAnnotationRef } from "./components/PointAnnotation";
|
|
30
|
+
export { Annotation } from "./components/Annotation";
|
|
31
|
+
export { Callout } from "./components/Callout";
|
|
32
|
+
export { requestAndroidLocationPermissions } from "./requestAndroidLocationPermissions";
|
|
33
|
+
export {
|
|
34
|
+
UserLocation,
|
|
35
|
+
UserLocationRenderMode,
|
|
36
|
+
} from "./components/UserLocation";
|
|
37
|
+
export type { UserLocationRef } from "./components/UserLocation";
|
|
38
|
+
export { VectorSource } from "./components/VectorSource";
|
|
39
|
+
export { ShapeSource } from "./components/ShapeSource";
|
|
40
|
+
export type { ShapeSourceRef } from "./components/ShapeSource";
|
|
41
|
+
export { RasterSource } from "./components/RasterSource";
|
|
42
|
+
export { ImageSource } from "./components/ImageSource";
|
|
43
|
+
export { Images } from "./components/Images";
|
|
44
|
+
export { FillLayer } from "./components/FillLayer";
|
|
45
|
+
export { FillExtrusionLayer } from "./components/FillExtrusionLayer";
|
|
46
|
+
export { HeatmapLayer } from "./components/HeatmapLayer";
|
|
47
|
+
export { LineLayer } from "./components/LineLayer";
|
|
48
|
+
export { CircleLayer } from "./components/CircleLayer";
|
|
49
|
+
export { SymbolLayer } from "./components/SymbolLayer";
|
|
50
|
+
export { RasterLayer } from "./components/RasterLayer";
|
|
51
|
+
export { BackgroundLayer } from "./components/BackgroundLayer";
|
|
52
|
+
export { MarkerView } from "./components/MarkerView";
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
LocationManager,
|
|
56
|
+
type Location,
|
|
57
|
+
} from "./modules/location/LocationManager";
|
|
58
|
+
export { OfflineManager } from "./modules/offline/OfflineManager";
|
|
59
|
+
export type { OfflinePackError } from "./modules/offline/OfflineManager";
|
|
60
|
+
export type { OfflinePackStatus } from "./modules/offline/OfflinePack";
|
|
61
|
+
export { OfflinePack } from "./modules/offline/OfflinePack";
|
|
62
|
+
export { OfflineCreatePackOptions } from "./modules/offline/OfflineCreatePackOptions";
|
|
63
|
+
export { SnapshotManager } from "./modules/snapshot/SnapshotManager";
|
|
64
|
+
export type { SnapshotInputOptions } from "./modules/snapshot/SnapshotOptions";
|
|
65
|
+
|
|
66
|
+
export type { Bounds } from "./types/Bounds";
|
|
67
|
+
export type {
|
|
68
|
+
FillLayerStyle,
|
|
69
|
+
LineLayerStyle,
|
|
70
|
+
SymbolLayerStyle,
|
|
71
|
+
CircleLayerStyle,
|
|
72
|
+
HeatmapLayerStyle,
|
|
73
|
+
FillExtrusionLayerStyle,
|
|
74
|
+
RasterLayerStyle,
|
|
75
|
+
HillshadeLayerStyle,
|
|
76
|
+
BackgroundLayerStyle,
|
|
77
|
+
LightLayerStyle,
|
|
78
|
+
Expression,
|
|
79
|
+
} from "./types/MapLibreRNStyles";
|
|
80
|
+
export type { PressEvent, PressEventWithFeatures } from "./types/PressEvent";
|
|
81
|
+
export type { ViewPadding } from "./types/ViewPadding";
|
|
82
|
+
|
|
83
|
+
export { Animated } from "./utils/animated/Animated";
|
|
84
|
+
export { Logger, type LogLevel } from "./utils/Logger";
|
|
85
|
+
|
|
86
|
+
export type { MapLibrePluginProps } from "./plugin/MapLibrePluginProps";
|
|
@@ -20,5 +20,4 @@ export interface Spec extends TurboModule {
|
|
|
20
20
|
takeSnap(options: SnapshotJsonOptions): Promise<string>;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export
|
|
24
|
-
TurboModuleRegistry.getEnforcing<Spec>("MLRNSnapshotModule");
|
|
23
|
+
export default TurboModuleRegistry.getEnforcing<Spec>("MLRNSnapshotModule");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Bounds = [west: number, south: number, east: number, north: number];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface PressEvent {
|
|
2
|
+
longitude: number;
|
|
3
|
+
|
|
4
|
+
latitude: number;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Touch origin X coordinate inside touchable area (relative to the element).
|
|
8
|
+
*/
|
|
9
|
+
locationX: number;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Touch origin Y coordinate inside touchable area (relative to the element).
|
|
13
|
+
*/
|
|
14
|
+
locationY: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface PressEventWithFeatures extends PressEvent {
|
|
18
|
+
features: GeoJSON.Feature[];
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This type makes it possible to us strict types in TypeScript while being
|
|
3
|
+
* loose on native.
|
|
4
|
+
*
|
|
5
|
+
* RN codegen specifies `type UnsafeMixed = unknown` mapping to folly::dynamic.
|
|
6
|
+
* During codegen only the name of the type is analyzed, making it possible to
|
|
7
|
+
* override their type this way.
|
|
8
|
+
*/
|
|
9
|
+
export type UnsafeMixed<T> = T;
|
package/src/utils/index.ts
CHANGED
|
@@ -12,14 +12,7 @@ export function isAndroid(): boolean {
|
|
|
12
12
|
return Platform.OS === "android";
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export function
|
|
16
|
-
if (!cur && !next) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
return (!cur && next) || (cur && !next);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function isFunction(fn: unknown): fn is boolean {
|
|
15
|
+
export function isFunction(fn: unknown): fn is Function {
|
|
23
16
|
return typeof fn === "function";
|
|
24
17
|
}
|
|
25
18
|
|
|
@@ -39,12 +32,6 @@ export function isBoolean(bool: unknown): bool is boolean {
|
|
|
39
32
|
return typeof bool === "boolean";
|
|
40
33
|
}
|
|
41
34
|
|
|
42
|
-
export function isPrimitive(
|
|
43
|
-
value: unknown,
|
|
44
|
-
): value is string | number | boolean {
|
|
45
|
-
return isString(value) || isNumber(value) || isBoolean(value);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
35
|
export type NativeArg =
|
|
49
36
|
| string
|
|
50
37
|
| number
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
package org.maplibre.reactnative.components;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.WritableMap;
|
|
4
|
-
import com.facebook.react.uimanager.events.Event;
|
|
5
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
6
|
-
|
|
7
|
-
import javax.annotation.Nullable;
|
|
8
|
-
|
|
9
|
-
public class AbstractEvent extends Event<AbstractEvent> {
|
|
10
|
-
private String mEventName;
|
|
11
|
-
private final boolean mCanCoalesce;
|
|
12
|
-
private WritableMap mEvent;
|
|
13
|
-
|
|
14
|
-
public AbstractEvent(int viewId, String eventName, boolean canCoalesce, @Nullable WritableMap event) {
|
|
15
|
-
super(viewId);
|
|
16
|
-
mEventName = eventName;
|
|
17
|
-
mCanCoalesce = canCoalesce;
|
|
18
|
-
mEvent = event;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
public String getEventName() {
|
|
23
|
-
return mEventName;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
|
28
|
-
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), mEvent);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@Override
|
|
32
|
-
public boolean canCoalesce() {
|
|
33
|
-
return mCanCoalesce;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
package org.maplibre.reactnative.components;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import org.maplibre.reactnative.BuildConfig;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.common.MapBuilder;
|
|
8
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
-
import com.facebook.react.uimanager.UIManagerHelper;
|
|
10
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
11
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
12
|
-
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
13
|
-
import com.facebook.react.uimanager.common.UIManagerType;
|
|
14
|
-
|
|
15
|
-
import org.maplibre.reactnative.events.IEvent;
|
|
16
|
-
|
|
17
|
-
import java.util.HashMap;
|
|
18
|
-
import java.util.Map;
|
|
19
|
-
|
|
20
|
-
import javax.annotation.Nullable;
|
|
21
|
-
import javax.annotation.Nonnull;
|
|
22
|
-
|
|
23
|
-
abstract public class AbstractEventEmitter<T extends ViewGroup> extends ViewGroupManager<T> {
|
|
24
|
-
private static final double BRIDGE_TIMEOUT_MS = 10;
|
|
25
|
-
private Map<String, Long> mRateLimitedEvents;
|
|
26
|
-
private EventDispatcher mEventDispatcher;
|
|
27
|
-
private ReactApplicationContext mRCTAppContext;
|
|
28
|
-
|
|
29
|
-
public AbstractEventEmitter(ReactApplicationContext reactApplicationContext) {
|
|
30
|
-
mRateLimitedEvents = new HashMap<>();
|
|
31
|
-
mRCTAppContext = reactApplicationContext;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public void handleEvent(IEvent event) {
|
|
35
|
-
String eventCacheKey = getEventCacheKey(event);
|
|
36
|
-
|
|
37
|
-
// fail safe to protect bridge from being spammed
|
|
38
|
-
if (shouldDropEvent(eventCacheKey, event)) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
mRateLimitedEvents.put(eventCacheKey, System.currentTimeMillis());
|
|
43
|
-
mEventDispatcher.dispatchEvent(new AbstractEvent(event.getID(), event.getKey(), event.canCoalesce(), event.toJSON()));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@Override
|
|
47
|
-
protected void addEventEmitters(ThemedReactContext context, @Nonnull T view) {
|
|
48
|
-
mEventDispatcher = UIManagerHelper.getUIManager(context, UIManagerType.FABRIC).getEventDispatcher();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@Nullable
|
|
52
|
-
@Override
|
|
53
|
-
public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
|
|
54
|
-
Map<String, String> events = customEvents();
|
|
55
|
-
|
|
56
|
-
if (events == null) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
Map<String, Object> exportedEvents = new HashMap<>();
|
|
61
|
-
|
|
62
|
-
for (Map.Entry<String, String> event : events.entrySet()) {
|
|
63
|
-
exportedEvents.put(event.getKey(), MapBuilder.of("registrationName", event.getValue()));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return exportedEvents;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@Nullable
|
|
70
|
-
public abstract Map<String, String> customEvents();
|
|
71
|
-
|
|
72
|
-
private boolean shouldDropEvent(String cacheKey, IEvent event) {
|
|
73
|
-
Long lastEventTimestamp = mRateLimitedEvents.get(cacheKey);
|
|
74
|
-
return lastEventTimestamp != null && (event.getTimestamp() - lastEventTimestamp) <= BRIDGE_TIMEOUT_MS;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
private String getEventCacheKey(IEvent event) {
|
|
78
|
-
return String.format("%s-%s", event.getKey(), event.getType());
|
|
79
|
-
}
|
|
80
|
-
}
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
package org.maplibre.reactnative.components.camera;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import androidx.annotation.NonNull;
|
|
5
|
-
import android.util.DisplayMetrics;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
-
import org.maplibre.geojson.FeatureCollection;
|
|
9
|
-
import org.maplibre.geojson.Point;
|
|
10
|
-
import org.maplibre.android.camera.CameraPosition;
|
|
11
|
-
import org.maplibre.android.camera.CameraUpdate;
|
|
12
|
-
import org.maplibre.android.camera.CameraUpdateFactory;
|
|
13
|
-
import org.maplibre.android.geometry.LatLng;
|
|
14
|
-
import org.maplibre.android.geometry.LatLngBounds;
|
|
15
|
-
import org.maplibre.android.maps.MapLibreMap;
|
|
16
|
-
|
|
17
|
-
import org.maplibre.reactnative.components.camera.constants.CameraMode;
|
|
18
|
-
import org.maplibre.reactnative.utils.GeoJSONUtils;
|
|
19
|
-
import org.maplibre.reactnative.components.mapview.MLRNMapView;
|
|
20
|
-
|
|
21
|
-
public class CameraStop {
|
|
22
|
-
private Double mBearing;
|
|
23
|
-
private Double mTilt;
|
|
24
|
-
private Double mZoom;
|
|
25
|
-
private LatLng mLatLng;
|
|
26
|
-
|
|
27
|
-
private LatLngBounds mBounds;
|
|
28
|
-
private int mPaddingLeft = 0;
|
|
29
|
-
private int mPaddingRight = 0;
|
|
30
|
-
private int mPaddingBottom = 0;
|
|
31
|
-
private int mPaddingTop = 0;
|
|
32
|
-
|
|
33
|
-
private int mMode = CameraMode.EASE;
|
|
34
|
-
private int mDuration = 2000;
|
|
35
|
-
private MapLibreMap.CancelableCallback mCallback;
|
|
36
|
-
|
|
37
|
-
public CameraStop() {
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public void setBearing(double bearing) {
|
|
41
|
-
mBearing = bearing;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public void setTilt(double tilt) {
|
|
45
|
-
mTilt = tilt;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public void setZoom(double zoom) {
|
|
49
|
-
mZoom = zoom;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
public void setLatLng(LatLng latLng) {
|
|
53
|
-
mLatLng = latLng;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public void setDuration(int duration) {
|
|
57
|
-
mDuration = duration;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public void setCallback(MapLibreMap.CancelableCallback callback) {
|
|
61
|
-
mCallback = callback;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public void setBounds(LatLngBounds bounds) {
|
|
65
|
-
mBounds = bounds;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public void setPadding(int paddingLeft, int paddingRight, int paddingTop, int paddingBottom) {
|
|
69
|
-
mPaddingLeft = paddingLeft;
|
|
70
|
-
mPaddingRight = paddingRight;
|
|
71
|
-
mPaddingTop = paddingTop;
|
|
72
|
-
mPaddingBottom = paddingBottom;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public void setMode(@CameraMode.Mode int mode) {
|
|
76
|
-
mMode = mode;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public CameraUpdateItem toCameraUpdate(MLRNMapView mapView) {
|
|
80
|
-
MapLibreMap map = mapView.getMapboxMap();
|
|
81
|
-
CameraPosition currentCamera = map.getCameraPosition();
|
|
82
|
-
CameraPosition.Builder builder = new CameraPosition.Builder(currentCamera);
|
|
83
|
-
|
|
84
|
-
// Adding map padding to the camera padding which is the same behavior as
|
|
85
|
-
// mapbox native does on iOS
|
|
86
|
-
double[] contentInset = mapView.getContentInset();
|
|
87
|
-
|
|
88
|
-
int paddingLeft = Double.valueOf(contentInset[0] + mPaddingLeft).intValue();
|
|
89
|
-
int paddingTop = Double.valueOf(contentInset[1] + mPaddingTop).intValue();
|
|
90
|
-
int paddingRight = Double.valueOf(contentInset[2] + mPaddingRight).intValue();
|
|
91
|
-
int paddingBottom = Double.valueOf(contentInset[3] + mPaddingBottom).intValue();
|
|
92
|
-
|
|
93
|
-
int[] cameraPadding = {paddingLeft, paddingTop, paddingRight, paddingBottom};
|
|
94
|
-
int[] cameraPaddingClipped = clippedPadding(cameraPadding, mapView);
|
|
95
|
-
|
|
96
|
-
boolean hasSetZoom = false;
|
|
97
|
-
|
|
98
|
-
if (mLatLng != null) {
|
|
99
|
-
builder.target(mLatLng);
|
|
100
|
-
builder.padding(
|
|
101
|
-
cameraPaddingClipped[0],
|
|
102
|
-
cameraPaddingClipped[1],
|
|
103
|
-
cameraPaddingClipped[2],
|
|
104
|
-
cameraPaddingClipped[3]
|
|
105
|
-
);
|
|
106
|
-
} else if (mBounds != null) {
|
|
107
|
-
double tilt = mTilt != null ? mTilt : currentCamera.tilt;
|
|
108
|
-
double bearing = mBearing != null ? mBearing : currentCamera.bearing;
|
|
109
|
-
|
|
110
|
-
CameraPosition boundsCamera = map.getCameraForLatLngBounds(mBounds, cameraPaddingClipped, bearing, tilt);
|
|
111
|
-
if (boundsCamera != null) {
|
|
112
|
-
builder.target(boundsCamera.target);
|
|
113
|
-
builder.zoom(boundsCamera.zoom);
|
|
114
|
-
builder.padding(boundsCamera.padding);
|
|
115
|
-
} else {
|
|
116
|
-
CameraUpdate update = CameraUpdateFactory.newLatLngBounds(
|
|
117
|
-
mBounds,
|
|
118
|
-
cameraPaddingClipped[0],
|
|
119
|
-
cameraPaddingClipped[1],
|
|
120
|
-
cameraPaddingClipped[2],
|
|
121
|
-
cameraPaddingClipped[3]
|
|
122
|
-
);
|
|
123
|
-
return new CameraUpdateItem(map, update, mDuration, mCallback, mMode);
|
|
124
|
-
}
|
|
125
|
-
hasSetZoom = true;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (mBearing != null) {
|
|
129
|
-
builder.bearing(mBearing);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (mTilt != null) {
|
|
133
|
-
builder.tilt(mTilt);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (mZoom != null && !hasSetZoom) {
|
|
137
|
-
builder.zoom(mZoom);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return new CameraUpdateItem(map, CameraUpdateFactory.newCameraPosition(builder.build()), mDuration, mCallback, mMode);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
public static CameraStop fromReadableMap(Context context, @NonNull ReadableMap readableMap, MapLibreMap.CancelableCallback callback) {
|
|
144
|
-
CameraStop stop = new CameraStop();
|
|
145
|
-
|
|
146
|
-
if (readableMap.hasKey("pitch")) {
|
|
147
|
-
stop.setTilt(readableMap.getDouble("pitch"));
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (readableMap.hasKey("heading")) {
|
|
151
|
-
stop.setBearing(readableMap.getDouble("heading"));
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
int paddingTop = getPaddingByKey(readableMap, "paddingTop");
|
|
155
|
-
int paddingRight = getPaddingByKey(readableMap, "paddingRight");
|
|
156
|
-
int paddingBottom = getPaddingByKey(readableMap, "paddingBottom");
|
|
157
|
-
int paddingLeft = getPaddingByKey(readableMap, "paddingLeft");
|
|
158
|
-
|
|
159
|
-
// scale padding by pixel ratio
|
|
160
|
-
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
|
161
|
-
paddingTop = Float.valueOf(paddingTop * metrics.scaledDensity).intValue();
|
|
162
|
-
paddingRight = Float.valueOf(paddingRight * metrics.scaledDensity).intValue();
|
|
163
|
-
paddingBottom = Float.valueOf(paddingBottom * metrics.scaledDensity).intValue();
|
|
164
|
-
paddingLeft = Float.valueOf(paddingLeft * metrics.scaledDensity).intValue();
|
|
165
|
-
|
|
166
|
-
stop.setPadding(
|
|
167
|
-
paddingLeft,
|
|
168
|
-
paddingRight,
|
|
169
|
-
paddingTop,
|
|
170
|
-
paddingBottom
|
|
171
|
-
);
|
|
172
|
-
|
|
173
|
-
if (readableMap.hasKey("centerCoordinate")) {
|
|
174
|
-
Point target = GeoJSONUtils.toPointGeometry(readableMap.getString("centerCoordinate"));
|
|
175
|
-
stop.setLatLng(GeoJSONUtils.toLatLng(target));
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if (readableMap.hasKey("zoom")) {
|
|
179
|
-
stop.setZoom(readableMap.getDouble("zoom"));
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (readableMap.hasKey("duration")) {
|
|
183
|
-
stop.setDuration(readableMap.getInt("duration"));
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (readableMap.hasKey("bounds")) {
|
|
187
|
-
FeatureCollection collection = FeatureCollection.fromJson(readableMap.getString("bounds"));
|
|
188
|
-
stop.setBounds(GeoJSONUtils.toLatLngBounds(collection));
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
if (readableMap.hasKey("mode")) {
|
|
192
|
-
switch (readableMap.getInt("mode")) {
|
|
193
|
-
case CameraMode.FLIGHT:
|
|
194
|
-
stop.setMode(CameraMode.FLIGHT);
|
|
195
|
-
break;
|
|
196
|
-
case CameraMode.LINEAR:
|
|
197
|
-
stop.setMode(CameraMode.LINEAR);
|
|
198
|
-
break;
|
|
199
|
-
case CameraMode.NONE:
|
|
200
|
-
stop.setMode(CameraMode.NONE);
|
|
201
|
-
break;
|
|
202
|
-
default:
|
|
203
|
-
stop.setMode(CameraMode.EASE);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
stop.setCallback(callback);
|
|
208
|
-
return stop;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
private static int[] clippedPadding(int[] padding, MLRNMapView mapView) {
|
|
212
|
-
int mapHeight = mapView.getHeight();
|
|
213
|
-
int mapWidth = mapView.getWidth();
|
|
214
|
-
|
|
215
|
-
int left = padding[0];
|
|
216
|
-
int top = padding[1];
|
|
217
|
-
int right = padding[2];
|
|
218
|
-
int bottom = padding[3];
|
|
219
|
-
|
|
220
|
-
int resultLeft = left;
|
|
221
|
-
int resultTop = top;
|
|
222
|
-
int resultRight = right;
|
|
223
|
-
int resultBottom = bottom;
|
|
224
|
-
|
|
225
|
-
if (top + bottom >= mapHeight) {
|
|
226
|
-
double totalPadding = top + bottom;
|
|
227
|
-
double extra = totalPadding - mapHeight + 1.0; // add 1 to compensate for floating point math
|
|
228
|
-
resultTop -= (top * extra) / totalPadding;
|
|
229
|
-
resultBottom -= (bottom * extra) / totalPadding;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if (left + right >= mapWidth) {
|
|
233
|
-
double totalPadding = left + right;
|
|
234
|
-
double extra = totalPadding - mapWidth + 1.0; // add 1 to compensate for floating point math
|
|
235
|
-
resultLeft -= (left * extra) / totalPadding;
|
|
236
|
-
resultRight -= (right * extra) / totalPadding;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
return new int[] {resultLeft, resultTop, resultRight, resultBottom};
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
private static int getPaddingByKey(ReadableMap map, String key) {
|
|
243
|
-
return map.hasKey(key) ? map.getInt(key) : 0;
|
|
244
|
-
}
|
|
245
|
-
}
|