@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,302 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.content.Context;
4
+ import android.graphics.Bitmap;
5
+ import android.graphics.drawable.BitmapDrawable;
6
+ import androidx.annotation.NonNull;
7
+ import androidx.annotation.Nullable;
8
+ import androidx.annotation.Size;
9
+ import androidx.core.content.res.ResourcesCompat;
10
+
11
+ import com.facebook.react.bridge.WritableMap;
12
+ import com.facebook.react.bridge.WritableNativeMap;
13
+ import com.mapbox.geojson.Feature;
14
+ import com.mapbox.geojson.FeatureCollection;
15
+ import com.mapbox.mapboxsdk.maps.MapboxMap;
16
+ import com.mapbox.mapboxsdk.maps.Style;
17
+ import com.mapbox.mapboxsdk.style.expressions.Expression;
18
+ import com.mapbox.mapboxsdk.style.sources.GeoJsonOptions;
19
+ import com.mapbox.mapboxsdk.style.sources.GeoJsonSource;
20
+ import com.mapbox.mapboxsdk.utils.BitmapUtils;
21
+ import com.mapbox.rctmgl.R;
22
+ import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
23
+ import com.mapbox.rctmgl.events.AndroidCallbackEvent;
24
+ import com.mapbox.rctmgl.events.FeatureClickEvent;
25
+ import com.mapbox.rctmgl.utils.DownloadMapImageTask;
26
+ import com.mapbox.rctmgl.utils.ImageEntry;
27
+
28
+ import java.net.URL;
29
+ import java.util.ArrayList;
30
+ import java.util.Collections;
31
+ import java.util.List;
32
+ import java.util.Map;
33
+
34
+ /**
35
+ * Created by nickitaliano on 9/19/17.
36
+ */
37
+
38
+ public class RCTMGLShapeSource extends RCTSource<GeoJsonSource> {
39
+ private URL mURL;
40
+ private RCTMGLShapeSourceManager mManager;
41
+
42
+ private String mShape;
43
+
44
+ private Boolean mCluster;
45
+ private Integer mClusterRadius;
46
+ private Integer mClusterMaxZoom;
47
+
48
+ private Integer mMaxZoom;
49
+ private Integer mBuffer;
50
+ private Double mTolerance;
51
+ private Boolean mLineMetrics;
52
+
53
+ private static Bitmap mImagePlaceholder;
54
+ private List<Map.Entry<String, ImageEntry>> mImages;
55
+ private List<Map.Entry<String, BitmapDrawable>> mNativeImages;
56
+
57
+ public RCTMGLShapeSource(Context context, RCTMGLShapeSourceManager manager) {
58
+ super(context);
59
+ mManager = manager;
60
+ }
61
+
62
+ @Override
63
+ public void addToMap(final RCTMGLMapView mapView) {
64
+ // Wait for style before adding the source to the map
65
+ mapView.getMapboxMap().getStyle(new Style.OnStyleLoaded() {
66
+ @Override
67
+ public void onStyleLoaded(@NonNull Style style) {
68
+ MapboxMap map = mapView.getMapboxMap();
69
+ RCTMGLShapeSource.super.addToMap(mapView);
70
+ }
71
+ });
72
+ }
73
+
74
+ @Override
75
+ public GeoJsonSource makeSource() {
76
+ GeoJsonOptions options = getOptions();
77
+
78
+ if (mShape != null) {
79
+ return new GeoJsonSource(mID, mShape, options);
80
+ }
81
+
82
+ return new GeoJsonSource(mID, mURL, options);
83
+ }
84
+
85
+ public void setURL(URL url) {
86
+ mURL = url;
87
+
88
+ if (mSource != null && mMapView != null && !mMapView.isDestroyed() ) {
89
+ mSource.setUrl(mURL);
90
+ }
91
+ }
92
+
93
+ public void setShape(String geoJSONStr) {
94
+ mShape = geoJSONStr;
95
+
96
+ if (mSource != null && mMapView != null && !mMapView.isDestroyed() ) {
97
+ mSource.setGeoJson(mShape);
98
+ }
99
+ }
100
+
101
+ public void setCluster(boolean cluster) {
102
+ mCluster = cluster;
103
+ }
104
+
105
+ public void setClusterRadius(int clusterRadius) {
106
+ mClusterRadius = clusterRadius;
107
+ }
108
+
109
+ public void setClusterMaxZoom(int clusterMaxZoom) {
110
+ mClusterMaxZoom = clusterMaxZoom;
111
+ }
112
+
113
+ public void setMaxZoom(int maxZoom) {
114
+ mMaxZoom = maxZoom;
115
+ }
116
+
117
+ public void setBuffer(int buffer) {
118
+ mBuffer = buffer;
119
+ }
120
+
121
+ public void setTolerance(double tolerance) {
122
+ mTolerance = tolerance;
123
+ }
124
+
125
+ public void setLineMetrics(boolean lineMetrics) {
126
+ mLineMetrics = lineMetrics;
127
+ }
128
+
129
+ public void onPress(OnPressEvent event) {
130
+ mManager.handleEvent(FeatureClickEvent.makeShapeSourceEvent(this, event));
131
+ }
132
+
133
+ private GeoJsonOptions getOptions() {
134
+ GeoJsonOptions options = new GeoJsonOptions();
135
+
136
+ if (mCluster != null) {
137
+ options.withCluster(mCluster);
138
+ }
139
+
140
+ if (mClusterRadius != null) {
141
+ options.withClusterRadius(mClusterRadius);
142
+ }
143
+
144
+ if (mClusterMaxZoom != null) {
145
+ options.withClusterMaxZoom(mClusterMaxZoom);
146
+ }
147
+
148
+ if (mMaxZoom != null) {
149
+ options.withMaxZoom(mMaxZoom);
150
+ }
151
+
152
+ if (mBuffer != null) {
153
+ options.withBuffer(mBuffer);
154
+ }
155
+
156
+ if (mTolerance != null) {
157
+ options.withTolerance(mTolerance.floatValue());
158
+ }
159
+
160
+ if (mLineMetrics != null) {
161
+ options.withLineMetrics(mLineMetrics);
162
+ }
163
+
164
+ return options;
165
+ }
166
+
167
+ public void querySourceFeatures(String callbackID,
168
+ @Nullable Expression filter) {
169
+ if (mSource == null) {
170
+ WritableMap payload = new WritableNativeMap();
171
+ payload.putString("error", "source is not yet loaded");
172
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
173
+ mManager.handleEvent(event);
174
+ return;
175
+ }
176
+ List<Feature> features = mSource.querySourceFeatures(filter);
177
+ WritableMap payload = new WritableNativeMap();
178
+ payload.putString("data", FeatureCollection.fromFeatures(features).toJson());
179
+
180
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
181
+ mManager.handleEvent(event);
182
+ }
183
+
184
+ public void getClusterExpansionZoom(String callbackID, String featureJSON) {
185
+ if (mSource == null) {
186
+ WritableMap payload = new WritableNativeMap();
187
+ payload.putString("error", "source is not yet loaded");
188
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
189
+ mManager.handleEvent(event);
190
+ return;
191
+ }
192
+ Feature feature = Feature.fromJson(featureJSON);
193
+
194
+ int zoom = mSource.getClusterExpansionZoom(feature);
195
+
196
+ WritableMap payload = new WritableNativeMap();
197
+ payload.putInt("data", zoom);
198
+
199
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
200
+ mManager.handleEvent(event);
201
+ }
202
+
203
+ public void getClusterLeaves(String callbackID, String featureJSON, int number, int offset) {
204
+ if (mSource == null) {
205
+ WritableMap payload = new WritableNativeMap();
206
+ payload.putString("error", "source is not yet loaded");
207
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
208
+ mManager.handleEvent(event);
209
+ return;
210
+ }
211
+ Feature clusterFeature = Feature.fromJson(featureJSON);
212
+ FeatureCollection leaves = mSource.getClusterLeaves(clusterFeature, number, offset);
213
+ WritableMap payload = new WritableNativeMap();
214
+ payload.putString("data", leaves.toJson());
215
+
216
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
217
+ mManager.handleEvent(event);
218
+ }
219
+
220
+ public void getClusterChildren(String callbackID, String featureJSON) {
221
+ if (mSource == null) {
222
+ WritableMap payload = new WritableNativeMap();
223
+ payload.putString("error", "source is not yet loaded");
224
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
225
+ mManager.handleEvent(event);
226
+ return;
227
+ }
228
+ Feature clusterFeature = Feature.fromJson(featureJSON);
229
+ FeatureCollection leaves = mSource.getClusterChildren(clusterFeature);
230
+ WritableMap payload = new WritableNativeMap();
231
+ payload.putString("data", leaves.toJson());
232
+
233
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
234
+ mManager.handleEvent(event);
235
+ }
236
+
237
+ // Deprecated. Will be removed in 9+ ver.
238
+ public void getClusterExpansionZoomById(String callbackID, int clusterId) {
239
+ if (mSource == null) {
240
+ WritableMap payload = new WritableNativeMap();
241
+ payload.putString("error", "source is not yet loaded");
242
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
243
+ mManager.handleEvent(event);
244
+ return;
245
+ }
246
+ List<Feature> features = mSource.querySourceFeatures(Expression.eq(Expression.id(), clusterId));
247
+ int zoom = -1;
248
+ if (features.size() > 0) {
249
+ zoom = mSource.getClusterExpansionZoom(features.get(0));
250
+ }
251
+
252
+ if (zoom == -1) {
253
+ WritableMap payload = new WritableNativeMap();
254
+ payload.putString("error", "Could not get zoom for cluster id " + clusterId);
255
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
256
+ mManager.handleEvent(event);
257
+ return;
258
+ }
259
+
260
+ WritableMap payload = new WritableNativeMap();
261
+ payload.putInt("data", zoom);
262
+
263
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
264
+ mManager.handleEvent(event);
265
+ }
266
+
267
+ // Deprecated. Will be removed in 9+ ver.
268
+ public void getClusterLeavesById(String callbackID, int clusterId, int number, int offset) {
269
+ if (mSource == null) {
270
+ WritableMap payload = new WritableNativeMap();
271
+ payload.putString("error", "source is not yet loaded");
272
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
273
+ mManager.handleEvent(event);
274
+ return;
275
+ }
276
+ Feature clusterFeature = mSource.querySourceFeatures(Expression.eq(Expression.get("cluster_id"), clusterId)).get(0);
277
+ FeatureCollection leaves = mSource.getClusterLeaves(clusterFeature, number, offset);
278
+ WritableMap payload = new WritableNativeMap();
279
+ payload.putString("data", leaves.toJson());
280
+
281
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
282
+ mManager.handleEvent(event);
283
+ }
284
+
285
+ // Deprecated. Will be removed in 9+ ver.
286
+ public void getClusterChildrenById(String callbackID, int clusterId) {
287
+ if (mSource == null) {
288
+ WritableMap payload = new WritableNativeMap();
289
+ payload.putString("error", "source is not yet loaded");
290
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
291
+ mManager.handleEvent(event);
292
+ return;
293
+ }
294
+ Feature clusterFeature = mSource.querySourceFeatures(Expression.eq(Expression.get("cluster_id"), clusterId)).get(0);
295
+ FeatureCollection leaves = mSource.getClusterChildren(clusterFeature);
296
+ WritableMap payload = new WritableNativeMap();
297
+ payload.putString("data", leaves.toJson());
298
+
299
+ AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
300
+ mManager.handleEvent(event);
301
+ }
302
+ }
@@ -0,0 +1,227 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.content.Context;
4
+ import android.graphics.drawable.BitmapDrawable;
5
+ import android.graphics.drawable.Drawable;
6
+ import android.media.Image;
7
+ import android.util.Log;
8
+ import android.view.View;
9
+
10
+ import androidx.annotation.Nullable;
11
+
12
+ import com.facebook.react.bridge.ReactApplicationContext;
13
+ import com.facebook.react.bridge.ReadableArray;
14
+ import com.facebook.react.bridge.ReadableMap;
15
+ import com.facebook.react.bridge.ReadableMapKeySetIterator;
16
+ import com.facebook.react.bridge.ReadableType;
17
+ import com.facebook.react.common.MapBuilder;
18
+ import com.facebook.react.uimanager.ThemedReactContext;
19
+ import com.facebook.react.uimanager.ViewGroupManager;
20
+ import com.facebook.react.uimanager.annotations.ReactProp;
21
+ import com.mapbox.rctmgl.components.AbstractEventEmitter;
22
+ import com.mapbox.rctmgl.components.annotation.RCTMGLCallout;
23
+ import com.mapbox.rctmgl.components.mapview.RCTMGLMapView;
24
+ import com.mapbox.rctmgl.components.styles.layers.RCTLayer;
25
+ import com.mapbox.rctmgl.events.constants.EventKeys;
26
+ import com.mapbox.rctmgl.utils.ExpressionParser;
27
+ import com.mapbox.rctmgl.utils.ImageEntry;
28
+ import com.mapbox.rctmgl.utils.ResourceUtils;
29
+
30
+ import java.net.MalformedURLException;
31
+ import java.net.URL;
32
+ import java.util.AbstractMap;
33
+ import java.util.ArrayList;
34
+ import java.util.List;
35
+ import java.util.Map;
36
+
37
+ /**
38
+ * Created by nickitaliano on 9/19/17.
39
+ */
40
+
41
+ public class RCTMGLShapeSourceManager extends AbstractEventEmitter<RCTMGLShapeSource> {
42
+ public static final String LOG_TAG = "RCTMGLShapeSourceManager";
43
+ public static final String REACT_CLASS = "RCTMGLShapeSource";
44
+
45
+ private ReactApplicationContext mContext;
46
+
47
+ public RCTMGLShapeSourceManager(ReactApplicationContext context) {
48
+ super(context);
49
+ mContext = context;
50
+ }
51
+
52
+ @Override
53
+ public String getName() {
54
+ return REACT_CLASS;
55
+ }
56
+
57
+ @Override
58
+ protected RCTMGLShapeSource createViewInstance(ThemedReactContext reactContext) {
59
+ return new RCTMGLShapeSource(reactContext, this);
60
+ }
61
+
62
+ @Override
63
+ public View getChildAt(RCTMGLShapeSource source, int childPosition) {
64
+ return source.getLayerAt(childPosition);
65
+ }
66
+
67
+ @Override
68
+ public int getChildCount(RCTMGLShapeSource source) {
69
+ return source.getLayerCount();
70
+ }
71
+
72
+ @Override
73
+ public void addView(RCTMGLShapeSource source, View childView, int childPosition) {
74
+ source.addLayer(childView, getChildCount(source));
75
+ }
76
+
77
+ @Override
78
+ public void removeViewAt(RCTMGLShapeSource source, int childPosition) {
79
+ source.removeLayer(childPosition);
80
+ }
81
+
82
+ @ReactProp(name = "id")
83
+ public void setId(RCTMGLShapeSource source, String id) {
84
+ source.setID(id);
85
+ }
86
+
87
+ @ReactProp(name = "url")
88
+ public void setURL(RCTMGLShapeSource source, String urlStr) {
89
+ try {
90
+ source.setURL(new URL(urlStr));
91
+ } catch (MalformedURLException e) {
92
+ Log.w(LOG_TAG, e.getLocalizedMessage());
93
+ }
94
+ }
95
+
96
+ @ReactProp(name = "shape")
97
+ public void setGeometry(RCTMGLShapeSource source, String geoJSONStr) {
98
+ source.setShape(geoJSONStr);
99
+ }
100
+
101
+ @ReactProp(name = "cluster")
102
+ public void setCluster(RCTMGLShapeSource source, int cluster) {
103
+ source.setCluster(cluster == 1);
104
+ }
105
+
106
+ @ReactProp(name = "clusterRadius")
107
+ public void setClusterRadius(RCTMGLShapeSource source, int radius) {
108
+ source.setClusterRadius(radius);
109
+ }
110
+
111
+ @ReactProp(name = "clusterMaxZoomLevel")
112
+ public void setClusterMaxZoomLevel(RCTMGLShapeSource source, int clusterMaxZoom) {
113
+ source.setClusterMaxZoom(clusterMaxZoom);
114
+ }
115
+
116
+ @ReactProp(name = "maxZoomLevel")
117
+ public void setMaxZoomLevel(RCTMGLShapeSource source, int maxZoom) {
118
+ source.setMaxZoom(maxZoom);
119
+ }
120
+
121
+ @ReactProp(name = "buffer")
122
+ public void setBuffer(RCTMGLShapeSource source, int buffer) {
123
+ source.setBuffer(buffer);
124
+ }
125
+
126
+ @ReactProp(name = "tolerance")
127
+ public void setTolerance(RCTMGLShapeSource source, double tolerance) {
128
+ source.setTolerance(tolerance);
129
+ }
130
+
131
+ @ReactProp(name = "lineMetrics")
132
+ public void setLineMetrics(RCTMGLShapeSource source, boolean lineMetrics) {
133
+ source.setLineMetrics(lineMetrics);
134
+ }
135
+
136
+ @ReactProp(name = "hasPressListener")
137
+ public void setHasPressListener(RCTMGLShapeSource source, boolean hasPressListener) {
138
+ source.setHasPressListener(hasPressListener);
139
+ }
140
+
141
+ @ReactProp(name="hitbox")
142
+ public void setHitbox(RCTMGLShapeSource source, ReadableMap map) {
143
+ source.setHitbox(map);
144
+ }
145
+
146
+ @Override
147
+ public Map<String, String> customEvents() {
148
+ return MapBuilder.<String, String>builder()
149
+ .put(EventKeys.SHAPE_SOURCE_LAYER_CLICK, "onMapboxShapeSourcePress")
150
+ .put(EventKeys.MAP_ANDROID_CALLBACK, "onAndroidCallback")
151
+ .build();
152
+ }
153
+
154
+ //region React Methods
155
+ public static final int METHOD_FEATURES = 103;
156
+ public static final int METHOD_GET_CLUSTER_EXPANSION_ZOOM = 104;
157
+ public static final int METHOD_GET_CLUSTER_LEAVES = 105;
158
+ public static final int METHOD_GET_CLUSTER_CHILDREN = 106;
159
+
160
+ // Deprecated. Will be removed in 9+ ver.
161
+ public static final int METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID = 107;
162
+ public static final int METHOD_GET_CLUSTER_LEAVES_BY_ID = 108;
163
+ public static final int METHOD_GET_CLUSTER_CHILDREN_BY_ID = 109;
164
+
165
+ @Nullable
166
+ @Override
167
+ public Map<String, Integer> getCommandsMap() {
168
+ return MapBuilder.<String, Integer>builder()
169
+ .put("features", METHOD_FEATURES)
170
+ .put("getClusterExpansionZoom", METHOD_GET_CLUSTER_EXPANSION_ZOOM)
171
+ .put("getClusterLeaves", METHOD_GET_CLUSTER_LEAVES)
172
+ .put("getClusterChildren", METHOD_GET_CLUSTER_CHILDREN)
173
+
174
+ // Deprecated. Will be removed in 9+ ver.
175
+ .put("getClusterExpansionZoomById", METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID)
176
+ .put("getClusterLeavesById", METHOD_GET_CLUSTER_LEAVES_BY_ID)
177
+ .put("getClusterChildrenById", METHOD_GET_CLUSTER_CHILDREN_BY_ID)
178
+
179
+ .build();
180
+ }
181
+
182
+ @Override
183
+ public void receiveCommand(RCTMGLShapeSource source, int commandID, @Nullable ReadableArray args) {
184
+ switch (commandID) {
185
+ case METHOD_FEATURES:
186
+ source.querySourceFeatures(
187
+ args.getString(0),
188
+ ExpressionParser.from(args.getArray(1))
189
+ );
190
+ break;
191
+ case METHOD_GET_CLUSTER_EXPANSION_ZOOM:
192
+ source.getClusterExpansionZoom(args.getString(0), args.getString(1));
193
+ break;
194
+ case METHOD_GET_CLUSTER_LEAVES:
195
+ source.getClusterLeaves(
196
+ args.getString(0),
197
+ args.getString(1),
198
+ args.getInt(2),
199
+ args.getInt((3))
200
+ );
201
+ break;
202
+ case METHOD_GET_CLUSTER_CHILDREN:
203
+ source.getClusterChildren(
204
+ args.getString(0),
205
+ args.getString(1)
206
+ );
207
+ break;
208
+ case METHOD_GET_CLUSTER_EXPANSION_ZOOM_BY_ID:
209
+ source.getClusterExpansionZoomById(args.getString(0), args.getInt(1));
210
+ break;
211
+ case METHOD_GET_CLUSTER_LEAVES_BY_ID:
212
+ source.getClusterLeavesById(
213
+ args.getString(0),
214
+ args.getInt(1),
215
+ args.getInt(2),
216
+ args.getInt((3))
217
+ );
218
+ break;
219
+ case METHOD_GET_CLUSTER_CHILDREN_BY_ID:
220
+ source.getClusterChildrenById(
221
+ args.getString(0),
222
+ args.getInt(1)
223
+ );
224
+ break;
225
+ }
226
+ }
227
+ }
@@ -0,0 +1,97 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.content.Context;
4
+
5
+ import com.mapbox.mapboxsdk.style.sources.Source;
6
+ import com.mapbox.mapboxsdk.style.sources.TileSet;
7
+
8
+ import java.util.Collection;
9
+
10
+ @SuppressWarnings("unused")
11
+ public abstract class RCTMGLTileSource<T extends Source> extends RCTSource<T> {
12
+ static final String TILE_SPEC_VERSION = "2.1.0";
13
+
14
+ private String mURL;
15
+ private Collection<String> mTileUrlTemplates;
16
+ private String mAttribution;
17
+
18
+ private Integer mMinZoomLevel;
19
+ private Integer mMaxZoomLevel;
20
+
21
+ private boolean mIsTmsSource;
22
+
23
+ public RCTMGLTileSource(Context context) {
24
+ super(context);
25
+ }
26
+
27
+ public String getURL() {
28
+ return mURL;
29
+ }
30
+
31
+ public void setURL(String mURL) {
32
+ this.mURL = mURL;
33
+ }
34
+
35
+ public String getAttribution() {
36
+ return mAttribution;
37
+ }
38
+
39
+ public void setAttribution(String mAttribution) {
40
+ this.mAttribution = mAttribution;
41
+ }
42
+
43
+ public Integer getMinZoomLevel() {
44
+ return mMinZoomLevel;
45
+ }
46
+
47
+ public void setMinZoomLevel(Integer mMinZoomLevel) {
48
+ this.mMinZoomLevel = mMinZoomLevel;
49
+ }
50
+
51
+ public Integer getMaxZoomLevel() {
52
+ return mMaxZoomLevel;
53
+ }
54
+
55
+ public void setMaxZoomLevel(Integer mMaxZoomLevel) {
56
+ this.mMaxZoomLevel = mMaxZoomLevel;
57
+ }
58
+
59
+ public boolean getTMS() {
60
+ return mIsTmsSource;
61
+ }
62
+
63
+ public void setTMS(boolean mIsTmsSource) {
64
+ this.mIsTmsSource = mIsTmsSource;
65
+ }
66
+
67
+ public Collection<String> getTileUrlTemplates() {
68
+ return mTileUrlTemplates;
69
+ }
70
+
71
+ public void setTileUrlTemplates(Collection<String> tileUrlTemplates) {
72
+ this.mTileUrlTemplates = tileUrlTemplates;
73
+ }
74
+
75
+ public TileSet buildTileset() {
76
+ String[] tileUrlTemplates = mTileUrlTemplates.toArray(new String[mTileUrlTemplates.size()]);
77
+ TileSet tileSet = new TileSet(TILE_SPEC_VERSION, tileUrlTemplates);
78
+
79
+ if (mMinZoomLevel != null) {
80
+ tileSet.setMinZoom(mMinZoomLevel.floatValue());
81
+ }
82
+
83
+ if (mMaxZoomLevel != null) {
84
+ tileSet.setMaxZoom(mMaxZoomLevel.floatValue());
85
+ }
86
+
87
+ if (mIsTmsSource) {
88
+ tileSet.setScheme("tms");
89
+ }
90
+
91
+ if (mAttribution != null) {
92
+ tileSet.setAttribution(mAttribution);
93
+ }
94
+
95
+ return tileSet;
96
+ }
97
+ }
@@ -0,0 +1,80 @@
1
+ package com.mapbox.rctmgl.components.styles.sources;
2
+
3
+ import android.view.View;
4
+
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.bridge.ReadableArray;
7
+ import com.facebook.react.bridge.ReadableType;
8
+ import com.facebook.react.uimanager.annotations.ReactProp;
9
+ import com.mapbox.rctmgl.components.AbstractEventEmitter;
10
+
11
+ import java.util.ArrayList;
12
+ import java.util.List;
13
+
14
+ public abstract class RCTMGLTileSourceManager<T extends RCTMGLTileSource> extends AbstractEventEmitter<T> {
15
+
16
+ RCTMGLTileSourceManager(ReactApplicationContext reactApplicationContext) {
17
+ super(reactApplicationContext);
18
+ }
19
+
20
+ @Override
21
+ public View getChildAt(T source, int childPosition) {
22
+ return source.getLayerAt(childPosition);
23
+ }
24
+
25
+ @Override
26
+ public int getChildCount(T source) {
27
+ return source.getLayerCount();
28
+ }
29
+
30
+ @Override
31
+ public void addView(T source, View childView, int childPosition) {
32
+ source.addLayer(childView, childPosition);
33
+ }
34
+
35
+ @Override
36
+ public void removeViewAt(T source, int childPosition) {
37
+ source.removeLayer(childPosition);
38
+ }
39
+
40
+ @ReactProp(name="id")
41
+ public void setID(T source, String id) {
42
+ source.setID(id);
43
+ }
44
+
45
+ @ReactProp(name="url")
46
+ public void setURL(T source, String url) {
47
+ source.setURL(url);
48
+ }
49
+
50
+ @ReactProp(name="tileUrlTemplates")
51
+ public void setTileUrlTemplates(T source, ReadableArray tileUrlTemplates) {
52
+ List<String> urls = new ArrayList<>();
53
+ for (int i = 0; i < tileUrlTemplates.size(); i++) {
54
+ if (tileUrlTemplates.getType(0) == ReadableType.String) {
55
+ urls.add(tileUrlTemplates.getString(i));
56
+ }
57
+ }
58
+ source.setTileUrlTemplates(urls);
59
+ }
60
+
61
+ @ReactProp(name="attribution")
62
+ public void setAttribution(T source, String attribution) {
63
+ source.setAttribution(attribution);
64
+ }
65
+
66
+ @ReactProp(name="minZoomLevel")
67
+ public void setMinZoomLevel(T source, int minZoomLevel) {
68
+ source.setMinZoomLevel(minZoomLevel);
69
+ }
70
+
71
+ @ReactProp(name="maxZoomLevel")
72
+ public void setMaxZoomLevel(T source, int maxZoomLevel) {
73
+ source.setMaxZoomLevel(maxZoomLevel);
74
+ }
75
+
76
+ @ReactProp(name="tms")
77
+ public void setTMS(T source, boolean tms) {
78
+ source.setTMS(tms);
79
+ }
80
+ }