@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,180 @@
1
+ //
2
+ // RCTMGLShapeSource.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/19/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLShapeSource.h"
10
+ #import "RCTMGLUtils.h"
11
+ #import "RCTMGLMapView.h"
12
+
13
+ @implementation RCTMGLShapeSource
14
+
15
+ static UIImage * _placeHolderImage;
16
+
17
+ - (void)setUrl: (NSString*) url
18
+ {
19
+ _url = url;
20
+ if (self.source != nil) {
21
+ MGLShapeSource *source = (MGLShapeSource *)self.source;
22
+ [source setURL: url == nil ? nil : [NSURL URLWithString:url]];
23
+ }
24
+ }
25
+
26
+ - (void)setShape:(NSString *)shape
27
+ {
28
+ _shape = shape;
29
+
30
+ if (self.source != nil) {
31
+ MGLShapeSource *source = (MGLShapeSource *)self.source;
32
+ [source setShape: shape == nil ? nil : [RCTMGLUtils shapeFromGeoJSON:_shape]];
33
+ }
34
+ }
35
+
36
+ - (void)addToMap
37
+ {
38
+ if (self.map.style == nil) {
39
+ return;
40
+ }
41
+ [super addToMap];
42
+ }
43
+
44
+ - (void)removeFromMap
45
+ {
46
+ if (self.map.style == nil) {
47
+ return;
48
+ }
49
+
50
+ [super removeFromMap];
51
+ }
52
+
53
+ - (nullable MGLSource*)makeSource
54
+ {
55
+ NSDictionary<MGLShapeSourceOption, id> *options = [self _getOptions];
56
+
57
+ if (_shape != nil) {
58
+ MGLShape *shape = [RCTMGLUtils shapeFromGeoJSON:_shape];
59
+ return [[MGLShapeSource alloc] initWithIdentifier:self.id shape:shape options:options];
60
+ }
61
+
62
+ if (_url != nil) {
63
+ NSURL *url = [[NSURL alloc] initWithString:_url];
64
+ return [[MGLShapeSource alloc] initWithIdentifier:self.id URL:url options:options];
65
+ }
66
+ return nil;
67
+ }
68
+
69
+ - (NSDictionary<MGLShapeSourceOption, id>*)_getOptions
70
+ {
71
+ NSMutableDictionary<MGLShapeSourceOption, id> *options = [[NSMutableDictionary alloc] init];
72
+
73
+ if (_cluster != nil) {
74
+ options[MGLShapeSourceOptionClustered] = [NSNumber numberWithBool:[_cluster intValue] == 1];
75
+ }
76
+
77
+ if (_clusterRadius != nil) {
78
+ options[MGLShapeSourceOptionClusterRadius] = _clusterRadius;
79
+ }
80
+
81
+ if (_clusterMaxZoomLevel != nil) {
82
+ options[MGLShapeSourceOptionMaximumZoomLevelForClustering] = _clusterMaxZoomLevel;
83
+ }
84
+
85
+ if (_maxZoomLevel != nil) {
86
+ options[MGLShapeSourceOptionMaximumZoomLevel] = _maxZoomLevel;
87
+ }
88
+
89
+ if (_buffer != nil) {
90
+ options[MGLShapeSourceOptionBuffer] = _buffer;
91
+ }
92
+
93
+ if (_tolerance != nil) {
94
+ options[MGLShapeSourceOptionSimplificationTolerance] = _tolerance;
95
+ }
96
+
97
+ if (_lineMetrics != nil) {
98
+ options[MGLShapeSourceOptionLineDistanceMetrics] = _lineMetrics;
99
+ }
100
+
101
+ return options;
102
+ }
103
+
104
+ - (nonnull NSArray<id <MGLFeature>> *)featuresMatchingPredicate:(nullable NSPredicate *)predicate
105
+ {
106
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
107
+
108
+ return [shapeSource featuresMatchingPredicate:predicate];
109
+ }
110
+
111
+ - (double)getClusterExpansionZoom:(nonnull NSString *)featureJSON
112
+ {
113
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
114
+
115
+ MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
116
+
117
+ return [shapeSource zoomLevelForExpandingCluster:(MGLPointFeatureCluster *)feature];
118
+ }
119
+
120
+ - (nonnull NSArray<id <MGLFeature>> *)getClusterLeaves:(nonnull NSString *)featureJSON
121
+ number:(NSUInteger)number
122
+ offset:(NSUInteger)offset
123
+ {
124
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
125
+
126
+ MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
127
+
128
+ MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)feature;
129
+ return [shapeSource leavesOfCluster:cluster offset:offset limit:number];
130
+ }
131
+
132
+ - (nonnull NSArray<id <MGLFeature>> *)getClusterChildren:(nonnull NSString *)featureJSON
133
+ {
134
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
135
+
136
+ MGLPointFeature *feature = (MGLPointFeature*)[RCTMGLUtils shapeFromGeoJSON:featureJSON];
137
+
138
+ MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)feature;
139
+ return [shapeSource childrenOfCluster:cluster];
140
+ }
141
+
142
+
143
+ // Deprecated. Will be removed in 9+ ver.
144
+ - (double)getClusterExpansionZoomById:(nonnull NSNumber *)clusterId
145
+ {
146
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
147
+ NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate: [NSPredicate predicateWithFormat:@"%K = %i", @"cluster_id", clusterId.intValue]];
148
+ if (features.count == 0) {
149
+ return -1;
150
+ }
151
+ return [shapeSource zoomLevelForExpandingCluster:(MGLPointFeatureCluster *)features[0]];
152
+ }
153
+
154
+ // Deprecated. Will be removed in 9+ ver.
155
+ - (nonnull NSArray<id <MGLFeature>> *)getClusterLeavesById:(nonnull NSNumber *)clusterId
156
+ number:(NSUInteger)number
157
+ offset:(NSUInteger)offset
158
+ {
159
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
160
+
161
+ NSPredicate* predicate = [NSPredicate predicateWithFormat:@"cluster_id == %@", clusterId];
162
+ NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate:predicate];
163
+
164
+ MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)features[0];
165
+ return [shapeSource leavesOfCluster:cluster offset:offset limit:number];
166
+ }
167
+
168
+ // Deprecated. Will be removed in 9+ ver.
169
+ - (nonnull NSArray<id <MGLFeature>> *)getClusterChildrenById:(nonnull NSNumber *)clusterId
170
+ {
171
+ MGLShapeSource *shapeSource = (MGLShapeSource *)self.source;
172
+
173
+ NSPredicate* predicate = [NSPredicate predicateWithFormat:@"cluster_id == %@", clusterId];
174
+ NSArray<id<MGLFeature>> *features = [shapeSource featuresMatchingPredicate:predicate];
175
+
176
+ MGLPointFeatureCluster * cluster = (MGLPointFeatureCluster *)features[0];
177
+ return [shapeSource childrenOfCluster:cluster];
178
+ }
179
+
180
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // RCTMGLShapeSourceManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/19/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+ #import <React/RCTBridgeModule.h>
11
+
12
+ @interface RCTMGLShapeSourceManager : ViewManager<RCTBridgeModule>
13
+
14
+ @end
@@ -0,0 +1,205 @@
1
+ //
2
+ // RCTMGLShapeSourceManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/19/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+ #import <React/RCTUIManager.h>
9
+
10
+ #import "RCTMGLShapeSourceManager.h"
11
+ #import "RCTMGLShapeSource.h"
12
+
13
+ #import "FilterParser.h"
14
+
15
+ @implementation RCTMGLShapeSourceManager
16
+
17
+ RCT_EXPORT_MODULE(RCTMGLShapeSource)
18
+
19
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString)
20
+ RCT_EXPORT_VIEW_PROPERTY(url, NSString)
21
+ RCT_EXPORT_VIEW_PROPERTY(shape, NSString)
22
+
23
+ RCT_EXPORT_VIEW_PROPERTY(cluster, NSNumber)
24
+ RCT_EXPORT_VIEW_PROPERTY(clusterRadius, NSNumber)
25
+ RCT_EXPORT_VIEW_PROPERTY(clusterMaxZoomLevel, NSNumber)
26
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber)
27
+ RCT_EXPORT_VIEW_PROPERTY(buffer, NSNumber)
28
+ RCT_EXPORT_VIEW_PROPERTY(tolerance, NSNumber)
29
+ RCT_EXPORT_VIEW_PROPERTY(lineMetrics, NSNumber)
30
+ RCT_EXPORT_VIEW_PROPERTY(images, NSDictionary)
31
+ RCT_EXPORT_VIEW_PROPERTY(nativeImages, NSArray)
32
+ RCT_EXPORT_VIEW_PROPERTY(hasPressListener, BOOL)
33
+ RCT_EXPORT_VIEW_PROPERTY(hitbox, NSDictionary)
34
+ RCT_REMAP_VIEW_PROPERTY(onMapboxShapeSourcePress, onPress, RCTBubblingEventBlock)
35
+
36
+ - (UIView*)view
37
+ {
38
+ RCTMGLShapeSource *source = [RCTMGLShapeSource new];
39
+ source.bridge = self.bridge;
40
+ return source;
41
+ }
42
+
43
+ RCT_EXPORT_METHOD(features:(nonnull NSNumber*)reactTag
44
+ withFilter:(NSArray *)filter
45
+ resolver:(RCTPromiseResolveBlock)resolve
46
+ rejecter:(RCTPromiseRejectBlock)reject)
47
+ {
48
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
49
+ RCTMGLShapeSource* shapeSource = viewRegistry[reactTag];
50
+
51
+ if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
52
+ RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
53
+ return;
54
+ }
55
+
56
+ NSPredicate* predicate = [FilterParser parse:filter];
57
+ NSArray<id<MGLFeature>> *shapes = [shapeSource featuresMatchingPredicate: predicate];
58
+
59
+ NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
60
+ for (int i = 0; i < shapes.count; i++) {
61
+ [features addObject:shapes[i].geoJSONDictionary];
62
+ }
63
+
64
+ resolve(@{
65
+ @"data": @{ @"type": @"FeatureCollection", @"features": features }
66
+ });
67
+ }];
68
+ }
69
+
70
+ RCT_EXPORT_METHOD(getClusterExpansionZoom:(nonnull NSNumber*)reactTag
71
+ featureJSON:(nonnull NSString*)featureJSON
72
+ resolver:(RCTPromiseResolveBlock)resolve
73
+ rejecter:(RCTPromiseRejectBlock)reject)
74
+ {
75
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
76
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
77
+
78
+ if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
79
+ RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
80
+ return;
81
+ }
82
+
83
+ double zoom = [shapeSource getClusterExpansionZoom: featureJSON];
84
+ if (zoom == -1) {
85
+ reject(@"zoom_error", [NSString stringWithFormat:@"Could not get zoom for cluster %@", featureJSON], nil);
86
+ return;
87
+ }
88
+ resolve(@{@"data":@(zoom)});
89
+ }];
90
+ }
91
+
92
+
93
+ RCT_EXPORT_METHOD(getClusterLeaves:(nonnull NSNumber*)reactTag
94
+ featureJSON:(nonnull NSString*)featureJSON
95
+ number:(NSUInteger) number
96
+ offset:(NSUInteger) offset
97
+ resolver:(RCTPromiseResolveBlock)resolve
98
+ rejecter:(RCTPromiseRejectBlock)reject)
99
+ {
100
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
101
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
102
+
103
+ NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterLeaves:featureJSON number:number offset:offset];
104
+
105
+ NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
106
+ for (int i = 0; i < shapes.count; i++) {
107
+ [features addObject:shapes[i].geoJSONDictionary];
108
+ }
109
+
110
+ resolve(@{
111
+ @"data": @{ @"type": @"FeatureCollection", @"features": features }
112
+ });
113
+ }];
114
+ }
115
+
116
+ RCT_EXPORT_METHOD(getClusterChildren:(nonnull NSNumber*)reactTag
117
+ featureJSON:(nonnull NSString*)featureJSON
118
+ resolver:(RCTPromiseResolveBlock)resolve
119
+ rejecter:(RCTPromiseRejectBlock)reject)
120
+ {
121
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
122
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
123
+
124
+ NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterChildren: featureJSON];
125
+
126
+ NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
127
+ for (int i = 0; i < shapes.count; i++) {
128
+ [features addObject:shapes[i].geoJSONDictionary];
129
+ }
130
+
131
+ resolve(@{
132
+ @"data": @{ @"type": @"FeatureCollection", @"features": features }
133
+ });
134
+ }];
135
+ }
136
+
137
+ // Deprecated. Will be removed in 9+ ver.
138
+ RCT_EXPORT_METHOD(getClusterExpansionZoomById:(nonnull NSNumber*)reactTag
139
+ clusterId:(nonnull NSNumber*)clusterId
140
+ resolver:(RCTPromiseResolveBlock)resolve
141
+ rejecter:(RCTPromiseRejectBlock)reject)
142
+ {
143
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
144
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
145
+
146
+ if (![shapeSource isKindOfClass:[RCTMGLShapeSource class]]) {
147
+ RCTLogError(@"Invalid react tag, could not find RCTMGLMapView");
148
+ return;
149
+ }
150
+
151
+ double zoom = [shapeSource getClusterExpansionZoomById:clusterId];
152
+ if (zoom == -1) {
153
+ reject(@"zoom_error", [NSString stringWithFormat:@"Could not get zoom for cluster id %@", clusterId], nil);
154
+ return;
155
+ }
156
+ resolve(@{@"data":@(zoom)});
157
+ }];
158
+ }
159
+
160
+ // Deprecated. Will be removed in 9+ ver.
161
+ RCT_EXPORT_METHOD(getClusterLeavesById:(nonnull NSNumber*)reactTag
162
+ clusterId:(nonnull NSNumber *)clusterId
163
+ number:(NSUInteger) number
164
+ offset:(NSUInteger) offset
165
+ resolver:(RCTPromiseResolveBlock)resolve
166
+ rejecter:(RCTPromiseRejectBlock)reject)
167
+ {
168
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
169
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
170
+
171
+ NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterLeavesById:clusterId number:number offset:offset];
172
+
173
+ NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
174
+ for (int i = 0; i < shapes.count; i++) {
175
+ [features addObject:shapes[i].geoJSONDictionary];
176
+ }
177
+
178
+ resolve(@{
179
+ @"data": @{ @"type": @"FeatureCollection", @"features": features }
180
+ });
181
+ }];
182
+ }
183
+ // Deprecated. Will be removed in 9+ ver.
184
+ RCT_EXPORT_METHOD(getClusterChildrenById:(nonnull NSNumber*)reactTag
185
+ clusterId:(nonnull NSNumber *)clusterId
186
+ resolver:(RCTPromiseResolveBlock)resolve
187
+ rejecter:(RCTPromiseRejectBlock)reject)
188
+ {
189
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, NSDictionary<NSNumber*, UIView*> *viewRegistry) {
190
+ RCTMGLShapeSource* shapeSource = (RCTMGLShapeSource *)viewRegistry[reactTag];
191
+
192
+ NSArray<id<MGLFeature>> *shapes = [shapeSource getClusterChildrenById: clusterId];
193
+
194
+ NSMutableArray<NSDictionary*> *features = [[NSMutableArray alloc] initWithCapacity:shapes.count];
195
+ for (int i = 0; i < shapes.count; i++) {
196
+ [features addObject:shapes[i].geoJSONDictionary];
197
+ }
198
+
199
+ resolve(@{
200
+ @"data": @{ @"type": @"FeatureCollection", @"features": features }
201
+ });
202
+ }];
203
+ }
204
+
205
+ @end
@@ -0,0 +1,35 @@
1
+ //
2
+ // BaseSource.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <React/RCTComponent.h>
10
+ #import "RCTMGLLayer.h"
11
+ #import <UIKit/UIKit.h>
12
+ @import Mapbox;
13
+
14
+ @interface RCTMGLSource : UIView
15
+
16
+ extern NSString * _Nonnull const DEFAULT_SOURCE_ID;
17
+
18
+ @property (nonatomic, strong) NSMutableArray<id<RCTComponent>> *reactSubviews;
19
+ @property (nonatomic, strong) NSMutableArray<RCTMGLLayer*> *layers;
20
+ @property (nonatomic, strong) MGLSource *source;
21
+ @property (nonatomic, strong) RCTMGLMapView *map;
22
+ @property (nonatomic, strong) NSDictionary<NSString *, NSNumber *> *hitbox;
23
+
24
+ @property (nonatomic, copy) NSString *id;
25
+ @property (nonatomic, assign) BOOL hasPressListener;
26
+ @property (nonatomic, copy) RCTBubblingEventBlock onPress;
27
+
28
+ - (void)addToMap;
29
+ - (void)removeFromMap;
30
+ - (nullable MGLSource*)makeSource;
31
+ - (NSArray<NSString *> *)getLayerIDs;
32
+
33
+ + (BOOL)isDefaultSource:(NSString*)sourceID;
34
+
35
+ @end
@@ -0,0 +1,143 @@
1
+ //
2
+ // BaseSource.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLSource.h"
10
+ #import <React/UIView+React.h>
11
+ #import "RCTMGLMapView.h"
12
+ #import <React/RCTLog.h>
13
+
14
+ @implementation RCTMGLSource
15
+
16
+ double const DEFAULT_HITBOX_AREA = 44.0;
17
+ NSString *const DEFAULT_SOURCE_ID = @"composite";
18
+
19
+
20
+ - (instancetype)initWithFrame:(CGRect)frame
21
+ {
22
+ if (self = [super initWithFrame:frame]) {
23
+ _layers = [[NSMutableArray alloc] init];
24
+ _reactSubviews = [[NSMutableArray alloc] init];
25
+ _hitbox = @{ @"width": @(DEFAULT_HITBOX_AREA), @"height": @(DEFAULT_HITBOX_AREA) };
26
+ }
27
+ return self;
28
+ }
29
+
30
+ #pragma clang diagnostic push
31
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
32
+ - (void)insertReactSubview:(id<RCTComponent>)subview atIndex:(NSInteger)atIndex {
33
+ if ([subview isKindOfClass:[RCTMGLLayer class]]) {
34
+ RCTMGLLayer *layer = (RCTMGLLayer*)subview;
35
+
36
+ if (_map.style != nil) {
37
+ [layer addToMap:_map style:_map.style];
38
+ }
39
+
40
+ [_layers addObject:layer];
41
+ [_reactSubviews insertObject:layer atIndex:atIndex];
42
+ }
43
+ }
44
+ #pragma clang diagnostic pop
45
+
46
+ #pragma clang diagnostic push
47
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
48
+ - (void)removeReactSubview:(id<RCTComponent>)subview {
49
+ if ([subview isKindOfClass:[RCTMGLLayer class]]) {
50
+ RCTMGLLayer *layer = (RCTMGLLayer*)subview;
51
+ [layer removeFromMap:_map.style];
52
+ [_layers removeObject:layer];
53
+ [_reactSubviews removeObject:layer];
54
+ }
55
+ }
56
+ #pragma clang diagnostic pop
57
+
58
+ #pragma clang diagnostic push
59
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
60
+ - (NSArray<id<RCTComponent>> *)reactSubviews {
61
+ return _reactSubviews;
62
+ }
63
+ #pragma clang diagnostic pop
64
+
65
+ - (void)setMap:(RCTMGLMapView *)map
66
+ {
67
+ if (map == nil) {
68
+ [self removeFromMap];
69
+ _map = nil;
70
+ } else {
71
+ _map = map;
72
+ [self addToMap];
73
+ }
74
+ }
75
+
76
+ - (void)addToMap
77
+ {
78
+ if (_map.style == nil) {
79
+ return;
80
+ }
81
+
82
+ MGLSource *existingSource = [_map.style sourceWithIdentifier:_id];
83
+ if (existingSource != nil) {
84
+ _source = existingSource;
85
+ } else {
86
+ _source = [self makeSource];
87
+ if (_source != nil) {
88
+ [_map.style addSource:_source];
89
+ } else {
90
+ RCTLogError(@"Could not create source with id:%@. Make sure url/shape is provided", _id);
91
+ }
92
+ }
93
+
94
+ if (_layers.count > 0) {
95
+ for (int i = 0; i < _layers.count; i++) {
96
+ RCTMGLLayer *layer = [_layers objectAtIndex:i];
97
+ [layer addToMap:_map style:_map.style];
98
+ }
99
+ }
100
+ }
101
+
102
+ - (void)removeFromMap
103
+ {
104
+ if (_map.style == nil) {
105
+ return;
106
+ }
107
+
108
+ for (int i = 0; i < _layers.count; i++) {
109
+ RCTMGLLayer *layer = [_layers objectAtIndex:i];
110
+ [layer removeFromMap:_map.style];
111
+ }
112
+
113
+ if (![RCTMGLSource isDefaultSource:_id]) {
114
+ if (_source != nil) {
115
+ [_map.style removeSource:_source];
116
+ }
117
+ }
118
+ }
119
+
120
+ - (nullable MGLSource*)makeSource
121
+ {
122
+ @throw [NSException exceptionWithName:NSInternalInconsistencyException
123
+ reason:[NSString stringWithFormat:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]
124
+ userInfo:nil];
125
+ }
126
+
127
+ - (NSArray<NSString *> *)getLayerIDs
128
+ {
129
+ NSMutableArray *layerIDs = [[NSMutableArray alloc] init];
130
+
131
+ for (RCTMGLLayer *layer in _layers) {
132
+ [layerIDs addObject:layer.id];
133
+ }
134
+
135
+ return layerIDs;
136
+ }
137
+
138
+ + (BOOL)isDefaultSource:(NSString *)sourceID
139
+ {
140
+ return [sourceID isEqualToString:DEFAULT_SOURCE_ID];
141
+ }
142
+
143
+ @end