@maplibre/maplibre-react-native 8.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +158 -0
  3. package/.gitattributes +1 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierrc.js +7 -0
  6. package/.sonarcloud.properties +15 -0
  7. package/CHANGELOG.md +367 -0
  8. package/CODE_OF_CONDUCT.md +2 -0
  9. package/CONTRIBUTING.md +34 -0
  10. package/LICENSE.md +9 -0
  11. package/README.md +224 -0
  12. package/RELEASE.md +30 -0
  13. package/android/build.gradle +34 -0
  14. package/android/install.md +16 -0
  15. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
  16. package/android/rctmgl/build.gradle +61 -0
  17. package/android/rctmgl/proguard-rules.pro +25 -0
  18. package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
  19. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
  20. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
  21. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
  22. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
  23. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
  24. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +67 -0
  25. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
  26. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
  27. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
  28. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
  29. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
  30. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
  31. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
  32. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
  33. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
  34. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
  35. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
  36. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
  37. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
  38. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
  39. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
  40. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +66 -0
  41. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
  42. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
  43. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
  44. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
  45. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1527 -0
  46. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +353 -0
  47. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
  48. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
  49. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2242 -0
  50. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
  51. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +212 -0
  52. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
  53. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
  54. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
  55. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
  56. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
  57. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
  58. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
  59. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
  60. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
  61. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
  62. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
  63. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
  64. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
  65. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
  66. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
  67. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
  68. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
  69. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
  70. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
  71. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
  72. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
  73. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
  74. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
  75. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +302 -0
  76. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +227 -0
  77. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
  78. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
  79. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
  80. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
  81. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
  82. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
  83. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
  84. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
  85. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
  86. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/IEvent.java +18 -0
  87. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
  88. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
  89. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
  90. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
  91. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
  92. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
  93. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
  94. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
  95. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
  96. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
  97. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
  98. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/LocationManager.java +168 -0
  99. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocation.java +63 -0
  100. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
  101. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
  102. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
  103. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +158 -0
  104. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
  105. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java +348 -0
  106. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
  107. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
  108. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
  109. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
  110. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
  111. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
  112. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
  113. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
  114. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
  115. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
  116. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
  117. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
  118. package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
  119. package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
  120. package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  121. package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
  122. package/android/rctmgl/src/main/res/values/strings.xml +3 -0
  123. package/android/settings.gradle +1 -0
  124. package/app.plugin.js +1 -0
  125. package/assets/heading.png +0 -0
  126. package/assets/heading@2x.png +0 -0
  127. package/assets/heading@3x.png +0 -0
  128. package/assets/indoor_building_map_android.png +0 -0
  129. package/assets/indoor_building_map_ios.png +0 -0
  130. package/assets/mapbox_logo.png +0 -0
  131. package/babel.config.js +9 -0
  132. package/docs/Annotation.md +39 -0
  133. package/docs/Annotations.md +17 -0
  134. package/docs/BackgroundLayer.md +166 -0
  135. package/docs/Callout.md +15 -0
  136. package/docs/Camera.md +162 -0
  137. package/docs/CircleLayer.md +453 -0
  138. package/docs/CustomHttpHeaders.md +87 -0
  139. package/docs/FillExtrusionLayer.md +327 -0
  140. package/docs/FillLayer.md +293 -0
  141. package/docs/GettingStarted.md +72 -0
  142. package/docs/HeadingIndicator.md +10 -0
  143. package/docs/HeatmapLayer.md +215 -0
  144. package/docs/ImageSource.md +12 -0
  145. package/docs/Images.md +12 -0
  146. package/docs/Light.md +159 -0
  147. package/docs/LineLayer.md +567 -0
  148. package/docs/Logger.md +23 -0
  149. package/docs/MapView.md +211 -0
  150. package/docs/MapboxGL.md +65 -0
  151. package/docs/MarkerView.md +14 -0
  152. package/docs/NativeUserLocation.md +11 -0
  153. package/docs/OfflineManager.md +246 -0
  154. package/docs/PointAnnotation.md +34 -0
  155. package/docs/RasterLayer.md +357 -0
  156. package/docs/RasterSource.md +17 -0
  157. package/docs/ShapeSource.md +100 -0
  158. package/docs/Style.md +10 -0
  159. package/docs/StyleSheet.md +430 -0
  160. package/docs/SymbolLayer.md +1658 -0
  161. package/docs/UserLocation.md +39 -0
  162. package/docs/VectorSource.md +48 -0
  163. package/docs/docs.json +6093 -0
  164. package/docs/snapshotManager.md +53 -0
  165. package/index.d.ts +953 -0
  166. package/ios/RCTMGL/CameraMode.h +18 -0
  167. package/ios/RCTMGL/CameraMode.m +18 -0
  168. package/ios/RCTMGL/CameraStop.h +26 -0
  169. package/ios/RCTMGL/CameraStop.m +83 -0
  170. package/ios/RCTMGL/CameraUpdateItem.h +18 -0
  171. package/ios/RCTMGL/CameraUpdateItem.m +178 -0
  172. package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
  173. package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
  174. package/ios/RCTMGL/FilterParser.h +14 -0
  175. package/ios/RCTMGL/FilterParser.m +22 -0
  176. package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
  177. package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
  178. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
  179. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
  180. package/ios/RCTMGL/MGLModule.h +13 -0
  181. package/ios/RCTMGL/MGLModule.m +269 -0
  182. package/ios/RCTMGL/MGLOfflineModule.h +19 -0
  183. package/ios/RCTMGL/MGLOfflineModule.m +516 -0
  184. package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
  185. package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
  186. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
  187. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
  188. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
  189. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
  190. package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
  191. package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
  192. package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
  193. package/ios/RCTMGL/RCTMGL.h +13 -0
  194. package/ios/RCTMGL/RCTMGL.m +13 -0
  195. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
  196. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
  197. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
  198. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
  199. package/ios/RCTMGL/RCTMGLCallout.h +15 -0
  200. package/ios/RCTMGL/RCTMGLCallout.m +74 -0
  201. package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
  202. package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
  203. package/ios/RCTMGL/RCTMGLCamera.h +39 -0
  204. package/ios/RCTMGL/RCTMGLCamera.m +258 -0
  205. package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
  206. package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
  207. package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
  208. package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
  209. package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
  210. package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
  211. package/ios/RCTMGL/RCTMGLEvent.h +21 -0
  212. package/ios/RCTMGL/RCTMGLEvent.m +47 -0
  213. package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
  214. package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
  215. package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
  216. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
  217. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
  218. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
  219. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
  220. package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
  221. package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
  222. package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
  223. package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
  224. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
  225. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
  226. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
  227. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
  228. package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
  229. package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
  230. package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
  231. package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
  232. package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
  233. package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
  234. package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
  235. package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
  236. package/ios/RCTMGL/RCTMGLImages.h +25 -0
  237. package/ios/RCTMGL/RCTMGLImages.m +126 -0
  238. package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
  239. package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
  240. package/ios/RCTMGL/RCTMGLLayer.h +52 -0
  241. package/ios/RCTMGL/RCTMGLLayer.m +236 -0
  242. package/ios/RCTMGL/RCTMGLLight.h +17 -0
  243. package/ios/RCTMGL/RCTMGLLight.m +46 -0
  244. package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
  245. package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
  246. package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
  247. package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
  248. package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
  249. package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
  250. package/ios/RCTMGL/RCTMGLLocation.h +19 -0
  251. package/ios/RCTMGL/RCTMGLLocation.m +32 -0
  252. package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
  253. package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
  254. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
  255. package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
  256. package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
  257. package/ios/RCTMGL/RCTMGLLogging.h +18 -0
  258. package/ios/RCTMGL/RCTMGLLogging.m +132 -0
  259. package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
  260. package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
  261. package/ios/RCTMGL/RCTMGLMapView.h +91 -0
  262. package/ios/RCTMGL/RCTMGLMapView.m +536 -0
  263. package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
  264. package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
  265. package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
  266. package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
  267. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
  268. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
  269. package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
  270. package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
  271. package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
  272. package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
  273. package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
  274. package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
  275. package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
  276. package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
  277. package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
  278. package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
  279. package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
  280. package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
  281. package/ios/RCTMGL/RCTMGLShapeSource.h +52 -0
  282. package/ios/RCTMGL/RCTMGLShapeSource.m +180 -0
  283. package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
  284. package/ios/RCTMGL/RCTMGLShapeSourceManager.m +205 -0
  285. package/ios/RCTMGL/RCTMGLSource.h +35 -0
  286. package/ios/RCTMGL/RCTMGLSource.m +143 -0
  287. package/ios/RCTMGL/RCTMGLStyle.h +219 -0
  288. package/ios/RCTMGL/RCTMGLStyle.m +1654 -0
  289. package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
  290. package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
  291. package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
  292. package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
  293. package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
  294. package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
  295. package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
  296. package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
  297. package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
  298. package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
  299. package/ios/RCTMGL/RCTMGLUtils.h +31 -0
  300. package/ios/RCTMGL/RCTMGLUtils.m +218 -0
  301. package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
  302. package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
  303. package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
  304. package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
  305. package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
  306. package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
  307. package/ios/RCTMGL/RNMBImageUtils.h +17 -0
  308. package/ios/RCTMGL/RNMBImageUtils.m +31 -0
  309. package/ios/RCTMGL/ViewManager.h +16 -0
  310. package/ios/RCTMGL/ViewManager.m +63 -0
  311. package/ios/RCTMGL/index.d.ts +1164 -0
  312. package/ios/RCTMGL.xcodeproj/project.pbxproj +774 -0
  313. package/ios/install.md +44 -0
  314. package/javascript/components/AbstractLayer.js +75 -0
  315. package/javascript/components/AbstractSource.js +15 -0
  316. package/javascript/components/BackgroundLayer.js +97 -0
  317. package/javascript/components/Callout.js +139 -0
  318. package/javascript/components/Camera.js +665 -0
  319. package/javascript/components/CircleLayer.js +101 -0
  320. package/javascript/components/FillExtrusionLayer.js +98 -0
  321. package/javascript/components/FillLayer.js +94 -0
  322. package/javascript/components/HeadingIndicator.js +31 -0
  323. package/javascript/components/HeatmapLayer.js +99 -0
  324. package/javascript/components/ImageSource.js +82 -0
  325. package/javascript/components/Images.js +119 -0
  326. package/javascript/components/Light.js +47 -0
  327. package/javascript/components/LineLayer.js +94 -0
  328. package/javascript/components/MapView.js +817 -0
  329. package/javascript/components/MarkerView.js +87 -0
  330. package/javascript/components/NativeBridgeComponent.js +86 -0
  331. package/javascript/components/NativeUserLocation.js +41 -0
  332. package/javascript/components/PointAnnotation.js +216 -0
  333. package/javascript/components/RasterLayer.js +95 -0
  334. package/javascript/components/RasterSource.js +124 -0
  335. package/javascript/components/ShapeSource.js +357 -0
  336. package/javascript/components/Style.js +264 -0
  337. package/javascript/components/SymbolLayer.js +120 -0
  338. package/javascript/components/UserLocation.js +273 -0
  339. package/javascript/components/VectorSource.js +200 -0
  340. package/javascript/components/annotations/Annotation.js +122 -0
  341. package/javascript/index.js +153 -0
  342. package/javascript/modules/location/locationManager.js +101 -0
  343. package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
  344. package/javascript/modules/offline/OfflinePack.js +40 -0
  345. package/javascript/modules/offline/offlineManager.js +378 -0
  346. package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
  347. package/javascript/modules/snapshot/snapshotManager.js +62 -0
  348. package/javascript/utils/BridgeValue.js +81 -0
  349. package/javascript/utils/Logger.js +114 -0
  350. package/javascript/utils/animated/Animated.js +39 -0
  351. package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
  352. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
  353. package/javascript/utils/animated/AnimatedPoint.js +126 -0
  354. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +124 -0
  355. package/javascript/utils/animated/AnimatedShape.js +72 -0
  356. package/javascript/utils/deprecation.js +25 -0
  357. package/javascript/utils/filterUtils.js +7 -0
  358. package/javascript/utils/geoUtils.js +73 -0
  359. package/javascript/utils/index.js +113 -0
  360. package/javascript/utils/styleMap.js +1901 -0
  361. package/maplibre-react-native.podspec +79 -0
  362. package/package.json +120 -0
  363. package/plugin/build/withMapbox.d.ts +12 -0
  364. package/plugin/build/withMapbox.js +119 -0
  365. package/plugin/install.md +32 -0
  366. package/react-native.config.js +10 -0
  367. package/scripts/autogenHelpers/DocJSONBuilder.js +458 -0
  368. package/scripts/autogenHelpers/JSDocNodeTree.js +131 -0
  369. package/scripts/autogenHelpers/MarkdownBuilder.js +29 -0
  370. package/scripts/autogenHelpers/globals.js +507 -0
  371. package/scripts/autogenerate.js +374 -0
  372. package/scripts/download-style-spec.sh +15 -0
  373. package/scripts/templates/RCTMGLStyle.h.ejs +33 -0
  374. package/scripts/templates/RCTMGLStyle.m.ejs +97 -0
  375. package/scripts/templates/RCTMGLStyleFactory.java.ejs +107 -0
  376. package/scripts/templates/component.md.ejs +122 -0
  377. package/scripts/templates/index.d.ts.ejs +56 -0
  378. package/scripts/templates/styleMap.js.ejs +115 -0
  379. package/setup-jest.js +121 -0
  380. package/style-spec/v8.json +5798 -0
  381. package/tsconfig.json +65 -0
