@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,126 @@
1
+ #import "RCTMGLImages.h"
2
+ #import <React/UIView+React.h>
3
+ #import "RCTMGLMapView.h"
4
+ #import "RCTMGLUtils.h"
5
+ #import "RCTMGLEvent.h"
6
+ #import "RCTMGLEventTypes.h"
7
+
8
+
9
+ @implementation RCTMGLImages : UIView
10
+
11
+ static UIImage * _placeHolderImage;
12
+
13
+ - (void)addToMap
14
+ {
15
+ if (self.map.style == nil) {
16
+ return;
17
+ }
18
+ [self _addNativeImages:_nativeImages];
19
+ [self _addRemoteImages:_images];
20
+ }
21
+
22
+ - (void)removeFromMap
23
+ {
24
+ if (self.map.style == nil) {
25
+ return;
26
+ }
27
+
28
+ [self _removeImages];
29
+ }
30
+
31
+ - (void)_removeImages
32
+ {
33
+ if ([self _hasImages]) {
34
+ NSArray<NSString *> *imageNames = _images.allKeys;
35
+
36
+ for (NSString *imageName in imageNames) {
37
+ [self.map.style removeImageForName:imageName];
38
+ }
39
+ }
40
+
41
+ if ([self _hasNativeImages]) {
42
+ for (NSString *imageName in _nativeImages) {
43
+ [self.map.style removeImageForName:imageName];
44
+ }
45
+ }
46
+ }
47
+
48
+ -(BOOL)addMissingImageToStyle:(NSString *)imageName {
49
+ if (_nativeImages && [_nativeImages containsObject:imageName]) {
50
+ [self _addNativeImages:@[imageName]];
51
+ return true;
52
+ }
53
+
54
+ NSString *remoteImage = _images != nil ? [_images objectForKey:imageName] : nil;
55
+ if (remoteImage) {
56
+ [self _addRemoteImages:@{imageName: remoteImage}];
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+
62
+ - (void) sendImageMissingEvent:(NSString *)imageName {
63
+ NSDictionary *payload = @{ @"imageKey": imageName };
64
+ RCTMGLEvent *event = [RCTMGLEvent makeEvent:RCT_MAPBOX_IMAGES_MISSING_IMAGE withPayload:payload];
65
+ if (_onImageMissing) {
66
+ _onImageMissing([event toJSON]);
67
+ }
68
+ }
69
+
70
+ - (void)_addNativeImages:(NSArray<NSString *>*)nativeImages
71
+ {
72
+ if (!nativeImages) return;
73
+
74
+ for (NSString *imageName in nativeImages) {
75
+ // only add native images if they are not in the style yet (similar to [RCTMGLUtils fetchImages: style:])
76
+ if (![self.map.style imageForName:imageName]) {
77
+ UIImage *image = [UIImage imageNamed:imageName];
78
+ [self.map.style setImage:image forName:imageName];
79
+ }
80
+ }
81
+ }
82
+
83
+ - (void)_addRemoteImages:(NSDictionary<NSString *, NSString *>*)remoteImages
84
+ {
85
+ if (!remoteImages) return;
86
+ NSDictionary<NSString *, NSString *> *missingImages = [NSMutableDictionary new];
87
+
88
+ // Add image placeholder for images that are not yet available in the style. This way
89
+ // we can load the images asynchronously and add the ShapeSource to the map without delay.
90
+ // The same is required when this ShapeSource is updated with new/added images and the
91
+ // data references them. In which case addMissingImageToStyle will take care of loading
92
+ // them in a similar way.
93
+ //
94
+ // See also: https://github.com/mapbox/mapbox-gl-native/pull/14253#issuecomment-478827792
95
+ for (NSString *imageName in remoteImages.allKeys) {
96
+ if (![self.map.style imageForName:imageName]) {
97
+ [self.map.style setImage:[RCTMGLImages placeholderImage] forName:imageName];
98
+ [missingImages setValue:_images[imageName] forKey:imageName];
99
+ }
100
+ }
101
+
102
+ if (missingImages.count > 0) {
103
+ // forceUpdate to ensure the placeholder images are updated
104
+ [RCTMGLUtils fetchImages:_bridge style:self.map.style objects:_images forceUpdate:true callback:^{ }];
105
+ }
106
+ }
107
+
108
+ - (BOOL)_hasImages
109
+ {
110
+ return _images != nil && _images.count > 0;
111
+ }
112
+
113
+ - (BOOL)_hasNativeImages
114
+ {
115
+ return _nativeImages != nil && _nativeImages.count > 0;
116
+ }
117
+
118
+ + (UIImage *)placeholderImage {
119
+ if (_placeHolderImage) return _placeHolderImage;
120
+ UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0);
121
+ _placeHolderImage = UIGraphicsGetImageFromCurrentImageContext();
122
+ UIGraphicsEndImageContext();
123
+ return _placeHolderImage;
124
+ }
125
+
126
+ @end
@@ -0,0 +1,5 @@
1
+ #import "ViewManager.h"
2
+
3
+ @interface RCTMGLImagesManager : ViewManager
4
+
5
+ @end
@@ -0,0 +1,21 @@
1
+ #import "RCTMGLImagesManager.h"
2
+ #import "RCTMGLImages.h"
3
+
4
+ @implementation RCTMGLImagesManager
5
+
6
+ RCT_EXPORT_MODULE()
7
+
8
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString)
9
+ RCT_EXPORT_VIEW_PROPERTY(images, NSDictionary)
10
+ RCT_EXPORT_VIEW_PROPERTY(nativeImages, NSArray)
11
+
12
+ RCT_REMAP_VIEW_PROPERTY(onImageMissing, onImageMissing, RCTBubblingEventBlock)
13
+
14
+ - (UIView*)view
15
+ {
16
+ RCTMGLImages *images = [RCTMGLImages new];
17
+ images.bridge = self.bridge;
18
+ return images;
19
+ }
20
+
21
+ @end
@@ -0,0 +1,52 @@
1
+ //
2
+ // BaseLayer.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 <UIKit/UIKit.h>
10
+ #import <React/RCTBridge.h>
11
+
12
+
13
+ @class RCTMGLMapView;
14
+
15
+ @import Mapbox;
16
+
17
+ @interface RCTMGLLayer<T> : UIView
18
+
19
+ @property (nonatomic, weak, nullable) RCTBridge* bridge;
20
+
21
+ @property (nonatomic, strong, nullable) MGLStyleLayer *styleLayer;
22
+ @property (nonatomic, strong, nullable) MGLStyle *style;
23
+ @property (nonatomic, weak, nullable) RCTMGLMapView* map;
24
+ @property (nonatomic, strong, nullable) NSDictionary *reactStyle;
25
+ @property (nonatomic, strong, nullable) NSArray *filter;
26
+
27
+ @property (nonatomic, copy, nullable) NSString *id;
28
+ @property (nonatomic, copy, nullable) NSString *sourceID;
29
+
30
+ @property (nonatomic, copy, nullable) NSString *aboveLayerID;
31
+ @property (nonatomic, copy, nullable) NSString *belowLayerID;
32
+ @property (nonatomic, copy, nullable) NSNumber *layerIndex;
33
+
34
+ @property (nonatomic, copy, nullable) NSNumber *maxZoomLevel;
35
+ @property (nonatomic, copy, nullable) NSNumber *minZoomLevel;
36
+
37
+ - (void)addToMap:(nonnull RCTMGLMapView*)map style:(nonnull MGLStyle*)style;
38
+ - (void)addedToMap;
39
+ - (void)removeFromMap:(nonnull MGLStyle*)style;
40
+ - (nullable T)makeLayer:(nonnull MGLStyle*)style;
41
+ - (void)addStyles;
42
+ - (void)insertAbove:(nonnull NSString*)layer;
43
+ - (void)insertBelow:(nonnull NSString*)layer;
44
+ - (void)insertAtIndex:(NSUInteger)index;
45
+ - (void)insertLayer;
46
+ - (void)setZoomBounds;
47
+
48
+ - (BOOL)isAddedToMap;
49
+
50
+ - (nullable MGLSource*)layerWithSourceIDInStyle:(nonnull MGLStyle*) style;
51
+
52
+ @end
@@ -0,0 +1,236 @@
1
+ //
2
+ // BaseLayer.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 "RCTMGLLayer.h"
10
+ #import "RCTMGLSource.h"
11
+ #import "RCTMGLStyleValue.h"
12
+ #import "RCTMGLUtils.h"
13
+ #import "RCTMGLMapView.h"
14
+
15
+ @implementation RCTMGLLayer
16
+
17
+ - (void)setMinZoomLevel:(NSNumber*)minZoomLevel
18
+ {
19
+ _minZoomLevel = minZoomLevel;
20
+
21
+ if (_styleLayer != nil) {
22
+ _styleLayer.minimumZoomLevel = [_minZoomLevel doubleValue];
23
+ }
24
+ }
25
+
26
+ - (void)setMaxZoomLevel:(NSNumber*)maxZoomLevel
27
+ {
28
+ _maxZoomLevel = maxZoomLevel;
29
+
30
+ if (_styleLayer != nil) {
31
+ _styleLayer.maximumZoomLevel = [_maxZoomLevel doubleValue];
32
+ }
33
+ }
34
+
35
+ - (void)setAboveLayerID:(NSString *)aboveLayerID
36
+ {
37
+ if (_aboveLayerID != nil && _aboveLayerID == aboveLayerID) {
38
+ return;
39
+ }
40
+
41
+ _aboveLayerID = aboveLayerID;
42
+ if (_styleLayer != nil) {
43
+ [self removeFromMap:_style];
44
+ [self insertAbove:aboveLayerID];
45
+ }
46
+ }
47
+
48
+ - (void)setBelowLayerID:(NSString *)belowLayerID
49
+ {
50
+ if (_belowLayerID != nil && _belowLayerID == belowLayerID) {
51
+ return;
52
+ }
53
+
54
+ _belowLayerID = belowLayerID;
55
+ if (_styleLayer != nil) {
56
+ [self removeFromMap:_style];
57
+ [self insertBelow:_belowLayerID];
58
+ }
59
+ }
60
+
61
+ - (void)setLayerIndex:(NSNumber *)layerIndex
62
+ {
63
+ if (_layerIndex != nil && _layerIndex == layerIndex) {
64
+ return;
65
+ }
66
+
67
+ _layerIndex = layerIndex;
68
+ if (_styleLayer != nil) {
69
+ [self removeFromMap:_style];
70
+ [self insertAtIndex:_layerIndex.unsignedIntegerValue];
71
+ }
72
+ }
73
+
74
+ - (void)setMap:(RCTMGLMapView *)map {
75
+ if (map == nil) {
76
+ [self removeFromMap:_map.style];
77
+ _map = nil;
78
+ } else {
79
+ _map = map;
80
+ [self addToMap:map style:map.style];
81
+ }
82
+ }
83
+
84
+ -(void)setReactStyle:(NSDictionary *)reactStyle
85
+ {
86
+ _reactStyle = reactStyle;
87
+
88
+ if (_styleLayer != nil) {
89
+ dispatch_async(dispatch_get_main_queue(), ^{
90
+ [self addStyles];
91
+ });
92
+ }
93
+ }
94
+
95
+ - (void)addToMap:(RCTMGLMapView*) map style:(MGLStyle *)style
96
+ {
97
+ if (style == nil) {
98
+ return;
99
+ }
100
+ _map = map;
101
+ _style = style;
102
+ if (_id == nil) {
103
+ RCTLogError(@"Cannot add a layer without id to the map: %@", self);
104
+ return;
105
+ }
106
+ MGLStyleLayer *existingLayer = [style layerWithIdentifier:_id];
107
+ if (existingLayer != nil) {
108
+ _styleLayer = existingLayer;
109
+ } else {
110
+ _styleLayer = [self makeLayer:style];
111
+ if (_styleLayer == nil) {
112
+ RCTLogError(@"Failed to make layer: %@", _id);
113
+ return;
114
+ }
115
+ [self insertLayer: map];
116
+ }
117
+
118
+ [self addStyles];
119
+ [self addedToMap];
120
+ }
121
+
122
+ - (nullable MGLSource*)layerWithSourceIDInStyle:(nonnull MGLStyle*) style
123
+ {
124
+ MGLSource* result = [style sourceWithIdentifier: self.sourceID];
125
+ if (result == NULL) {
126
+ RCTLogError(@"Cannot find layer with id: %@ referenced by layer:%@", self.sourceID, _id);
127
+ }
128
+ return result;
129
+ }
130
+
131
+ - (void)removeFromMap:(MGLStyle *)style
132
+ {
133
+ if (_styleLayer != nil) {
134
+ [style removeLayer:_styleLayer];
135
+ }
136
+ _style = nil;
137
+ }
138
+
139
+ - (BOOL)isAddedToMap
140
+ {
141
+ return (_style != nil);
142
+ }
143
+
144
+ - (nullable MGLStyleLayer*)makeLayer:(MGLStyle*)style
145
+ {
146
+ @throw [NSException exceptionWithName:NSInternalInconsistencyException
147
+ reason:[NSString stringWithFormat:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]
148
+ userInfo:nil];
149
+ }
150
+
151
+ - (void)addStyles
152
+ {
153
+ @throw [NSException exceptionWithName:NSInternalInconsistencyException
154
+ reason:[NSString stringWithFormat:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]
155
+ userInfo:nil];
156
+ }
157
+
158
+ - (void)addedToMap
159
+ {
160
+ // override if you want
161
+ }
162
+
163
+ - (void)insertLayer: (RCTMGLMapView*) map
164
+ {
165
+ if ([_style layerWithIdentifier:_id] != nil) {
166
+ return; // prevent layer from being added twice
167
+ }
168
+
169
+ if (_aboveLayerID != nil) {
170
+ [self insertAbove:_aboveLayerID];
171
+ } else if (_belowLayerID != nil) {
172
+ [self insertBelow:_belowLayerID];
173
+ } else if (_layerIndex != nil) {
174
+ [self insertAtIndex:_layerIndex.unsignedIntegerValue];
175
+ } else {
176
+ [_style addLayer:_styleLayer];
177
+ [_map layerAdded:_styleLayer];
178
+ }
179
+
180
+ [self setZoomBounds];
181
+ }
182
+
183
+ - (void)setZoomBounds
184
+ {
185
+ if (_maxZoomLevel != nil) {
186
+ _styleLayer.maximumZoomLevel = [_maxZoomLevel doubleValue];
187
+ }
188
+
189
+ if (_minZoomLevel != nil) {
190
+ _styleLayer.minimumZoomLevel = [_minZoomLevel doubleValue];
191
+ }
192
+ }
193
+
194
+ -(void)insertAbove:(NSString*)aboveLayerIDs
195
+ {
196
+ [_map waitForLayerWithID: aboveLayerIDs then:^void (MGLStyleLayer* layer) {
197
+ if (![self _hasInitialized]) {
198
+ return;
199
+ }
200
+ [self->_style insertLayer:self->_styleLayer aboveLayer:layer];
201
+ [self->_map layerAdded:self->_styleLayer];
202
+ }];
203
+ }
204
+
205
+ -(void)insertBelow:(NSString*)belowLayerID
206
+ {
207
+ [_map waitForLayerWithID: belowLayerID then:^void (MGLStyleLayer* layer) {
208
+ if (![self _hasInitialized]) {
209
+ return;
210
+ }
211
+
212
+ [self->_style insertLayer:self->_styleLayer belowLayer:layer];
213
+ [self->_map layerAdded:self->_styleLayer];
214
+ }];
215
+ }
216
+
217
+ -(void)insertAtIndex:(NSUInteger)index
218
+ {
219
+ if (![self _hasInitialized]) {
220
+ return;
221
+ }
222
+ NSArray *layers = _style.layers;
223
+ if (index >= layers.count) {
224
+ RCTLogWarn(@"Layer index is greater than number of layers on map. Layer inserted at end of layer stack.");
225
+ index = layers.count - 1;
226
+ }
227
+ [_style insertLayer:self->_styleLayer atIndex:index];
228
+ [_map layerAdded:self->_styleLayer];
229
+ }
230
+
231
+ - (BOOL)_hasInitialized
232
+ {
233
+ return _style != nil && _styleLayer != nil;
234
+ }
235
+
236
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // RCTMGLLight.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/26/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ @import Mapbox;
11
+
12
+ @interface RCTMGLLight : UIView
13
+
14
+ @property (nonatomic, strong) MGLMapView *map;
15
+ @property (nonatomic, strong) NSDictionary *reactStyle;
16
+
17
+ @end
@@ -0,0 +1,46 @@
1
+ //
2
+ // RCTMGLLight.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/26/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLLight.h"
10
+ #import "RCTMGLStyle.h"
11
+
12
+ @implementation RCTMGLLight
13
+ {
14
+ MGLLight *internalLight;
15
+ }
16
+
17
+ - (void)setReactStyle:(NSDictionary *)reactStyle
18
+ {
19
+ _reactStyle = reactStyle;
20
+
21
+ if (_map != nil) {
22
+ [self addStyles];
23
+ }
24
+ }
25
+
26
+ - (void)setMap:(MGLMapView *)map
27
+ {
28
+ _map = map;
29
+ [self addStyles];
30
+ }
31
+
32
+ - (BOOL)isAddedToMap {
33
+ return _map != NULL;
34
+ }
35
+
36
+ - (void)addStyles
37
+ {
38
+ MGLLight *light = [[MGLLight alloc] init];
39
+ RCTMGLStyle *style = [[RCTMGLStyle alloc] init];
40
+ [style lightLayer:light withReactStyle:_reactStyle isValid:^{
41
+ return [self isAddedToMap];
42
+ }];
43
+ _map.style.light = light;
44
+ }
45
+
46
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // RCTMGLLightManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/26/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+
11
+ @interface RCTMGLLightManager : ViewManager
12
+
13
+ @end
@@ -0,0 +1,23 @@
1
+ //
2
+ // RCTMGLLightManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/26/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLLightManager.h"
10
+ #import "RCTMGLLight.h"
11
+
12
+ @implementation RCTMGLLightManager
13
+
14
+ RCT_EXPORT_MODULE()
15
+
16
+ RCT_EXPORT_VIEW_PROPERTY(reactStyle, NSDictionary);
17
+
18
+ - (UIView*)view
19
+ {
20
+ return [RCTMGLLight new];
21
+ }
22
+
23
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // RCTMGLLineLayer.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/18/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLVectorLayer.h"
10
+ @import Mapbox;
11
+
12
+ @interface RCTMGLLineLayer : RCTMGLVectorLayer
13
+
14
+ @end
@@ -0,0 +1,33 @@
1
+ //
2
+ // RCTMGLLineLayer.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/18/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLLineLayer.h"
10
+ #import "RCTMGLStyle.h"
11
+ #import <React/RCTLog.h>
12
+
13
+ @implementation RCTMGLLineLayer
14
+
15
+ - (MGLLineStyleLayer*)makeLayer:(MGLStyle*)style
16
+ {
17
+ MGLSource *source = [self layerWithSourceIDInStyle:style];
18
+ if (source == nil) { return nil; }
19
+ MGLLineStyleLayer *layer = [[MGLLineStyleLayer alloc] initWithIdentifier:self.id source:source];
20
+ layer.sourceLayerIdentifier = self.sourceLayerID;
21
+ return layer;
22
+ }
23
+
24
+ - (void)addStyles
25
+ {
26
+ RCTMGLStyle *style = [[RCTMGLStyle alloc] initWithMGLStyle:self.style];
27
+ style.bridge = self.bridge;
28
+ [style lineLayer:(MGLLineStyleLayer *)self.styleLayer withReactStyle:self.reactStyle isValid:^{
29
+ return [self isAddedToMap];
30
+ }];
31
+ }
32
+
33
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // RCTMGLLineLayerManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/18/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+
11
+ @interface RCTMGLLineLayerManager : ViewManager
12
+
13
+ @end
@@ -0,0 +1,40 @@
1
+ //
2
+ // RCTMGLLineLayerManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/18/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLLineLayerManager.h"
10
+ #import "RCTMGLLineLayer.h"
11
+
12
+ @implementation RCTMGLLineLayerManager
13
+
14
+ RCT_EXPORT_MODULE()
15
+
16
+ // line layer props
17
+ RCT_EXPORT_VIEW_PROPERTY(sourceLayerID, NSString);
18
+
19
+ // standard layer props
20
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString);
21
+ RCT_EXPORT_VIEW_PROPERTY(sourceID, NSString);
22
+ RCT_EXPORT_VIEW_PROPERTY(filter, NSArray);
23
+
24
+ RCT_EXPORT_VIEW_PROPERTY(aboveLayerID, NSString);
25
+ RCT_EXPORT_VIEW_PROPERTY(belowLayerID, NSString);
26
+ RCT_EXPORT_VIEW_PROPERTY(layerIndex, NSNumber);
27
+ RCT_EXPORT_VIEW_PROPERTY(reactStyle, NSDictionary);
28
+
29
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber);
30
+ RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, NSNumber);
31
+
32
+ - (UIView*)view
33
+ {
34
+ RCTMGLLineLayer *layer = [RCTMGLLineLayer new];
35
+ layer.bridge = self.bridge;
36
+ return layer;
37
+ }
38
+
39
+
40
+ @end
@@ -0,0 +1,19 @@
1
+ //
2
+ // RCTMGLLocation.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 6/21/18.
6
+ // Copyright © 2018 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <CoreLocation/CoreLocation.h>
11
+
12
+ @interface RCTMGLLocation : NSObject
13
+
14
+ @property (nonatomic, strong) CLLocation *location;
15
+ @property (nonatomic, strong) CLHeading *heading;
16
+
17
+ - (NSDictionary<NSString *, id> *)toJSON;
18
+
19
+ @end
@@ -0,0 +1,32 @@
1
+ //
2
+ // RCTMGLLocation.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 6/21/18.
6
+ // Copyright © 2018 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLLocation.h"
10
+
11
+ @implementation RCTMGLLocation
12
+
13
+ - (NSDictionary<NSString *, id> *)toJSON
14
+ {
15
+ NSMutableDictionary<NSString *, id> *json = [[NSMutableDictionary alloc] init];
16
+
17
+ NSMutableDictionary<NSString *, NSNumber *> *coords = [[NSMutableDictionary alloc] init];
18
+ coords[@"longitude"] = @(_location.coordinate.longitude);
19
+ coords[@"latitude"] = @(_location.coordinate.latitude);
20
+ coords[@"altitude"] = @(_location.altitude);
21
+ coords[@"accuracy"] = @(_location.horizontalAccuracy);
22
+ coords[@"heading"] = @(_heading.trueHeading);
23
+ coords[@"course"] = @(_location.course);
24
+ coords[@"speed"] = @(_location.speed);
25
+
26
+ json[@"coords"] = coords;
27
+ json[@"timestamp"] = @([_location.timestamp timeIntervalSince1970]);
28
+
29
+ return json;
30
+ }
31
+
32
+ @end