@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,64 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.content.Context;
4
+ import androidx.annotation.Nullable;
5
+ import androidx.annotation.Size;
6
+
7
+ import com.facebook.react.bridge.WritableMap;
8
+ import com.facebook.react.bridge.WritableNativeMap;
9
+ import com.mapbox.geojson.Feature;
10
+ import com.mapbox.geojson.FeatureCollection;
11
+ import com.mapbox.mapboxsdk.style.expressions.Expression;
12
+ import com.mapbox.mapboxsdk.style.sources.VectorSource;
13
+ import com.mapbox.rctmgl.events.AndroidCallbackEvent;
14
+ import com.mapbox.rctmgl.events.FeatureClickEvent;
15
+
16
+ import java.util.List;
17
+
18
+ /**
19
+ * Created by nickitaliano on 9/8/17.
20
+ */
21
+
22
+ public class RCTMGLVectorSource extends RCTMGLTileSource<VectorSource> {
23
+ private RCTMGLVectorSourceManager mManager;
24
+
25
+ public RCTMGLVectorSource(Context context, RCTMGLVectorSourceManager manager) {
26
+ super(context);
27
+ mManager = manager;
28
+ }
29
+
30
+ public void onPress(OnPressEvent event) {
31
+ mManager.handleEvent(FeatureClickEvent.makeVectorSourceEvent(this, event));
32
+ }
33
+
34
+ @Override
35
+ public VectorSource makeSource() {
36
+ if (isDefaultSource(mID)) {
37
+ return (VectorSource)mMap.getStyle().getSource(DEFAULT_ID);
38
+ }
39
+
40
+ String configurationUrl = getURL();
41
+ if (configurationUrl != null) {
42
+ return new VectorSource(mID, getURL());
43
+ }
44
+ return new VectorSource(mID, buildTileset());
45
+ }
46
+
47
+ public void querySourceFeatures(String callbackID,
48
+ @Size(min = 1) List<String> layerIDs,
49
+ @Nullable Expression filter) {
50
+ if (mSource == null) {
51
+ WritableMap payload = new WritableNativeMap();
52
+ payload.putString("error", "source is not yet loaded");
53
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
54
+ mManager.handleEvent(event);
55
+ return;
56
+ }
57
+ List<Feature> features = mSource.querySourceFeatures(layerIDs.toArray(new String[layerIDs.size()]), filter);
58
+ WritableMap payload = new WritableNativeMap();
59
+ payload.putString("data", FeatureCollection.fromFeatures(features).toJson());
60
+
61
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
62
+ mManager.handleEvent(event);
63
+ }
64
+ }
@@ -0,0 +1,84 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import androidx.annotation.Nullable;
4
+
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.bridge.ReadableArray;
7
+ import com.facebook.react.bridge.ReadableMap;
8
+ import com.facebook.react.common.MapBuilder;
9
+ import com.facebook.react.uimanager.ThemedReactContext;
10
+ import com.facebook.react.uimanager.annotations.ReactProp;
11
+ import com.mapbox.rctmgl.events.constants.EventKeys;
12
+ import com.mapbox.rctmgl.utils.ConvertUtils;
13
+ import com.mapbox.rctmgl.utils.ExpressionParser;
14
+
15
+ import javax.annotation.Nonnull;
16
+
17
+ import java.util.Map;
18
+
19
+ /**
20
+ * Created by nickitaliano on 9/8/17.
21
+ */
22
+
23
+ public class RCTMGLVectorSourceManager extends RCTMGLTileSourceManager<RCTMGLVectorSource> {
24
+ public static final String REACT_CLASS = "RCTMGLVectorSource";
25
+
26
+ public RCTMGLVectorSourceManager(ReactApplicationContext reactApplicationContext) {
27
+ super(reactApplicationContext);
28
+ }
29
+
30
+ @Nonnull
31
+ @Override
32
+ public String getName() {
33
+ return REACT_CLASS;
34
+ }
35
+
36
+ @Nonnull
37
+ @Override
38
+ protected RCTMGLVectorSource createViewInstance(@Nonnull ThemedReactContext reactContext) {
39
+ return new RCTMGLVectorSource(reactContext, this);
40
+ }
41
+
42
+ @ReactProp(name = "hasPressListener")
43
+ public void setHasPressListener(RCTMGLVectorSource source, boolean hasPressListener) {
44
+ source.setHasPressListener(hasPressListener);
45
+ }
46
+
47
+ @ReactProp(name="hitbox")
48
+ public void setHitbox(RCTMGLVectorSource source, ReadableMap map) {
49
+ source.setHitbox(map);
50
+ }
51
+
52
+ @Override
53
+ public Map<String, String> customEvents() {
54
+ return MapBuilder.<String, String>builder()
55
+ .put(EventKeys.VECTOR_SOURCE_LAYER_CLICK, "onMapboxVectorSourcePress")
56
+ .put(EventKeys.MAP_ANDROID_CALLBACK, "onAndroidCallback")
57
+ .build();
58
+ }
59
+
60
+ //region React Methods
61
+ public static final int METHOD_FEATURES = 102;
62
+
63
+ @Nullable
64
+ @Override
65
+ public Map<String, Integer> getCommandsMap() {
66
+ return MapBuilder.<String, Integer>builder()
67
+ .put("features", METHOD_FEATURES)
68
+ .build();
69
+ }
70
+
71
+ @Override
72
+ public void receiveCommand(RCTMGLVectorSource vectorSource, int commandID, @Nullable ReadableArray args) {
73
+
74
+ switch (commandID) {
75
+ case METHOD_FEATURES:
76
+ vectorSource.querySourceFeatures(
77
+ args.getString(0),
78
+ ConvertUtils.toStringList(args.getArray(1)),
79
+ ExpressionParser.from(args.getArray(2))
80
+ );
81
+ break;
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,244 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.content.Context;
4
+ import androidx.annotation.NonNull;
5
+
6
+ import android.graphics.PointF;
7
+ import android.view.View;
8
+
9
+ import com.facebook.react.bridge.ReadableMap;
10
+ import com.facebook.react.common.MapBuilder;
11
+ import com.mapbox.geojson.Feature;
12
+ import com.mapbox.mapboxsdk.geometry.LatLng;
13
+ import com.mapbox.mapboxsdk.log.Logger;
14
+ import com.mapbox.mapboxsdk.maps.MapboxMap;
15
+ import com.mapbox.mapboxsdk.maps.Style;
16
+ import com.mapbox.mapboxsdk.style.sources.Source;
17
+ import com.mapbox.rctmgl.components.AbstractMapFeature;
18
+ import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
19
+ import com.mapbox.rctmgl.components.styles.layers.RCTLayer;
20
+
21
+ import java.util.ArrayList;
22
+ import java.util.HashMap;
23
+ import java.util.List;
24
+ import java.util.Map;
25
+
26
+ /**
27
+ * Created by nickitaliano on 9/7/17.
28
+ */
29
+
30
+ public abstract class RCTSource<T extends Source> extends AbstractMapFeature {
31
+ public static final String DEFAULT_ID = "composite";
32
+ public static final String LOG_TAG = "RCTSource";
33
+
34
+ public static final double DEFAULT_HITBOX_WIDTH = 44.0;
35
+ public static final double DEFAULT_HITBOX_HEIGHT = 44.0;
36
+
37
+ protected RCTMGLMapView mMapView;
38
+ protected MapboxMap mMap;
39
+
40
+ protected String mID;
41
+ protected T mSource;
42
+ protected boolean mHasPressListener;
43
+ protected Map<String, Double> mTouchHitbox;
44
+
45
+ protected List<RCTLayer> mLayers;
46
+ private List<RCTLayer> mQueuedLayers;
47
+
48
+ public RCTSource(Context context) {
49
+ super(context);
50
+ mLayers = new ArrayList<>();
51
+ mQueuedLayers = new ArrayList<>();
52
+ }
53
+
54
+ public String getID() {
55
+ return mID;
56
+ }
57
+
58
+ public String[] getLayerIDs() {
59
+ List<String> layerIDs = new ArrayList<>();
60
+
61
+ for (int i = 0; i < mLayers.size(); i++) {
62
+ RCTLayer layer = mLayers.get(i);
63
+ layerIDs.add(layer.getID());
64
+ }
65
+
66
+ return layerIDs.toArray(new String[layerIDs.size()]);
67
+ }
68
+
69
+ public boolean hasPressListener() {
70
+ return mHasPressListener;
71
+ }
72
+
73
+ public void setHasPressListener (boolean hasPressListener) {
74
+ mHasPressListener = hasPressListener;
75
+ }
76
+
77
+ public void setHitbox(ReadableMap map) {
78
+ Map<String, Double> hitbox = new HashMap<>();
79
+ hitbox.put("width", map.getDouble("width"));
80
+ hitbox.put("height", map.getDouble("height"));
81
+ mTouchHitbox = hitbox;
82
+ }
83
+
84
+ public void setID(String id) {
85
+ mID = id;
86
+ }
87
+
88
+ public void setSource(T source) {
89
+ mSource = source;
90
+ }
91
+
92
+ public Map<String, Double> getTouchHitbox() {
93
+ if (!hasPressListener()) {
94
+ return null;
95
+ }
96
+
97
+ if (mTouchHitbox == null) {
98
+ return MapBuilder.<String, Double>builder()
99
+ .put("width", DEFAULT_HITBOX_WIDTH)
100
+ .put("height", DEFAULT_HITBOX_HEIGHT)
101
+ .build();
102
+ }
103
+
104
+ return mTouchHitbox;
105
+ }
106
+
107
+ public int getLayerCount () {
108
+ int totalCount = 0;
109
+
110
+ if (mQueuedLayers != null) {
111
+ totalCount = mQueuedLayers.size();
112
+ }
113
+
114
+ totalCount += mLayers.size();
115
+ return totalCount;
116
+ }
117
+
118
+ @Override
119
+ public void addToMap(RCTMGLMapView mapView) {
120
+ mMapView = mapView;
121
+ mMap = mapView.getMapboxMap();
122
+ mMap.getStyle(new Style.OnStyleLoaded() {
123
+ public void onStyleLoaded(@NonNull Style style) {
124
+ T existingSource = style.getSourceAs(mID);
125
+ if (existingSource != null) {
126
+ mSource = existingSource;
127
+ } else {
128
+ mSource = makeSource();
129
+ style.addSource(mSource);
130
+ }
131
+
132
+ if (mQueuedLayers != null && mQueuedLayers.size() > 0) { // first load
133
+ for (int i = 0; i < mQueuedLayers.size(); i++) {
134
+ addLayerToMap(mQueuedLayers.get(i), i);
135
+ }
136
+ mQueuedLayers = null;
137
+ } else if (mLayers.size() > 0) { // handles the case of switching style url, but keeping layers on map
138
+ for (int i = 0; i < mLayers.size(); i++) {
139
+ addLayerToMap(mLayers.get(i), i);
140
+ }
141
+ }
142
+ }
143
+ });
144
+
145
+
146
+ }
147
+
148
+ @Override
149
+ public void removeFromMap(RCTMGLMapView mapView) {
150
+ if (mLayers.size() > 0) {
151
+ for (int i = 0; i < mLayers.size(); i++) {
152
+ RCTLayer layer = mLayers.get(i);
153
+ layer.removeFromMap(mMapView);
154
+ }
155
+ }
156
+ if (mQueuedLayers != null) {
157
+ mQueuedLayers.clear();
158
+ }
159
+ if (mMap != null && mSource != null && mMap.getStyle() != null) {
160
+ try {
161
+ mMap.getStyle().removeSource(mSource);
162
+ } catch (Throwable ex) {
163
+ Logger.w(LOG_TAG, String.format("RCTSource.removeFromMap: %s - %s", mSource, ex.getMessage()), ex);
164
+ }
165
+ }
166
+ }
167
+
168
+ public void addLayer(View childView, int childPosition) {
169
+ if (!(childView instanceof RCTLayer)) {
170
+ return;
171
+ }
172
+
173
+ RCTLayer layer = (RCTLayer) childView;
174
+ if (mMap == null) {
175
+ mQueuedLayers.add(childPosition, layer);
176
+ } else {
177
+ addLayerToMap(layer, childPosition);
178
+ }
179
+ }
180
+
181
+ public void removeLayer(int childPosition) {
182
+ RCTLayer layer;
183
+ if (mQueuedLayers != null && mQueuedLayers.size() > 0) {
184
+ layer = mQueuedLayers.get(childPosition);
185
+ } else {
186
+ layer = mLayers.get(childPosition);
187
+ }
188
+ removeLayerFromMap(layer, childPosition);
189
+ }
190
+
191
+ public RCTLayer getLayerAt(int childPosition) {
192
+ if (mQueuedLayers != null && mQueuedLayers.size() > 0) {
193
+ return mQueuedLayers.get(childPosition);
194
+ }
195
+ return mLayers.get(childPosition);
196
+ }
197
+
198
+ protected void addLayerToMap(RCTLayer layer, int childPosition) {
199
+ if (mMapView == null || layer == null) {
200
+ return;
201
+ }
202
+
203
+ layer.addToMap(mMapView);
204
+ if (!mLayers.contains(layer)) {
205
+ mLayers.add(childPosition, layer);
206
+ }
207
+ }
208
+
209
+ protected void removeLayerFromMap(RCTLayer layer, int childPosition) {
210
+ if (mMapView != null && layer != null) {
211
+ layer.removeFromMap(mMapView);
212
+ }
213
+ if (mQueuedLayers != null && mQueuedLayers.size() > 0) {
214
+ mQueuedLayers.remove(childPosition);
215
+ } else {
216
+ mLayers.remove(childPosition);
217
+ }
218
+ }
219
+
220
+ public Style getStyle() {
221
+ if (mMap == null) return null;
222
+ return mMap.getStyle();
223
+ }
224
+
225
+ public abstract T makeSource();
226
+
227
+ static public class OnPressEvent {
228
+ public List<Feature> features;
229
+ public LatLng latLng;
230
+ public PointF screenPoint;
231
+
232
+ public OnPressEvent(@NonNull List<Feature> features, @NonNull LatLng latLng, @NonNull PointF screenPoint) {
233
+ this.features = features;
234
+ this.latLng = latLng;
235
+ this.screenPoint = screenPoint;
236
+ }
237
+ }
238
+
239
+ public abstract void onPress(OnPressEvent event);
240
+
241
+ public static boolean isDefaultSource(String sourceID) {
242
+ return DEFAULT_ID.equals(sourceID);
243
+ }
244
+ }
@@ -0,0 +1,66 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import android.view.View;
4
+
5
+ import com.facebook.react.bridge.Arguments;
6
+ import com.facebook.react.bridge.WritableMap;
7
+
8
+ /**
9
+ * Created by nickitaliano on 8/27/17.
10
+ */
11
+
12
+ abstract public class AbstractEvent implements IEvent {
13
+ private int mTagID;
14
+ private String mEventType;
15
+ private long mTimestamp;
16
+
17
+ public AbstractEvent(String eventType) {
18
+ this(null, eventType);
19
+ }
20
+
21
+ public AbstractEvent(View view, String eventType) {
22
+ mEventType = eventType;
23
+
24
+ if (view != null) {
25
+ mTagID = view.getId();
26
+ }
27
+
28
+ mTimestamp = System.currentTimeMillis();
29
+ }
30
+
31
+ public int getID() {
32
+ return mTagID;
33
+ }
34
+
35
+ public String getType() {
36
+ return mEventType;
37
+ }
38
+
39
+ public boolean equals(IEvent event) {
40
+ return getKey().equals(event.getKey()) && mEventType.equals(event.getType());
41
+ }
42
+
43
+ public WritableMap getPayload() {
44
+ return Arguments.createMap();
45
+ }
46
+
47
+ public long getTimestamp() {
48
+ return mTimestamp;
49
+ }
50
+
51
+ public WritableMap toJSON() {
52
+ WritableMap map = Arguments.createMap();
53
+ map.putString("type", getType());
54
+
55
+ WritableMap payloadClone = Arguments.createMap();
56
+ payloadClone.merge(getPayload());
57
+ map.putMap("payload", payloadClone);
58
+ return map;
59
+ }
60
+
61
+ @Override
62
+ public boolean canCoalesce() {
63
+ // default behavior of com.facebook.react.uimanager.events.Event
64
+ return true;
65
+ }
66
+ }
@@ -0,0 +1,38 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import android.view.View;
4
+
5
+ import com.facebook.react.bridge.WritableArray;
6
+ import com.facebook.react.bridge.WritableMap;
7
+ import com.mapbox.rctmgl.events.constants.EventKeys;
8
+
9
+ /**
10
+ * Created by nickitaliano on 10/3/17.
11
+ */
12
+
13
+ public class AndroidCallbackEvent extends AbstractEvent {
14
+ private final WritableMap mPayload;
15
+
16
+ public AndroidCallbackEvent(View view, String callbackID, WritableMap payload) {
17
+ super(view, callbackID);
18
+ mPayload = payload;
19
+ }
20
+
21
+ @Override
22
+ public String getKey() {
23
+ return EventKeys.MAP_ANDROID_CALLBACK;
24
+ }
25
+
26
+ @Override
27
+ public WritableMap getPayload() {
28
+ return mPayload;
29
+ }
30
+
31
+ @Override
32
+ public boolean canCoalesce() {
33
+ // Make sure EventDispatcher never merges EventKeys.MAP_ANDROID_CALLBACK events.
34
+ // These events are couples to unique callbacks references (promises) on the JS side which
35
+ // each expect response with their corresponding callbackID
36
+ return false;
37
+ }
38
+ }
@@ -0,0 +1,45 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import android.util.Log;
4
+
5
+ import com.facebook.react.ReactApplication;
6
+ import com.facebook.react.bridge.JavaScriptModule;
7
+ import com.facebook.react.bridge.ReactApplicationContext;
8
+ import com.facebook.react.bridge.ReactContext;
9
+ import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
10
+ import com.facebook.react.uimanager.events.RCTEventEmitter;
11
+
12
+
13
+ public class EventEmitter {
14
+ public static final String LOG_TAG = "EventEmitter";
15
+
16
+
17
+ private static ReactContext getCurrentReactContext(ReactApplicationContext reactApplicationContext) {
18
+ if (reactApplicationContext.getApplicationContext() instanceof ReactApplication) {
19
+ ReactApplication reactApplication = ((ReactApplication) reactApplicationContext
20
+ .getApplicationContext());
21
+
22
+ return reactApplication
23
+ .getReactNativeHost()
24
+ .getReactInstanceManager()
25
+ .getCurrentReactContext();
26
+ } else {
27
+ Log.d(LOG_TAG, "getApplicationContext() application doesn't implement ReactApplication");
28
+ return reactApplicationContext;
29
+ }
30
+ }
31
+
32
+
33
+ public static RCTNativeAppEventEmitter getModuleEmitter(ReactApplicationContext reactApplicationContext) {
34
+ RCTNativeAppEventEmitter emitter = null;
35
+
36
+ try {
37
+ emitter = getCurrentReactContext(reactApplicationContext)
38
+ .getJSModule(RCTNativeAppEventEmitter.class);
39
+ } catch (NullPointerException e) {
40
+ Log.d(LOG_TAG, e.getLocalizedMessage());
41
+ }
42
+
43
+ return emitter;
44
+ }
45
+ }
@@ -0,0 +1,79 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import android.graphics.PointF;
4
+ import android.view.View;
5
+
6
+ import com.facebook.react.bridge.Arguments;
7
+ import com.facebook.react.bridge.WritableArray;
8
+ import com.facebook.react.bridge.WritableMap;
9
+ import com.mapbox.geojson.Feature;
10
+ import com.mapbox.mapboxsdk.geometry.LatLng;
11
+ import com.mapbox.rctmgl.components.styles.sources.RCTSource;
12
+ import com.mapbox.rctmgl.events.constants.EventKeys;
13
+ import com.mapbox.rctmgl.events.constants.EventTypes;
14
+ import com.mapbox.rctmgl.utils.ConvertUtils;
15
+ import com.mapbox.rctmgl.utils.GeoJSONUtils;
16
+
17
+ import java.util.List;
18
+
19
+ /**
20
+ * Created by nickitaliano on 11/7/17.
21
+ */
22
+
23
+ public class FeatureClickEvent extends AbstractEvent {
24
+ private String mEventKey;
25
+ private List<Feature> mFeatures;
26
+ private LatLng mLatLng;
27
+ private PointF mPoint;
28
+
29
+ public FeatureClickEvent(View view, String eventKey, String eventType, List<Feature> features, LatLng latLng, PointF point) {
30
+ super(view, eventType);
31
+ mFeatures = features;
32
+ mEventKey = eventKey;
33
+ mLatLng = latLng;
34
+ mPoint = point;
35
+ }
36
+
37
+ @Override
38
+ public String getKey() {
39
+ return mEventKey;
40
+ }
41
+
42
+ @Override
43
+ public WritableMap getPayload() {
44
+ WritableMap map = Arguments.createMap();
45
+ WritableArray features = Arguments.createArray();
46
+
47
+ for(Feature feature : mFeatures) {
48
+ features.pushMap(GeoJSONUtils.fromFeature(feature));
49
+ }
50
+ map.putArray("features", features);
51
+
52
+ WritableMap coordinates = Arguments.createMap();
53
+ coordinates.putDouble("latitude", mLatLng.getLatitude());
54
+ coordinates.putDouble("longitude", mLatLng.getLongitude());
55
+ map.putMap("coordinates", coordinates);
56
+
57
+ WritableMap point = Arguments.createMap();
58
+ point.putDouble("x", mPoint.x);
59
+ point.putDouble("y", mPoint.y);
60
+ map.putMap("point", point);
61
+
62
+ return map;
63
+ }
64
+
65
+ public static FeatureClickEvent makeShapeSourceEvent(View view, RCTSource.OnPressEvent event) {
66
+ return new FeatureClickEvent(view, EventKeys.SHAPE_SOURCE_LAYER_CLICK,
67
+ EventTypes.SHAPE_SOURCE_LAYER_CLICK, event.features, event.latLng, event.screenPoint);
68
+ }
69
+
70
+ public static FeatureClickEvent makeVectorSourceEvent(View view, RCTSource.OnPressEvent event) {
71
+ return new FeatureClickEvent(view, EventKeys.VECTOR_SOURCE_LAYER_CLICK,
72
+ EventTypes.VECTOR_SOURCE_LAYER_CLICK, event.features, event.latLng, event.screenPoint);
73
+ }
74
+
75
+ public static FeatureClickEvent makeRasterSourceEvent(View view, RCTSource.OnPressEvent event) {
76
+ return new FeatureClickEvent(view, EventKeys.RASTER_SOURCE_LAYER_CLICK,
77
+ EventTypes.RASTER_SOURCE_LAYER_CLICK, event.features, event.latLng, event.screenPoint);
78
+ }
79
+ }
@@ -0,0 +1,18 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import com.facebook.react.bridge.WritableMap;
4
+
5
+ /**
6
+ * Created by nickitaliano on 8/23/17.
7
+ */
8
+
9
+ public interface IEvent {
10
+ int getID();
11
+ String getKey();
12
+ String getType();
13
+ long getTimestamp();
14
+ boolean equals(IEvent event);
15
+ boolean canCoalesce();
16
+ WritableMap getPayload();
17
+ WritableMap toJSON();
18
+ }
@@ -0,0 +1,42 @@
1
+ package com.mapbox.rctmgl.events;
2
+
3
+ import com.facebook.react.bridge.WritableMap;
4
+ import com.facebook.react.bridge.WritableNativeMap;
5
+ import com.mapbox.rctmgl.events.constants.EventKeys;
6
+ import com.mapbox.rctmgl.events.constants.EventTypes;
7
+
8
+ import android.view.View;
9
+
10
+ public class ImageMissingEvent extends AbstractEvent {
11
+ private String mEventKey;
12
+ private String mImageKey;
13
+
14
+ public ImageMissingEvent(View view, String eventKey, String eventType, String imageKey) {
15
+ super(view, eventType);
16
+ mImageKey = imageKey;
17
+ mEventKey = eventKey;
18
+ }
19
+
20
+ @Override
21
+ public String getKey() {
22
+ return mEventKey;
23
+ }
24
+
25
+ @Override
26
+ public WritableMap getPayload() {
27
+ WritableMap imageMissingProperties = new WritableNativeMap();
28
+ imageMissingProperties.putString("imageKey", mImageKey);
29
+ return imageMissingProperties;
30
+
31
+ }
32
+
33
+ public static ImageMissingEvent makeImageMissingEvent(View view, String imageKey) {
34
+ return new ImageMissingEvent(view, EventKeys.IMAGES_MISSING,
35
+ EventTypes.IMAGES_MISSING, imageKey);
36
+ }
37
+
38
+ @Override
39
+ public boolean canCoalesce() {
40
+ return false;
41
+ }
42
+ }