@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
package/README.md ADDED
@@ -0,0 +1,224 @@
1
+ ---
2
+
3
+ [![MapLibre Logo](https://maplibre.org/img/maplibre-logo-big.svg)](https://maplibre.org)
4
+
5
+
6
+ # MapLibre GL SDK for React Native
7
+
8
+ _A React Native library for building maps with
9
+ the [MapLibre GL Native SDK for iOS & Android](https://github.com/maplibre/maplibre-gl-native)_.
10
+
11
+ This project originated as a fork of [rnmapbox](https://github.com/rnmapbox/maps), a community-maintained
12
+ React Native Library for building maps with the Mapbox iOS and Android mobile SDKs. The original product
13
+ supported both Mapbox and MapLibre for some time, but as the MapLibre and Mapbox SDKs have
14
+ diverged, it has become necessary to separate the projects into specific wrappers by underlying renderer.
15
+
16
+ **This project is in the process of being onboarded and prepared for broad use by the MapLibre community. PRs and tickets welcomed.** Track the status over at: https://github.com/maplibre/maplibre/issues/134
17
+
18
+ ---
19
+
20
+ _TODO: update NPM badge_
21
+
22
+ [![npm version](https://badge.fury.io/js/%40react-native-mapbox-gl%2Fmaps.svg)](https://badge.fury.io/js/%40react-native-mapbox-gl%2Fmaps)
23
+ [![Android Build](https://github.com/maplibre/maplibre-react-native/actions/workflows/android-actions.yml/badge.svg)](https://github.com/maplibre/maplibre-react-native/actions/workflows/android-actions.yml)
24
+ [![iOS Build](https://github.com/maplibre/maplibre-react-native/actions/workflows/ios-actions.yml/badge.svg)](https://github.com/maplibre/maplibre-react-native/actions/workflows/ios-actions.yml)
25
+
26
+ ---
27
+
28
+ <br>
29
+
30
+ <img src="./assets/indoor_building_map_android.png"
31
+ alt="Indoor Building Map Android"
32
+ height="300"
33
+ />
34
+ <img src="./assets/indoor_building_map_ios.png"
35
+ alt="Indoor Building Map iOS"
36
+ height="300"
37
+ />
38
+
39
+ # Quickstart for app developers
40
+
41
+ ## Prerequisites
42
+
43
+ 1. On Android we support from version 6 (API 23) upwards
44
+ 2. You will need a vector tile source (such as Stadia Maps or MapTiler) for production use; a demonstration URL is used in the below example.
45
+
46
+
47
+ ## Dependencies
48
+
49
+ - [node](https://nodejs.org)
50
+ - [npm](https://www.npmjs.com/)
51
+ - [React Native](https://facebook.github.io/react-native/) (0.60+)
52
+
53
+
54
+ ## Installation
55
+
56
+ ### Step 1 - Install Package:
57
+
58
+ ```sh
59
+ # install with Yarn
60
+ yarn add @maplibre/maplibre-react-native
61
+
62
+
63
+ # or install with NPM
64
+ npm install @maplibre/maplibre-react-native --save
65
+ ```
66
+
67
+ ### Step 2 - Installation Guides:
68
+
69
+ - [Android](/android/install.md)
70
+ - [iOS](/ios/install.md)
71
+ - [Expo](/plugin/install.md)
72
+ - [Example](/example)
73
+
74
+
75
+ ### Getting Started
76
+ For more information, check out our [Getting Started](/docs/GettingStarted.md) section
77
+
78
+ ## Run Project
79
+ Before you run your project be sure you have completed the Installation Guides for Android or iOS.
80
+
81
+ ### Run iOS Simulator
82
+ ```sh
83
+ # Run with yarn
84
+ yarn run ios
85
+
86
+ # or Run with NPM
87
+ npm run ios
88
+ ```
89
+
90
+ ### Run Android Emulator
91
+ ```sh
92
+ # Run with yarn
93
+ yarn run android
94
+
95
+ # or Run with NPM
96
+ npm run android
97
+ ```
98
+
99
+ ## Adding a map
100
+
101
+ ```js
102
+ import React, {Component} from 'react';
103
+ import {StyleSheet, View} from 'react-native';
104
+ import MapboxGL from '@maplibre/maplibre-react-native';
105
+
106
+ const styles = StyleSheet.create({
107
+ page: {
108
+ flex: 1,
109
+ justifyContent: 'center',
110
+ alignItems: 'center',
111
+ backgroundColor: '#F5FCFF',
112
+ },
113
+ map: {
114
+ flex: 1,
115
+ alignSelf: 'stretch',
116
+ },
117
+ });
118
+
119
+ export default class App extends Component {
120
+ render() {
121
+ return (
122
+ <View style={styles.page}>
123
+ <MapboxGL.MapView
124
+ style={styles.map}
125
+ logoEnabled={false}
126
+ styleURL="https://demotiles.maplibre.org/style.json"
127
+ />
128
+ </View>
129
+ );
130
+ }
131
+ }
132
+ ```
133
+
134
+ ## Documentation
135
+
136
+ ### Components
137
+
138
+ - [MapView](/docs/MapView.md)
139
+ - [Light](/docs/Light.md)
140
+ - [StyleSheet](/docs/StyleSheet.md)
141
+ - [PointAnnotation](/docs/PointAnnotation.md)
142
+ - [MarkerView](/docs/MarkerView.md)
143
+ - [Callout](/docs/Callout.md)
144
+ - [Camera](docs/Camera.md)
145
+ - [UserLocation](docs/UserLocation.md)
146
+ - [Images](docs/Images.md)
147
+
148
+ ### Sources
149
+
150
+ - [VectorSource](/docs/VectorSource.md)
151
+ - [ShapeSource](/docs/ShapeSource.md)
152
+ - [RasterSource](/docs/RasterSource.md)
153
+
154
+ ### Layers
155
+
156
+ - [BackgroundLayer](/docs/BackgroundLayer.md)
157
+ - [CircleLayer](/docs/CircleLayer.md)
158
+ - [FillExtrusionLayer](/docs/FillExtrusionLayer.md)
159
+ - [FillLayer](/docs/FillLayer.md)
160
+ - [LineLayer](/docs/LineLayer.md)
161
+ - [RasterLayer](/docs/RasterLayer.md)
162
+ - [SymbolLayer](/docs/SymbolLayer.md)
163
+ - [HeatmapLayer](/docs/HeatmapLayer.md)
164
+
165
+ ### Offline
166
+
167
+ - [OfflineManager](/docs/OfflineManager.md)
168
+ - [SnapshotManager](/docs/snapshotManager.md)
169
+
170
+ ### Misc
171
+
172
+ - [MapboxGL](/docs/MapboxGL.md)
173
+ - [CustomHttpHeaders](/docs/CustomHttpHeaders.md)
174
+ - [Logger](/docs/Logger.md)
175
+
176
+ ## Expo Support
177
+
178
+ This package is not available in the [Expo Go](https://expo.io/client) app. Learn how you can use it with [custom dev clients](/plugin/install.md).
179
+
180
+ # Quickstart for contributors
181
+
182
+ ## Environment Setup
183
+
184
+ This project includes `.nvmrc`. You should use nvm so that you're always developing for the correct
185
+ version of Node.
186
+
187
+ This project uses `yarn` as a package manager. DO NOT install `yarn` using `npm` as that will install
188
+ the outdated 1.x branch. Full instructions are in the [yarn docs](https://yarnpkg.com/getting-started/install),
189
+ but here's the quick checklist at the time of this writing.
190
+
191
+ 1. `corepack enable`
192
+ 2. `corepack prepare yarn@stable --activate`
193
+ 3. On first install, the above may change your yarn config away from `pnp`; check your git working copy for changes and revert if necessary.
194
+ 4. `yarn install`
195
+
196
+ ### JetBrains IDE Setup
197
+
198
+ Your JetBrains IDE (such as IntelliJ) needs to be set to use yarn under Preferences > Languages & Frameworks > Node.js.
199
+ This may require a manual change if you did not have yarn previously installed.
200
+
201
+ ## Testing with Jest
202
+
203
+ This library provides some mocks which are necessary for running tests.
204
+
205
+ Example:
206
+
207
+ ```json
208
+ "jest": {
209
+ "preset": "react-native",
210
+ "setupFilesAfterEnv": ["@maplibre/maplibre-react-native/setup-jest"]
211
+ }
212
+ ```
213
+
214
+ ## Optional: Local development with yalc
215
+
216
+ When developing locally, it is often desirable to test in the context of an external project.
217
+ However, it's not easy to do this out of the box with `yarn` or `npm`.
218
+ [`yalc`](https://www.viget.com/articles/how-to-use-local-unpublished-node-packages-as-project-dependencies/)
219
+ can mitigate some of the pain with this.
220
+
221
+ ## Community
222
+
223
+ Join the #maplibre-native Slack channel at OSMUS: get an invite at https://slack.openstreetmap.us/
224
+ Read the [CONTRIBUTING.md](CONTRIBUTING.md) guide in order to get familiar with how we do things around here.
package/RELEASE.md ADDED
@@ -0,0 +1,30 @@
1
+ # How to create a release for this repo
2
+
3
+ ## Make sure `master` builds correctly
4
+
5
+ Are all our [actions](https://github.com/maplibre/maplibre-react-native/actions) passing successfully?
6
+ If not, make sure to investigate the issue and fix it prior to a release.
7
+
8
+ ## Bump the version in our package.json
9
+
10
+ Once you verified, that `master` isn't broken, go on and increase the `version` within our `package.json`.
11
+
12
+ ## Update the CHANGELOG accordingly
13
+
14
+ Our [`CHANGELOG.md`](https://github.com/maplibre/maplibre-react-native/blob/master/CHANGELOG.md) should be updated whenever a PR is merged/ noteworthy changes are commited to `master`.
15
+ Prior to a release, the changes should be documented under the `UNRELEASED` section.
16
+ Once it's clear, that a release is about to be published, move the items under `UNRELEASED` to _this_ releases sections.
17
+ Let your actions be guided by the previous release entries.
18
+
19
+ ## Draft a new release on Github
20
+
21
+ Within the [releases](https://github.com/maplibre/maplibre-react-native/releases) section of the repo you can [`Draft a new release`](https://github.com/maplibre/maplibre-react-native/releases/new).
22
+
23
+ `Tag version` & `Release title` should be the same.
24
+ As redundant as it might sound, please add the changes from the `CHANGELOG.md` into the body of the release.
25
+
26
+ ## Monitor the repos issues for updates
27
+
28
+ Once the release is out the door (on [npm](https://www.npmjs.com/package/@maplibre/maplibre-react-native)),
29
+ make sure to monitor the [issues](https://github.com/maplibre/maplibre-react-native/issues) closely for
30
+ problems the community might encounter.
@@ -0,0 +1,34 @@
1
+ // Top-level build file where you can add configuration options common to all sub-projects/modules.
2
+
3
+ buildscript {
4
+ ext {
5
+ buildToolsVersion = "28.0.3"
6
+ minSdkVersion = 16
7
+ compileSdkVersion = 33
8
+ targetSdkVersion = 33
9
+ supportLibVersion = "28.0.0"
10
+ }
11
+ repositories {
12
+ google()
13
+ jcenter()
14
+ }
15
+ dependencies {
16
+ classpath 'com.android.tools.build:gradle:3.5.2'
17
+
18
+ // NOTE: Do not place your application dependencies here; they belong
19
+ // in the individual module build.gradle files
20
+ }
21
+ }
22
+
23
+ allprojects {
24
+ repositories {
25
+ mavenLocal()
26
+ google()
27
+ jcenter()
28
+ maven { url "https://jitpack.io" }
29
+ maven {
30
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
31
+ url "$rootDir/../node_modules/react-native/android"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,16 @@
1
+ # Android Installation
2
+
3
+ We've set up the default MapLibre dependencies for you, and no
4
+ special installation is required!
5
+
6
+ Feel free to check out the `/example` projects [`android/build.gradle`](https://github.com/maplibre/maplibre-react-native/blob/main/example/)
7
+ projects for inspiration to get started.
8
+
9
+ Note that the Android SDK is slightly peculiar in that it absolutely
10
+ requires setting an access token, even though it will be `null` for
11
+ most users (non-Mapbox-users). Simply add something like this near
12
+ the top of your `App.js`.
13
+
14
+ ```javascript
15
+ MapboxGL.setAccessToken(null);
16
+ ```
@@ -0,0 +1,2 @@
1
+ connection.project.dir=
2
+ eclipse.preferences.version=1
@@ -0,0 +1,61 @@
1
+ apply plugin: 'com.android.library'
2
+
3
+ def safeExtGet(prop, fallback) {
4
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
5
+ }
6
+
7
+ android {
8
+ compileSdkVersion safeExtGet("compileSdkVersion", 33)
9
+ buildToolsVersion safeExtGet("buildToolsVersion", '33.0.1')
10
+
11
+ defaultConfig {
12
+ minSdkVersion safeExtGet('minSdkVersion', 16)
13
+ targetSdkVersion safeExtGet('targetSdkVersion', 26)
14
+ versionCode 1
15
+ versionName "1.0"
16
+ }
17
+
18
+ compileOptions {
19
+ sourceCompatibility JavaVersion.VERSION_1_8
20
+ targetCompatibility JavaVersion.VERSION_1_8
21
+ }
22
+
23
+ buildTypes {
24
+ release {
25
+ minifyEnabled false
26
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
27
+ }
28
+ }
29
+ }
30
+
31
+ dependencies {
32
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
33
+
34
+ // React Native
35
+ implementation "com.facebook.react:react-native:+"
36
+
37
+ // MapLibre SDK
38
+ implementation "org.maplibre.gl:android-sdk:9.5.2"
39
+ implementation "org.maplibre.gl:android-sdk-turf:5.9.0"
40
+
41
+ // Dependencies
42
+ implementation "com.android.support:support-vector-drawable:${safeExtGet('supportLibVersion', '28.0.0')}"
43
+ implementation "com.android.support:support-annotations:${safeExtGet('supportLibVersion', '28.0.0')}"
44
+ implementation "com.android.support:appcompat-v7:${safeExtGet('supportLibVersion', '28.0.0')}"
45
+ implementation "com.squareup.okhttp3:okhttp:${safeExtGet('okhttpVersion', '4.9.0')}"
46
+ implementation "com.squareup.okhttp3:okhttp-urlconnection:${safeExtGet('okhttpVersion', '4.9.0')}"
47
+
48
+
49
+ // MapLibre plugins
50
+ implementation ("org.maplibre.gl:android-plugin-localization-v9:1.0.0")
51
+ implementation ("org.maplibre.gl:android-plugin-annotation-v9:1.0.0")
52
+ implementation ("org.maplibre.gl:android-plugin-markerview-v9:1.0.0")
53
+ }
54
+
55
+ allprojects {
56
+ repositories {
57
+ maven {
58
+ url = "https://dl.bintray.com/maplibre/maplibre-gl-native"
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,25 @@
1
+ # Add project specific ProGuard rules here.
2
+ # By default, the flags in this file are appended to flags specified
3
+ # in /Users/nickitaliano/Library/Android/sdk/tools/proguard/proguard-android.txt
4
+ # You can edit the include path and order by changing the proguardFiles
5
+ # directive in build.gradle.
6
+ #
7
+ # For more details, see
8
+ # http://developer.android.com/guide/developing/tools/proguard.html
9
+
10
+ # Add any project specific keep options here:
11
+
12
+ # If your project uses WebView with JS, uncomment the following
13
+ # and specify the fully qualified class name to the JavaScript interface
14
+ # class:
15
+ #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16
+ # public *;
17
+ #}
18
+
19
+ # Uncomment this to preserve the line number information for
20
+ # debugging stack traces.
21
+ #-keepattributes SourceFile,LineNumberTable
22
+
23
+ # If you keep the line number information, uncomment this to
24
+ # hide the original source file name.
25
+ #-renamesourcefileattribute SourceFile
@@ -0,0 +1,4 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mapbox.rctmgl">
2
+ <uses-permission android:name="android.permission.INTERNET" />
3
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
4
+ </manifest>
@@ -0,0 +1,99 @@
1
+ package com.mapbox.rctmgl;
2
+
3
+ import com.facebook.react.ReactPackage;
4
+ import com.facebook.react.bridge.JavaScriptModule;
5
+ import com.facebook.react.bridge.NativeModule;
6
+ import com.facebook.react.bridge.ReactApplicationContext;
7
+ import com.facebook.react.uimanager.ViewManager;
8
+
9
+ import java.util.ArrayList;
10
+ import java.util.Collections;
11
+ import java.util.List;
12
+
13
+ import com.mapbox.rctmgl.components.annotation.RCTMGLCalloutManager;
14
+ import com.mapbox.rctmgl.components.annotation.RCTMGLPointAnnotationManager;
15
+ import com.mapbox.rctmgl.components.annotation.RCTMGLMarkerViewManager;
16
+ import com.mapbox.rctmgl.components.camera.RCTMGLCameraManager;
17
+ import com.mapbox.rctmgl.components.images.RCTMGLImagesManager;
18
+ import com.mapbox.rctmgl.components.location.RCTMGLNativeUserLocationManager;
19
+ import com.mapbox.rctmgl.components.mapview.RCTMGLMapViewManager;
20
+ import com.mapbox.rctmgl.components.mapview.RCTMGLAndroidTextureMapViewManager;
21
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLBackgroundLayerManager;
22
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLCircleLayerManager;
23
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLFillExtrusionLayerManager;
24
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLFillLayerManager;
25
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLHeatmapLayerManager;
26
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLLineLayerManager;
27
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLRasterLayerManager;
28
+ import com.mapbox.rctmgl.components.styles.layers.RCTMGLSymbolLayerManager;
29
+ import com.mapbox.rctmgl.components.styles.light.RCTMGLLightManager;
30
+ import com.mapbox.rctmgl.components.styles.sources.RCTMGLImageSourceManager;
31
+ import com.mapbox.rctmgl.components.styles.sources.RCTMGLRasterSourceManager;
32
+ import com.mapbox.rctmgl.components.styles.sources.RCTMGLShapeSourceManager;
33
+ import com.mapbox.rctmgl.components.styles.sources.RCTMGLVectorSourceManager;
34
+ import com.mapbox.rctmgl.modules.RCTMGLLocationModule;
35
+ import com.mapbox.rctmgl.modules.RCTMGLLogging;
36
+ import com.mapbox.rctmgl.modules.RCTMGLModule;
37
+ import com.mapbox.rctmgl.modules.RCTMGLOfflineModule;
38
+ import com.mapbox.rctmgl.modules.RCTMGLSnapshotModule;
39
+
40
+ /**
41
+ * Created by nickitaliano on 8/18/17.
42
+ */
43
+
44
+ public class RCTMGLPackage implements ReactPackage {
45
+
46
+ @Override
47
+ public List<NativeModule> createNativeModules(ReactApplicationContext reactApplicationContext) {
48
+ List<NativeModule> modules = new ArrayList<>();
49
+
50
+ modules.add(new RCTMGLModule(reactApplicationContext));
51
+ modules.add(new RCTMGLOfflineModule(reactApplicationContext));
52
+ modules.add(new RCTMGLSnapshotModule(reactApplicationContext));
53
+ modules.add(new RCTMGLLocationModule(reactApplicationContext));
54
+ modules.add(new RCTMGLLogging(reactApplicationContext));
55
+
56
+ return modules;
57
+ }
58
+
59
+ @Deprecated
60
+ public List<Class<? extends JavaScriptModule>> createJSModules() {
61
+ return Collections.emptyList();
62
+ }
63
+
64
+ @Override
65
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactApplicationContext) {
66
+ List<ViewManager> managers = new ArrayList<>();
67
+
68
+ // components
69
+ managers.add(new RCTMGLCameraManager(reactApplicationContext));
70
+ managers.add(new RCTMGLMapViewManager(reactApplicationContext));
71
+ managers.add(new RCTMGLMarkerViewManager(reactApplicationContext));
72
+ managers.add(new RCTMGLAndroidTextureMapViewManager(reactApplicationContext));
73
+ managers.add(new RCTMGLLightManager());
74
+ managers.add(new RCTMGLPointAnnotationManager(reactApplicationContext));
75
+ managers.add(new RCTMGLCalloutManager());
76
+ managers.add(new RCTMGLNativeUserLocationManager());
77
+
78
+ // sources
79
+ managers.add(new RCTMGLVectorSourceManager(reactApplicationContext));
80
+ managers.add(new RCTMGLShapeSourceManager(reactApplicationContext));
81
+ managers.add(new RCTMGLRasterSourceManager(reactApplicationContext));
82
+ managers.add(new RCTMGLImageSourceManager());
83
+
84
+ // images
85
+ managers.add(new RCTMGLImagesManager(reactApplicationContext));
86
+
87
+ // layers
88
+ managers.add(new RCTMGLFillLayerManager());
89
+ managers.add(new RCTMGLFillExtrusionLayerManager());
90
+ managers.add(new RCTMGLHeatmapLayerManager());
91
+ managers.add(new RCTMGLLineLayerManager());
92
+ managers.add(new RCTMGLCircleLayerManager());
93
+ managers.add(new RCTMGLSymbolLayerManager());
94
+ managers.add(new RCTMGLRasterLayerManager());
95
+ managers.add(new RCTMGLBackgroundLayerManager());
96
+
97
+ return managers;
98
+ }
99
+ }
@@ -0,0 +1,35 @@
1
+ package com.mapbox.rctmgl.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
+ }
@@ -0,0 +1,80 @@
1
+ package com.mapbox.rctmgl.components;
2
+
3
+ import android.view.ViewGroup;
4
+
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.common.MapBuilder;
7
+ import com.facebook.react.uimanager.ThemedReactContext;
8
+ import com.facebook.react.uimanager.UIManagerModule;
9
+ import com.facebook.react.uimanager.ViewGroupManager;
10
+ import com.facebook.react.uimanager.events.EventDispatcher;
11
+ import com.mapbox.rctmgl.events.IEvent;
12
+
13
+ import java.util.HashMap;
14
+ import java.util.Map;
15
+
16
+ import javax.annotation.Nullable;
17
+ import javax.annotation.Nonnull;
18
+
19
+ /**
20
+ * Created by nickitaliano on 8/23/17.
21
+ */
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 = context.getNativeModule(UIManagerModule.class).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
+ }
@@ -0,0 +1,19 @@
1
+ package com.mapbox.rctmgl.components;
2
+
3
+ import android.content.Context;
4
+
5
+ import com.facebook.react.views.view.ReactViewGroup;
6
+ import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
7
+
8
+ /**
9
+ * Created by nickitaliano on 9/6/17.
10
+ */
11
+
12
+ public abstract class AbstractMapFeature extends ReactViewGroup {
13
+ public AbstractMapFeature(Context context) {
14
+ super(context);
15
+ }
16
+
17
+ public abstract void addToMap(RCTMGLMapView mapView);
18
+ public abstract void removeFromMap(RCTMGLMapView mapView);
19
+ }
@@ -0,0 +1,23 @@
1
+ package com.mapbox.rctmgl.components.annotation;
2
+
3
+ import android.view.View;
4
+
5
+ import androidx.annotation.NonNull;
6
+
7
+ import com.mapbox.mapboxsdk.geometry.LatLng;
8
+
9
+ /**
10
+ * Subclass of MarkerView so we MarkerViewManager can implement remove/restoreViews
11
+ */
12
+ public class MarkerView extends com.mapbox.mapboxsdk.plugins.markerview.MarkerView {
13
+ View view;
14
+
15
+ public MarkerView(@NonNull LatLng latLng, @NonNull View view) {
16
+ super(latLng, view);
17
+ this.view = view;
18
+ }
19
+
20
+ public View getView() {
21
+ return this.view;
22
+ }
23
+ }