@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.
Files changed (338) hide show
  1. package/MapLibreReactNative.podspec +1 -1
  2. package/android/build.gradle +0 -3
  3. package/android/src/main/java/org/maplibre/reactnative/MLRNPackage.kt +43 -0
  4. package/android/src/main/java/org/maplibre/reactnative/components/AbstractEvent.kt +24 -0
  5. package/android/src/main/java/org/maplibre/reactnative/components/AbstractEventEmitter.kt +71 -0
  6. package/android/src/main/java/org/maplibre/reactnative/components/annotation/MLRNPointAnnotation.java +1 -1
  7. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraStop.kt +203 -0
  8. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateItem.kt +109 -0
  9. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateQueue.kt +60 -0
  10. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.kt +409 -0
  11. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraManager.kt +69 -0
  12. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraModule.kt +34 -0
  13. package/android/src/main/java/org/maplibre/reactnative/components/camera/constants/CameraEasing.kt +24 -0
  14. package/android/src/main/java/org/maplibre/reactnative/components/images/MLRNImages.java +1 -2
  15. package/android/src/main/java/org/maplibre/reactnative/components/location/LocationComponentManager.java +1 -1
  16. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapView.kt +23 -0
  17. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapViewManager.kt +23 -0
  18. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapView.kt +1338 -0
  19. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewManager.kt +187 -0
  20. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewModule.kt +159 -0
  21. package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/CameraChangeTracker.kt +26 -0
  22. package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/LayerSourceInfo.kt +74 -0
  23. package/android/src/main/java/org/maplibre/reactnative/components/styles/layers/MLRNLayer.java +1 -5
  24. package/android/src/main/java/org/maplibre/reactnative/components/styles/light/MLRNLight.java +1 -6
  25. package/android/src/main/java/org/maplibre/reactnative/components/styles/sources/MLRNShapeSource.java +2 -9
  26. package/android/src/main/java/org/maplibre/reactnative/components/styles/sources/MLRNSource.java +1 -1
  27. package/android/src/main/java/org/maplibre/reactnative/events/AbstractEvent.java +2 -5
  28. package/android/src/main/java/org/maplibre/reactnative/events/MapChangeEvent.kt +18 -0
  29. package/android/src/main/java/org/maplibre/reactnative/events/MapClickEvent.java +4 -0
  30. package/android/src/main/java/org/maplibre/reactnative/events/MapPressEvent.kt +27 -0
  31. package/android/src/main/java/org/maplibre/reactnative/events/TrackUserLocationChangeEvent.kt +24 -0
  32. package/android/src/main/java/org/maplibre/reactnative/events/constants/EventKeys.java +0 -1
  33. package/android/src/main/java/org/maplibre/reactnative/events/constants/EventTypes.java +0 -19
  34. package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.java +1 -1
  35. package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationMode.kt +43 -0
  36. package/android/src/main/java/org/maplibre/reactnative/location/{UserTrackingState.java → TrackUserLocationState.java} +1 -1
  37. package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.java +1 -1
  38. package/android/src/main/java/org/maplibre/reactnative/modules/MLRNModule.java +1 -49
  39. package/android/src/main/java/org/maplibre/reactnative/utils/ConvertUtils.java +2 -9
  40. package/android/src/main/java/org/maplibre/reactnative/utils/GeoJSONUtils.kt +322 -0
  41. package/android/src/main/java/org/maplibre/reactnative/utils/ReactTagResolver.kt +85 -0
  42. package/ios/MLRNCallout.h +1 -1
  43. package/ios/MLRNEvent.m +3 -1
  44. package/ios/MLRNEventTypes.h +10 -31
  45. package/ios/MLRNEventTypes.m +10 -30
  46. package/ios/MLRNImages.h +1 -1
  47. package/ios/MLRNImages.m +1 -1
  48. package/ios/MLRNLayer.h +1 -1
  49. package/ios/MLRNLayer.m +2 -2
  50. package/ios/MLRNLight.h +2 -1
  51. package/ios/MLRNLocationModule.m +2 -2
  52. package/ios/MLRNMapTouchEvent.h +2 -1
  53. package/ios/MLRNMapTouchEvent.m +12 -10
  54. package/ios/MLRNModule.m +5 -52
  55. package/ios/MLRNNativeUserLocation.m +0 -1
  56. package/ios/MLRNOfflineModule.h +2 -2
  57. package/ios/MLRNOfflineModule.m +9 -9
  58. package/ios/MLRNPointAnnotation.h +1 -1
  59. package/ios/MLRNShapeSource.h +1 -1
  60. package/ios/MLRNSource.h +3 -1
  61. package/ios/MLRNStyle.m +20 -20
  62. package/ios/MLRNUtils.h +17 -2
  63. package/ios/MLRNUtils.m +25 -2
  64. package/ios/components/camera/CameraEasing.h +8 -0
  65. package/ios/{CameraStop.h → components/camera/CameraStop.h} +10 -6
  66. package/ios/components/camera/CameraStop.m +75 -0
  67. package/ios/{CameraUpdateItem.m → components/camera/CameraUpdateItem.m} +45 -46
  68. package/ios/components/camera/MLRNCamera.h +26 -0
  69. package/ios/components/camera/MLRNCamera.m +195 -0
  70. package/ios/components/camera/MLRNCameraComponentView.h +18 -0
  71. package/ios/components/camera/MLRNCameraComponentView.mm +192 -0
  72. package/ios/components/camera/MLRNCameraManager.h +11 -0
  73. package/ios/components/camera/MLRNCameraManager.m +20 -0
  74. package/ios/components/camera/MLRNCameraModule.h +4 -0
  75. package/ios/components/camera/MLRNCameraModule.mm +111 -0
  76. package/ios/{MLRNMapView.h → components/map-view/MLRNMapView.h} +42 -20
  77. package/ios/components/map-view/MLRNMapView.m +809 -0
  78. package/ios/components/map-view/MLRNMapViewComponentView.h +18 -0
  79. package/ios/components/map-view/MLRNMapViewComponentView.mm +400 -0
  80. package/ios/components/map-view/MLRNMapViewManager.h +70 -0
  81. package/ios/components/map-view/MLRNMapViewManager.m +163 -0
  82. package/ios/components/map-view/MLRNMapViewModule.h +4 -0
  83. package/ios/components/map-view/MLRNMapViewModule.mm +249 -0
  84. package/ios/{MLRNSnapshotModule → modules/snapshot}/MLRNSnapshotModule.mm +0 -1
  85. package/lib/commonjs/MLRNModule.js +1 -3
  86. package/lib/commonjs/MLRNModule.js.map +1 -1
  87. package/lib/commonjs/components/Annotation.js +1 -13
  88. package/lib/commonjs/components/Annotation.js.map +1 -1
  89. package/lib/commonjs/components/Images.js.map +1 -1
  90. package/lib/commonjs/components/ShapeSource.js +2 -21
  91. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  92. package/lib/commonjs/components/VectorSource.js +3 -26
  93. package/lib/commonjs/components/VectorSource.js.map +1 -1
  94. package/lib/commonjs/components/camera/Camera.js +97 -0
  95. package/lib/commonjs/components/camera/Camera.js.map +1 -0
  96. package/lib/commonjs/components/camera/CameraNativeComponent.ts +61 -0
  97. package/lib/commonjs/components/camera/NativeCameraModule.js +11 -0
  98. package/lib/commonjs/components/camera/NativeCameraModule.js.map +1 -0
  99. package/lib/commonjs/components/map-view/MapView.js +115 -0
  100. package/lib/commonjs/components/map-view/MapView.js.map +1 -0
  101. package/lib/commonjs/components/map-view/MapViewNativeComponent.ts +96 -0
  102. package/lib/commonjs/components/map-view/NativeMapViewModule.js +9 -0
  103. package/lib/commonjs/components/map-view/NativeMapViewModule.js.map +1 -0
  104. package/lib/commonjs/index.js +246 -4
  105. package/lib/commonjs/index.js.map +1 -1
  106. package/lib/commonjs/modules/snapshot/NativeSnapshotModule.js +2 -2
  107. package/lib/commonjs/modules/snapshot/NativeSnapshotModule.js.map +1 -1
  108. package/lib/commonjs/modules/snapshot/SnapshotManager.js +3 -2
  109. package/lib/commonjs/modules/snapshot/SnapshotManager.js.map +1 -1
  110. package/lib/commonjs/types/Bounds.js +2 -0
  111. package/lib/commonjs/types/{OnPressEvent.js.map → Bounds.js.map} +1 -1
  112. package/lib/commonjs/types/PressEvent.js +2 -0
  113. package/lib/{module/types/OnPressEvent.js.map → commonjs/types/PressEvent.js.map} +1 -1
  114. package/lib/commonjs/types/ViewPadding.js +2 -0
  115. package/lib/commonjs/types/{MapLibreRNEvent.js.map → ViewPadding.js.map} +1 -1
  116. package/lib/commonjs/types/codegen/UnsafeMixed.js +2 -0
  117. package/lib/commonjs/types/codegen/UnsafeMixed.js.map +1 -0
  118. package/lib/commonjs/utils/index.js +0 -11
  119. package/lib/commonjs/utils/index.js.map +1 -1
  120. package/lib/module/MLRNModule.js +0 -1
  121. package/lib/module/MLRNModule.js.map +1 -1
  122. package/lib/module/components/Annotation.js +2 -14
  123. package/lib/module/components/Annotation.js.map +1 -1
  124. package/lib/module/components/Images.js.map +1 -1
  125. package/lib/module/components/ShapeSource.js +3 -22
  126. package/lib/module/components/ShapeSource.js.map +1 -1
  127. package/lib/module/components/VectorSource.js +4 -27
  128. package/lib/module/components/VectorSource.js.map +1 -1
  129. package/lib/module/components/camera/Camera.js +92 -0
  130. package/lib/module/components/camera/Camera.js.map +1 -0
  131. package/lib/module/components/camera/CameraNativeComponent.ts +61 -0
  132. package/lib/module/components/camera/NativeCameraModule.js +10 -0
  133. package/lib/module/components/camera/NativeCameraModule.js.map +1 -0
  134. package/lib/module/components/map-view/MapView.js +110 -0
  135. package/lib/module/components/map-view/MapView.js.map +1 -0
  136. package/lib/module/components/map-view/MapViewNativeComponent.ts +96 -0
  137. package/lib/module/components/map-view/NativeMapViewModule.js +5 -0
  138. package/lib/module/components/map-view/NativeMapViewModule.js.map +1 -0
  139. package/lib/module/index.js +30 -1
  140. package/lib/module/index.js.map +1 -1
  141. package/lib/module/modules/snapshot/NativeSnapshotModule.js +1 -1
  142. package/lib/module/modules/snapshot/NativeSnapshotModule.js.map +1 -1
  143. package/lib/module/modules/snapshot/SnapshotManager.js +1 -1
  144. package/lib/module/modules/snapshot/SnapshotManager.js.map +1 -1
  145. package/lib/module/types/Bounds.js +2 -0
  146. package/lib/module/types/{MapLibreRNEvent.js.map → Bounds.js.map} +1 -1
  147. package/lib/module/types/PressEvent.js +2 -0
  148. package/lib/module/types/PressEvent.js.map +1 -0
  149. package/lib/module/types/ViewPadding.js +2 -0
  150. package/lib/module/types/ViewPadding.js.map +1 -0
  151. package/lib/module/types/codegen/UnsafeMixed.js +2 -0
  152. package/lib/module/types/codegen/UnsafeMixed.js.map +1 -0
  153. package/lib/module/utils/index.js +0 -9
  154. package/lib/module/utils/index.js.map +1 -1
  155. package/lib/typescript/commonjs/src/MLRNModule.d.ts +1 -7
  156. package/lib/typescript/commonjs/src/MLRNModule.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/components/Annotation.d.ts +3 -3
  158. package/lib/typescript/commonjs/src/components/Annotation.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/components/Images.d.ts +1 -2
  160. package/lib/typescript/commonjs/src/components/Images.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/components/ShapeSource.d.ts +2 -5
  162. package/lib/typescript/commonjs/src/components/ShapeSource.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/components/VectorSource.d.ts +3 -2
  164. package/lib/typescript/commonjs/src/components/VectorSource.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/components/camera/Camera.d.ts +180 -0
  166. package/lib/typescript/commonjs/src/components/camera/Camera.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts +37 -0
  168. package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/src/components/camera/NativeCameraModule.d.ts +27 -0
  170. package/lib/typescript/commonjs/src/components/camera/NativeCameraModule.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/src/components/map-view/MapView.d.ts +323 -0
  172. package/lib/typescript/commonjs/src/components/map-view/MapView.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/src/components/map-view/MapViewNativeComponent.d.ts +69 -0
  174. package/lib/typescript/commonjs/src/components/map-view/MapViewNativeComponent.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/src/components/map-view/NativeMapViewModule.d.ts +45 -0
  176. package/lib/typescript/commonjs/src/components/map-view/NativeMapViewModule.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/index.d.ts +41 -1
  178. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/modules/snapshot/NativeSnapshotModule.d.ts +2 -1
  180. package/lib/typescript/commonjs/src/modules/snapshot/NativeSnapshotModule.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/types/Bounds.d.ts +2 -0
  182. package/lib/typescript/commonjs/src/types/Bounds.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/src/types/PressEvent.d.ts +16 -0
  184. package/lib/typescript/commonjs/src/types/PressEvent.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/types/ViewPadding.d.ts +7 -0
  186. package/lib/typescript/commonjs/src/types/ViewPadding.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/src/types/codegen/UnsafeMixed.d.ts +10 -0
  188. package/lib/typescript/commonjs/src/types/codegen/UnsafeMixed.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/src/utils/index.d.ts +1 -3
  190. package/lib/typescript/commonjs/src/utils/index.d.ts.map +1 -1
  191. package/lib/typescript/module/src/MLRNModule.d.ts +1 -7
  192. package/lib/typescript/module/src/MLRNModule.d.ts.map +1 -1
  193. package/lib/typescript/module/src/components/Annotation.d.ts +3 -3
  194. package/lib/typescript/module/src/components/Annotation.d.ts.map +1 -1
  195. package/lib/typescript/module/src/components/Images.d.ts +1 -2
  196. package/lib/typescript/module/src/components/Images.d.ts.map +1 -1
  197. package/lib/typescript/module/src/components/ShapeSource.d.ts +2 -5
  198. package/lib/typescript/module/src/components/ShapeSource.d.ts.map +1 -1
  199. package/lib/typescript/module/src/components/VectorSource.d.ts +3 -2
  200. package/lib/typescript/module/src/components/VectorSource.d.ts.map +1 -1
  201. package/lib/typescript/module/src/components/camera/Camera.d.ts +180 -0
  202. package/lib/typescript/module/src/components/camera/Camera.d.ts.map +1 -0
  203. package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts +37 -0
  204. package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts.map +1 -0
  205. package/lib/typescript/module/src/components/camera/NativeCameraModule.d.ts +27 -0
  206. package/lib/typescript/module/src/components/camera/NativeCameraModule.d.ts.map +1 -0
  207. package/lib/typescript/module/src/components/map-view/MapView.d.ts +323 -0
  208. package/lib/typescript/module/src/components/map-view/MapView.d.ts.map +1 -0
  209. package/lib/typescript/module/src/components/map-view/MapViewNativeComponent.d.ts +69 -0
  210. package/lib/typescript/module/src/components/map-view/MapViewNativeComponent.d.ts.map +1 -0
  211. package/lib/typescript/module/src/components/map-view/NativeMapViewModule.d.ts +45 -0
  212. package/lib/typescript/module/src/components/map-view/NativeMapViewModule.d.ts.map +1 -0
  213. package/lib/typescript/module/src/index.d.ts +41 -1
  214. package/lib/typescript/module/src/index.d.ts.map +1 -1
  215. package/lib/typescript/module/src/modules/snapshot/NativeSnapshotModule.d.ts +2 -1
  216. package/lib/typescript/module/src/modules/snapshot/NativeSnapshotModule.d.ts.map +1 -1
  217. package/lib/typescript/module/src/types/Bounds.d.ts +2 -0
  218. package/lib/typescript/module/src/types/Bounds.d.ts.map +1 -0
  219. package/lib/typescript/module/src/types/PressEvent.d.ts +16 -0
  220. package/lib/typescript/module/src/types/PressEvent.d.ts.map +1 -0
  221. package/lib/typescript/module/src/types/ViewPadding.d.ts +7 -0
  222. package/lib/typescript/module/src/types/ViewPadding.d.ts.map +1 -0
  223. package/lib/typescript/module/src/types/codegen/UnsafeMixed.d.ts +10 -0
  224. package/lib/typescript/module/src/types/codegen/UnsafeMixed.d.ts.map +1 -0
  225. package/lib/typescript/module/src/utils/index.d.ts +1 -3
  226. package/lib/typescript/module/src/utils/index.d.ts.map +1 -1
  227. package/package.json +38 -28
  228. package/src/MLRNModule.ts +0 -10
  229. package/src/components/Annotation.tsx +8 -23
  230. package/src/components/Images.tsx +2 -4
  231. package/src/components/ShapeSource.tsx +18 -31
  232. package/src/components/VectorSource.tsx +5 -28
  233. package/src/components/camera/Camera.tsx +311 -0
  234. package/src/components/camera/CameraNativeComponent.ts +61 -0
  235. package/src/components/camera/NativeCameraModule.ts +39 -0
  236. package/src/components/map-view/MapView.tsx +582 -0
  237. package/src/components/map-view/MapViewNativeComponent.ts +96 -0
  238. package/src/components/map-view/NativeMapViewModule.ts +83 -0
  239. package/src/index.ts +86 -1
  240. package/src/modules/snapshot/NativeSnapshotModule.ts +1 -2
  241. package/src/modules/snapshot/SnapshotManager.ts +1 -1
  242. package/src/types/Bounds.ts +1 -0
  243. package/src/types/PressEvent.ts +19 -0
  244. package/src/types/ViewPadding.ts +6 -0
  245. package/src/types/codegen/UnsafeMixed.ts +9 -0
  246. package/src/utils/index.ts +1 -14
  247. package/android/src/main/java/org/maplibre/reactnative/components/AbstractEvent.java +0 -35
  248. package/android/src/main/java/org/maplibre/reactnative/components/AbstractEventEmitter.java +0 -80
  249. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraStop.java +0 -245
  250. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateItem.java +0 -121
  251. package/android/src/main/java/org/maplibre/reactnative/components/camera/CameraUpdateQueue.java +0 -68
  252. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.java +0 -519
  253. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCameraManager.java +0 -101
  254. package/android/src/main/java/org/maplibre/reactnative/components/camera/constants/CameraMode.java +0 -18
  255. package/android/src/main/java/org/maplibre/reactnative/components/mapview/LayerSourceInfo.java +0 -59
  256. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapView.java +0 -13
  257. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNAndroidTextureMapViewManager.java +0 -27
  258. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapView.java +0 -1521
  259. package/android/src/main/java/org/maplibre/reactnative/components/mapview/MLRNMapViewManager.java +0 -342
  260. package/android/src/main/java/org/maplibre/reactnative/components/mapview/helpers/CameraChangeTracker.java +0 -37
  261. package/android/src/main/java/org/maplibre/reactnative/events/MapChangeEvent.java +0 -43
  262. package/android/src/main/java/org/maplibre/reactnative/events/MapUserTrackingModeEvent.java +0 -32
  263. package/android/src/main/java/org/maplibre/reactnative/location/UserLocationVerticalAlignment.java +0 -7
  264. package/android/src/main/java/org/maplibre/reactnative/location/UserTrackingMode.java +0 -59
  265. package/android/src/main/java/org/maplibre/reactnative/utils/GeoJSONUtils.java +0 -310
  266. package/ios/CameraMode.h +0 -10
  267. package/ios/CameraMode.m +0 -10
  268. package/ios/CameraStop.m +0 -73
  269. package/ios/MLRNCamera.h +0 -29
  270. package/ios/MLRNCamera.m +0 -236
  271. package/ios/MLRNCameraManager.h +0 -5
  272. package/ios/MLRNCameraManager.m +0 -39
  273. package/ios/MLRNMapView.m +0 -497
  274. package/ios/MLRNMapViewManager.h +0 -9
  275. package/ios/MLRNMapViewManager.m +0 -604
  276. package/lib/commonjs/MapLibreRN.js +0 -266
  277. package/lib/commonjs/MapLibreRN.js.map +0 -1
  278. package/lib/commonjs/components/Camera.js +0 -333
  279. package/lib/commonjs/components/Camera.js.map +0 -1
  280. package/lib/commonjs/components/MapView.js +0 -449
  281. package/lib/commonjs/components/MapView.js.map +0 -1
  282. package/lib/commonjs/hooks/useNativeRef.js +0 -14
  283. package/lib/commonjs/hooks/useNativeRef.js.map +0 -1
  284. package/lib/commonjs/types/CameraMode.js +0 -14
  285. package/lib/commonjs/types/CameraMode.js.map +0 -1
  286. package/lib/commonjs/types/MapLibreRNEvent.js +0 -6
  287. package/lib/commonjs/types/OnPressEvent.js +0 -2
  288. package/lib/module/MapLibreRN.js +0 -33
  289. package/lib/module/MapLibreRN.js.map +0 -1
  290. package/lib/module/components/Camera.js +0 -328
  291. package/lib/module/components/Camera.js.map +0 -1
  292. package/lib/module/components/MapView.js +0 -444
  293. package/lib/module/components/MapView.js.map +0 -1
  294. package/lib/module/hooks/useNativeRef.js +0 -10
  295. package/lib/module/hooks/useNativeRef.js.map +0 -1
  296. package/lib/module/types/CameraMode.js +0 -10
  297. package/lib/module/types/CameraMode.js.map +0 -1
  298. package/lib/module/types/MapLibreRNEvent.js +0 -4
  299. package/lib/module/types/OnPressEvent.js +0 -2
  300. package/lib/typescript/commonjs/src/MapLibreRN.d.ts +0 -41
  301. package/lib/typescript/commonjs/src/MapLibreRN.d.ts.map +0 -1
  302. package/lib/typescript/commonjs/src/components/Camera.d.ts +0 -134
  303. package/lib/typescript/commonjs/src/components/Camera.d.ts.map +0 -1
  304. package/lib/typescript/commonjs/src/components/MapView.d.ts +0 -223
  305. package/lib/typescript/commonjs/src/components/MapView.d.ts.map +0 -1
  306. package/lib/typescript/commonjs/src/hooks/useNativeRef.d.ts +0 -8
  307. package/lib/typescript/commonjs/src/hooks/useNativeRef.d.ts.map +0 -1
  308. package/lib/typescript/commonjs/src/types/CameraMode.d.ts +0 -7
  309. package/lib/typescript/commonjs/src/types/CameraMode.d.ts.map +0 -1
  310. package/lib/typescript/commonjs/src/types/MapLibreRNEvent.d.ts +0 -6
  311. package/lib/typescript/commonjs/src/types/MapLibreRNEvent.d.ts.map +0 -1
  312. package/lib/typescript/commonjs/src/types/OnPressEvent.d.ts +0 -12
  313. package/lib/typescript/commonjs/src/types/OnPressEvent.d.ts.map +0 -1
  314. package/lib/typescript/module/src/MapLibreRN.d.ts +0 -41
  315. package/lib/typescript/module/src/MapLibreRN.d.ts.map +0 -1
  316. package/lib/typescript/module/src/components/Camera.d.ts +0 -134
  317. package/lib/typescript/module/src/components/Camera.d.ts.map +0 -1
  318. package/lib/typescript/module/src/components/MapView.d.ts +0 -223
  319. package/lib/typescript/module/src/components/MapView.d.ts.map +0 -1
  320. package/lib/typescript/module/src/hooks/useNativeRef.d.ts +0 -8
  321. package/lib/typescript/module/src/hooks/useNativeRef.d.ts.map +0 -1
  322. package/lib/typescript/module/src/types/CameraMode.d.ts +0 -7
  323. package/lib/typescript/module/src/types/CameraMode.d.ts.map +0 -1
  324. package/lib/typescript/module/src/types/MapLibreRNEvent.d.ts +0 -6
  325. package/lib/typescript/module/src/types/MapLibreRNEvent.d.ts.map +0 -1
  326. package/lib/typescript/module/src/types/OnPressEvent.d.ts +0 -12
  327. package/lib/typescript/module/src/types/OnPressEvent.d.ts.map +0 -1
  328. package/src/MapLibreRN.ts +0 -75
  329. package/src/components/Camera.tsx +0 -568
  330. package/src/components/MapView.tsx +0 -838
  331. package/src/hooks/useNativeRef.ts +0 -14
  332. package/src/types/CameraMode.ts +0 -6
  333. package/src/types/MapLibreRNEvent.ts +0 -7
  334. package/src/types/OnPressEvent.ts +0 -11
  335. /package/ios/{CameraUpdateItem.h → components/camera/CameraUpdateItem.h} +0 -0
  336. /package/ios/{CameraUpdateQueue.h → components/camera/CameraUpdateQueue.h} +0 -0
  337. /package/ios/{CameraUpdateQueue.m → components/camera/CameraUpdateQueue.m} +0 -0
  338. /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 "./MapLibreRN";
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 const NativeSnapshotModule =
24
- TurboModuleRegistry.getEnforcing<Spec>("MLRNSnapshotModule");
23
+ export default TurboModuleRegistry.getEnforcing<Spec>("MLRNSnapshotModule");
@@ -1,4 +1,4 @@
1
- import { NativeSnapshotModule } from "./NativeSnapshotModule";
1
+ import NativeSnapshotModule from "./NativeSnapshotModule";
2
2
  import { type SnapshotInputOptions, SnapshotOptions } from "./SnapshotOptions";
3
3
 
4
4
  /**
@@ -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,6 @@
1
+ export type ViewPadding = {
2
+ top?: number;
3
+ right?: number;
4
+ bottom?: number;
5
+ left?: number;
6
+ };
@@ -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;
@@ -12,14 +12,7 @@ export function isAndroid(): boolean {
12
12
  return Platform.OS === "android";
13
13
  }
14
14
 
15
- export function existenceChange(cur: boolean, next: boolean): boolean {
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
- }