@@ -0,0 +1,39 @@
1
+ import ShapeSource from '../../components/ShapeSource';
2
+ import ImageSource from '../../components/ImageSource';
3
+ import FillLayer from '../../components/FillLayer';
4
+ import FillExtrusionLayer from '../../components/FillExtrusionLayer';
5
+ import LineLayer from '../../components/LineLayer';
6
+ import CircleLayer from '../../components/CircleLayer';
7
+ import SymbolLayer from '../../components/SymbolLayer';
8
+ import RasterLayer from '../../components/RasterLayer';
9
+ import BackgroundLayer from '../../components/BackgroundLayer';
10
+
11
+ import AnimatedShape from './AnimatedShape';
12
+ import AnimatedCoordinatesArray from './AnimatedCoordinatesArray';
13
+ import AnimatedExtractCoordinateFromArray from './AnimatedExtractCoordinateFromArray';
14
+ import AnimatedRouteCoordinatesArray from './AnimatedRouteCoordinatesArray';
15
+
16
+ import {Animated as RNAnimated} from 'react-native';
17
+
18
+ const Animated = {
19
+ // sources
20
+ ShapeSource: RNAnimated.createAnimatedComponent(ShapeSource),
21
+ ImageSource: RNAnimated.createAnimatedComponent(ImageSource),
22
+
23
+ // layers
24
+ FillLayer: RNAnimated.createAnimatedComponent(FillLayer),
25
+ FillExtrusionLayer: RNAnimated.createAnimatedComponent(FillExtrusionLayer),
26
+ LineLayer: RNAnimated.createAnimatedComponent(LineLayer),
27
+ CircleLayer: RNAnimated.createAnimatedComponent(CircleLayer),
28
+ SymbolLayer: RNAnimated.createAnimatedComponent(SymbolLayer),
29
+ RasterLayer: RNAnimated.createAnimatedComponent(RasterLayer),
30
+ BackgroundLayer: RNAnimated.createAnimatedComponent(BackgroundLayer),
31
+
32
+ // values
33
+ CoordinatesArray: AnimatedCoordinatesArray,
34
+ RouteCoordinatesArray: AnimatedRouteCoordinatesArray,
35
+ Shape: AnimatedShape,
36
+ ExtractCoordinateFromArray: AnimatedExtractCoordinateFromArray,
37
+ };
38
+
39
+ export default Animated;
@@ -0,0 +1,191 @@
1
+ import {Animated} from 'react-native';
2
+
3
+ // see
4
+ // https://github.com/facebook/react-native/blob/master/Libraries/Animated/src/nodes/AnimatedWithChildren.js
5
+ const AnimatedWithChildren = Object.getPrototypeOf(Animated.ValueXY);
6
+ if (__DEV__) {
7
+ if (AnimatedWithChildren.name !== 'AnimatedWithChildren') {
8
+ console.error(
9
+ 'AnimatedCoordinatesArray could not obtain AnimatedWithChildren base class',
10
+ );
11
+ }
12
+ }
13
+
14
+ const defaultConfig = {
15
+ useNativeDriver: false,
16
+ };
17
+
18
+ class AnimatedCoordinatesArray extends AnimatedWithChildren {
19
+ constructor(...args) {
20
+ super();
21
+
22
+ this.state = this.onInitialState(...args);
23
+ }
24
+
25
+ /**
26
+ * Subclasses can override to calculate initial state
27
+ *
28
+ * @param {*} args - to value from animate
29
+ * @returns {object} - the state object
30
+ */
31
+ onInitialState(coordinatesArray) {
32
+ return {coords: coordinatesArray.map(coord => [coord[0], coord[1]])};
33
+ }
34
+
35
+ /**
36
+ * Subclasses can override getValue to calculate value from state.
37
+ * Value is typically coordinates array, but can be anything
38
+ *
39
+ * @param {object} state - either state from initialState and/or from calculate
40
+ * @returns {object}
41
+ */
42
+ onGetValue(state) {
43
+ return state.coords;
44
+ }
45
+
46
+ /**
47
+ * Calculates state based on startingState and progress, returns a new state
48
+ *
49
+ * @param {object} state - state object from initialState and/or from calculate
50
+ * @param {number} progress - value between 0 and 1
51
+ * @returns {object} next state
52
+ */
53
+ onCalculate(state, progress) {
54
+ const {coords, targetCoords} = state;
55
+ const newF = progress;
56
+ const origF = 1.0 - newF;
57
+
58
+ // common
59
+ const commonLen = Math.min(coords.length, targetCoords.length);
60
+ const common = coords
61
+ .slice(0, commonLen)
62
+ .map((origCoord, i) => [
63
+ origCoord[0] * origF + targetCoords[i][0] * newF,
64
+ origCoord[1] * origF + targetCoords[i][1] * newF,
65
+ ]);
66
+
67
+ if (targetCoords.length > coords.length) {
68
+ // only in new (adding)
69
+ const addingOrig =
70
+ coords.length > 0 ? coords[coords.length - 1] : targetCoords[0];
71
+ const adding = targetCoords
72
+ .slice(commonLen, targetCoords.length)
73
+ .map(newCoord => [
74
+ addingOrig[0] * origF + newCoord[0] * newF,
75
+ addingOrig[1] * origF + newCoord[1] * newF,
76
+ ]);
77
+ return {coords: [...common, ...adding], targetCoords};
78
+ }
79
+
80
+ if (coords.length > targetCoords.length) {
81
+ // only in orig (dissapearing)
82
+ const dissapearingNew =
83
+ targetCoords.length > 0
84
+ ? targetCoords[targetCoords.length - 1]
85
+ : coords[0];
86
+ const dissapearing = coords
87
+ .slice(commonLen, coords.length)
88
+ .map(origCoord => [
89
+ origCoord[0] * origF + dissapearingNew[0] * newF,
90
+ origCoord[1] * origF + dissapearingNew[1] * newF,
91
+ ]);
92
+ return {coords: [...common, ...dissapearing], targetCoords};
93
+ }
94
+
95
+ return {coords: common, targetCoords};
96
+ }
97
+
98
+ /**
99
+ * Subclasses can override to start a new animation
100
+ *
101
+ * @param {*} toValue - to value from animate
102
+ * @param {*} actCoords - the current coordinates array to start from
103
+ * @returns {object} The state
104
+ */
105
+ onStart(state, toValue) {
106
+ const targetCoords = toValue.map(coord => [coord[0], coord[1]]);
107
+ return {
108
+ ...state,
109
+ targetCoords,
110
+ };
111
+ }
112
+
113
+ animate(progressValue, progressAnimation, config) {
114
+ const {toValue} = config;
115
+
116
+ const onAnimationStart = animation => {
117
+ if (this.animation) {
118
+ // there was a started but not finsihed animation
119
+ const actProgress = this.progressValue.__getValue();
120
+ this.animation.stop();
121
+ this.state = this.onCalculate(this.state, actProgress);
122
+ this.progressValue.__removeChild(this);
123
+ this.progressValue = null;
124
+ this.animation = null;
125
+ }
126
+
127
+ this.progressValue = progressValue;
128
+ this.progressValue.__addChild(this);
129
+ this.animation = animation;
130
+ this.state = this.onStart(this.state, toValue);
131
+ };
132
+
133
+ const origAnimationStart = progressAnimation.start;
134
+ const newAnimation = progressAnimation;
135
+ newAnimation.start = function start(...args) {
136
+ onAnimationStart(progressAnimation);
137
+ origAnimationStart(...args);
138
+ };
139
+ return newAnimation;
140
+ }
141
+
142
+ timing(config) {
143
+ const progressValue = new Animated.Value(0.0);
144
+ return this.animate(
145
+ progressValue,
146
+ Animated.timing(progressValue, {
147
+ ...defaultConfig,
148
+ ...config,
149
+ toValue: 1.0,
150
+ }),
151
+ config,
152
+ );
153
+ }
154
+
155
+ spring(config) {
156
+ const progressValue = new Animated.Value(0.0);
157
+ return this.animate(
158
+ progressValue,
159
+ Animated.spring(progressValue, {
160
+ ...defaultConfig,
161
+ ...config,
162
+ toValue: 1.0,
163
+ }),
164
+ config,
165
+ );
166
+ }
167
+
168
+ decay(config) {
169
+ const progressValue = new Animated.Value(0.0);
170
+ return this.animate(
171
+ progressValue,
172
+ Animated.decay(this.progressValue, {
173
+ ...defaultConfig,
174
+ ...config,
175
+ toValue: 1.0,
176
+ }),
177
+ config,
178
+ );
179
+ }
180
+
181
+ __getValue() {
182
+ if (!this.progressValue) {
183
+ return this.onGetValue(this.state);
184
+ }
185
+ return this.onGetValue(
186
+ this.onCalculate(this.state, this.progressValue.__getValue()),
187
+ );
188
+ }
189
+ }
190
+
191
+ export default AnimatedCoordinatesArray;
@@ -0,0 +1,43 @@
1
+ import {Animated} from 'react-native';
2
+
3
+ // see
4
+ // https://github.com/facebook/react-native/blob/master/Libraries/Animated/src/nodes/AnimatedWithChildren.js
5
+ const AnimatedWithChildren = Object.getPrototypeOf(Animated.ValueXY);
6
+ if (__DEV__) {
7
+ if (AnimatedWithChildren.name !== 'AnimatedWithChildren') {
8
+ console.error(
9
+ 'AnimatedCoordinatesArray could not obtain AnimatedWithChildren base class',
10
+ );
11
+ }
12
+ }
13
+
14
+ export default class AnimatedExtractCoordinateFromArray extends AnimatedWithChildren {
15
+ _array = null;
16
+
17
+ _index = 0;
18
+
19
+ constructor(array, index) {
20
+ super();
21
+ this._array = array;
22
+ this._index = index;
23
+ }
24
+
25
+ __getValue() {
26
+ const actArray = this._array.__getValue();
27
+ let index = this._index;
28
+
29
+ if (index < 0) {
30
+ index += actArray.length;
31
+ }
32
+ return actArray[index];
33
+ }
34
+
35
+ __attach() {
36
+ this._array.__addChild(this);
37
+ }
38
+
39
+ __detach() {
40
+ this._array.__removeChild(this);
41
+ super.__detach();
42
+ }
43
+ }
@@ -0,0 +1,126 @@
1
+ import {Animated} from 'react-native';
2
+
3
+ // Used react-native-maps as a reference
4
+ // https://github.com/react-community/react-native-maps/blob/master/lib/components/AnimatedRegion.js
5
+ const AnimatedWithChildren = Object.getPrototypeOf(Animated.ValueXY);
6
+
7
+ const DEFAULT_COORD = [0, 0];
8
+ const DEFAULT_POINT = {type: 'Point', coordinates: DEFAULT_COORD};
9
+
10
+ let uniqueID = 0;
11
+
12
+ export class AnimatedPoint extends AnimatedWithChildren {
13
+ constructor(point = DEFAULT_POINT) {
14
+ super();
15
+
16
+ this.longitude = point.coordinates[0] || 0;
17
+ this.latitude = point.coordinates[1] || 0;
18
+
19
+ if (!(this.longitude instanceof Animated.Value)) {
20
+ this.longitude = new Animated.Value(this.longitude);
21
+ }
22
+
23
+ if (!(this.latitude instanceof Animated.Value)) {
24
+ this.latitude = new Animated.Value(this.latitude);
25
+ }
26
+
27
+ this._listeners = {};
28
+ }
29
+
30
+ setValue(point = DEFAULT_POINT) {
31
+ this.longitude.setValue(point.coordinates[0]);
32
+ this.latitude.setValue(point.coordinates[1]);
33
+ }
34
+
35
+ setOffset(point = DEFAULT_POINT) {
36
+ this.longitude.setOffset(point.coordinates[0]);
37
+ this.latitude.setOffset(point.coordinates[1]);
38
+ }
39
+
40
+ flattenOffset() {
41
+ this.longitude.flattenOffset();
42
+ this.latitude.flattenOffset();
43
+ }
44
+
45
+ stopAnimation(cb) {
46
+ this.longitude.stopAnimation();
47
+ this.latitude.stopAnimation();
48
+
49
+ if (typeof cb === 'function') {
50
+ cb(this.__getValue());
51
+ }
52
+ }
53
+
54
+ addListener(cb) {
55
+ uniqueID += 1;
56
+ const id = `${String(uniqueID)}-${String(Date.now())}`;
57
+
58
+ const completeCB = () => {
59
+ if (typeof cb === 'function') {
60
+ cb(this.__getValue());
61
+ }
62
+ };
63
+
64
+ this._listeners[id] = {
65
+ longitude: this.longitude.addListener(completeCB),
66
+ latitude: this.latitude.addListener(completeCB),
67
+ };
68
+
69
+ return id;
70
+ }
71
+
72
+ removeListener(id) {
73
+ this.longitude.removeListener(this._listeners[id].longitude);
74
+ this.latitude.removeListener(this._listeners[id].latitude);
75
+ delete this._listeners[id];
76
+ }
77
+
78
+ spring(config = {coordinates: DEFAULT_COORD}) {
79
+ return Animated.parallel([
80
+ Animated.spring(this.longitude, {
81
+ ...config,
82
+ toValue: config.coordinates[0],
83
+ useNativeDriver: false,
84
+ }),
85
+ Animated.spring(this.latitude, {
86
+ ...config,
87
+ toValue: config.coordinates[1],
88
+ useNativeDriver: false,
89
+ }),
90
+ ]);
91
+ }
92
+
93
+ timing(config = {coordinates: DEFAULT_COORD}) {
94
+ return Animated.parallel([
95
+ Animated.timing(this.longitude, {
96
+ ...config,
97
+ toValue: config.coordinates[0],
98
+ useNativeDriver: false,
99
+ }),
100
+ Animated.timing(this.latitude, {
101
+ ...config,
102
+ toValue: config.coordinates[1],
103
+ useNativeDriver: false,
104
+ }),
105
+ ]);
106
+ }
107
+
108
+ __getValue() {
109
+ return {
110
+ type: 'Point',
111
+ coordinates: [this.longitude.__getValue(), this.latitude.__getValue()],
112
+ };
113
+ }
114
+
115
+ __attach() {
116
+ this.longitude.__addChild(this);
117
+ this.latitude.__addChild(this);
118
+ }
119
+
120
+ __detach() {
121
+ this.longitude.__removeChild(this);
122
+ this.latitude.__removeChild(this);
123
+ }
124
+ }
125
+
126
+ export default AnimatedPoint;
@@ -0,0 +1,124 @@
1
+ import AnimatedCoordinatesArray from './AnimatedCoordinatesArray';
2
+
3
+ import {lineString, point, convertLength} from '@turf/helpers';
4
+ import distance from '@turf/distance';
5
+ import nearestPointOnLine from '@turf/nearest-point-on-line';
6
+ import length from '@turf/length';
7
+
8
+ export default class AnimatedRouteCoordinatesArray extends AnimatedCoordinatesArray {
9
+ /**
10
+ * Calculate initial state
11
+ *
12
+ * @param {*} args - to value from animate
13
+ * @returns {object} - the state object
14
+ */
15
+ onInitialState(coordinatesArray) {
16
+ return {
17
+ fullRoute: coordinatesArray.map(coord => [coord[0], coord[1]]),
18
+ end: {from: 0},
19
+ };
20
+ }
21
+
22
+ /**
23
+ * Calculate value from state.
24
+ *
25
+ * @param {object} state - either state from initialState and/or from calculate
26
+ * @returns {object}
27
+ */
28
+ onGetValue(state) {
29
+ return state.actRoute || state.fullRoute;
30
+ }
31
+
32
+ /**
33
+ * Calculates state based on startingState and progress, returns a new state
34
+ *
35
+ * @param {object} state - state object from initialState and/or from calculate
36
+ * @param {number} progress - value between 0 and 1
37
+ * @returns {object} next state
38
+ */
39
+ onCalculate(state, progress) {
40
+ const {fullRoute, end} = state;
41
+ const currentEnd = end.from * (1.0 - progress) + progress * end.to;
42
+
43
+ let prevsum = 0;
44
+ let actsum = 0;
45
+ let i = fullRoute.length - 1;
46
+ while (actsum < currentEnd && i > 0) {
47
+ prevsum = actsum;
48
+ actsum += distance(
49
+ point(fullRoute[i]),
50
+ point(fullRoute[i - 1]),
51
+ this.distconf,
52
+ );
53
+ i -= 1;
54
+ }
55
+ if (actsum <= currentEnd) {
56
+ const actRoute = [...fullRoute.slice(0, i + 1)];
57
+ return {fullRoute, end: {...end, current: currentEnd}, actRoute};
58
+ }
59
+ const r = (currentEnd - prevsum) / (actsum - prevsum);
60
+ const or = 1.0 - r;
61
+
62
+ const actRoute = [
63
+ ...fullRoute.slice(0, i + 1),
64
+ [
65
+ fullRoute[i][0] * r + fullRoute[i + 1][0] * or,
66
+ fullRoute[i][1] * r + fullRoute[i + 1][1] * or,
67
+ ],
68
+ ];
69
+ return {fullRoute, end: {...end, current: currentEnd}, actRoute};
70
+ }
71
+
72
+ /**
73
+ * Subclasses can override to start a new animation
74
+ *
75
+ * @param {*} toValue - to value from animate
76
+ * @param {*} actCoords - the current coordinates array to start from
77
+ * @returns {object} The state
78
+ */
79
+ onStart(state, toValue) {
80
+ const {fullRoute, end} = state;
81
+ let toDist;
82
+ if (!toValue.end) {
83
+ console.error(
84
+ 'RouteCoordinatesArray: toValue should have end with either along or point',
85
+ );
86
+ }
87
+ if (toValue.end.along != null) {
88
+ const {units} = toValue;
89
+ const ls = lineString(fullRoute);
90
+ toDist = convertLength(toValue.end.along, units);
91
+ toDist = length(ls) - toDist;
92
+ }
93
+ if (toDist != null) {
94
+ if (toValue.end.point) {
95
+ console.warn(
96
+ 'RouteCoordinatesArray: toValue.end: has both along and point, point is ignored',
97
+ );
98
+ }
99
+ } else if (toValue.end.point) {
100
+ const ls = lineString(fullRoute);
101
+
102
+ const nearest = nearestPointOnLine(ls, toValue.end.point);
103
+ toDist = length(ls) - nearest.properties.location;
104
+ } else {
105
+ console.warn(
106
+ 'RouteCoordinatesArray: toValue.end: should have either along or point',
107
+ );
108
+ }
109
+
110
+ const result = {
111
+ fullRoute,
112
+ end: {
113
+ ...end,
114
+ from: end.current != null ? end.current : end.from,
115
+ to: toDist,
116
+ },
117
+ };
118
+ return result;
119
+ }
120
+
121
+ get originalRoute() {
122
+ return this.state.fullRoute;
123
+ }
124
+ }
@@ -0,0 +1,72 @@
1
+ import {Animated} from 'react-native';
2
+
3
+ // see
4
+ // https://github.com/facebook/react-native/blob/master/Libraries/Animated/src/nodes/AnimatedWithChildren.js
5
+ const AnimatedWithChildren = Object.getPrototypeOf(Animated.ValueXY);
6
+ if (__DEV__) {
7
+ if (AnimatedWithChildren.name !== 'AnimatedWithChildren') {
8
+ console.error(
9
+ 'AnimatedShape could not obtain AnimatedWithChildren base class',
10
+ );
11
+ }
12
+ }
13
+
14
+ /**
15
+ * AnimatedShape can be used to have animated properties inside the shape property
16
+ * @example
17
+ * <AnimatedShapeSource ... shape={new AnimatedShape({type:'LineString', coordinates: animatedCoords})} />
18
+ */
19
+ class AnimatedShape extends AnimatedWithChildren {
20
+ // equivalent of AnimatedStyle for shapes
21
+ // https://github.com/facebook/react-native/blob/master/Libraries/Animated/src/nodes/AnimatedStyle.js
22
+
23
+ constructor(shape) {
24
+ super();
25
+ this.shape = shape;
26
+ }
27
+
28
+ _walkShapeAndGetValues(value) {
29
+ if (Array.isArray(value)) {
30
+ return value.map(i => this._walkShapeAndGetValues(i));
31
+ }
32
+ if (value instanceof Animated.Node) {
33
+ return value.__getValue();
34
+ }
35
+ if (typeof value === 'object') {
36
+ const result = {};
37
+ for (const key in value) {
38
+ result[key] = this._walkShapeAndGetValues(value[key]);
39
+ }
40
+ return result;
41
+ }
42
+ return value;
43
+ }
44
+
45
+ __getValue() {
46
+ const result = this._walkShapeAndGetValues(this.shape);
47
+ return result;
48
+ }
49
+
50
+ _walkAndProcess(value, cb) {
51
+ if (Array.isArray(value)) {
52
+ value.forEach(i => this._walkAndProcess(i, cb));
53
+ } else if (value instanceof Animated.Node) {
54
+ cb(value);
55
+ } else if (typeof value === 'object') {
56
+ for (const key in value) {
57
+ this._walkAndProcess(value[key], cb);
58
+ }
59
+ }
60
+ }
61
+
62
+ __attach() {
63
+ this._walkAndProcess(this.shape, v => v.__addChild(this));
64
+ }
65
+
66
+ __detach() {
67
+ this._walkAndProcess(this.shape, v => v.__removeChild(this));
68
+ super.__detach();
69
+ }
70
+ }
71
+
72
+ export default AnimatedShape;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copy properties from origObject to newObject, which not exists in newObject,
3
+ * calls onDeprecatedCalled callback in case a copied property is invoked.
4
+ */
5
+
6
+ export function copyPropertiesAsDeprecated(
7
+ origObject,
8
+ newObject,
9
+ onDeprecatedCalled,
10
+ accessors = {},
11
+ ) {
12
+ const result = newObject;
13
+ for (const [key, value] of Object.entries(origObject)) {
14
+ if (!newObject[key]) {
15
+ // eslint-disable-next-line fp/no-mutating-methods
16
+ Object.defineProperty(result, key, {
17
+ get() {
18
+ onDeprecatedCalled(key);
19
+ return accessors[key] ? accessors[key](value) : value;
20
+ },
21
+ });
22
+ }
23
+ }
24
+ return result;
25
+ }
@@ -0,0 +1,7 @@
1
+ export function getFilter(filter) {
2
+ if (!Array.isArray(filter) || filter.length === 0) {
3
+ return [];
4
+ }
5
+
6
+ return filter;
7
+ }
@@ -0,0 +1,73 @@
1
+ import {featureCollection, point, feature, lineString} from '@turf/helpers';
2
+ import distance from '@turf/distance';
3
+ import along from '@turf/along';
4
+ import geoViewport from '@mapbox/geo-viewport';
5
+
6
+ const VECTOR_TILE_SIZE = 512;
7
+
8
+ export function makePoint(coordinates, properties, options) {
9
+ return point(coordinates, properties, options);
10
+ }
11
+
12
+ export function makeLineString(coordinates, properties, options) {
13
+ return lineString(coordinates, properties, options);
14
+ }
15
+
16
+ export function makeLatLngBounds(northEastCoordinates, southWestCoordinates) {
17
+ return featureCollection([
18
+ point(northEastCoordinates),
19
+ point(southWestCoordinates),
20
+ ]);
21
+ }
22
+
23
+ export function makeFeature(geometry, properties) {
24
+ return feature(geometry, properties);
25
+ }
26
+
27
+ export function makeFeatureCollection(features = [], options) {
28
+ return featureCollection(features, options);
29
+ }
30
+
31
+ export function addToFeatureCollection(newFeatureCollection, newFeature) {
32
+ return {
33
+ ...newFeatureCollection,
34
+ features: [...newFeatureCollection.features, newFeature],
35
+ };
36
+ }
37
+
38
+ export function calculateDistance(origin, dest, options) {
39
+ return distance(origin, dest, options);
40
+ }
41
+
42
+ export function pointAlongLine(newLineString, distAlong, options) {
43
+ return along(newLineString, distAlong, options);
44
+ }
45
+
46
+ export function getOrCalculateVisibleRegion(
47
+ coord,
48
+ zoomLevel,
49
+ width,
50
+ height,
51
+ nativeRegion,
52
+ ) {
53
+ const region = {
54
+ ne: [0, 0],
55
+ sw: [0, 0],
56
+ };
57
+
58
+ if (!nativeRegion || !Array.isArray(nativeRegion.visibleBounds)) {
59
+ const bounds = geoViewport.bounds(
60
+ coord,
61
+ zoomLevel,
62
+ [width, height],
63
+ VECTOR_TILE_SIZE,
64
+ );
65
+ region.ne = [bounds[3], bounds[2]];
66
+ region.sw = [bounds[1], bounds[0]];
67
+ } else {
68
+ region.ne = nativeRegion.properties.visibleBounds[0];
69
+ region.sw = nativeRegion.properties.visibleBounds[1];
70
+ }
71
+
72
+ return region;
73
+ }