@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,18 @@
1
+ //
2
+ // CameraMode.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @interface CameraMode : NSObject
12
+
13
+ extern int const RCT_MAPBOX_CAMERA_MODE_FLIGHT;
14
+ extern int const RCT_MAPBOX_CAMERA_MODE_EASE;
15
+ extern int const RCT_MAPBOX_CAMERA_MODE_LINEAR;
16
+ extern int const RCT_MAPBOX_CAMERA_MODE_NONE;
17
+
18
+ @end
@@ -0,0 +1,18 @@
1
+ //
2
+ // CameraMode.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraMode.h"
10
+
11
+ @implementation CameraMode
12
+
13
+ int const RCT_MAPBOX_CAMERA_MODE_FLIGHT = 1;
14
+ int const RCT_MAPBOX_CAMERA_MODE_EASE = 2;
15
+ int const RCT_MAPBOX_CAMERA_MODE_LINEAR = 3;
16
+ int const RCT_MAPBOX_CAMERA_MODE_NONE = 4;
17
+
18
+ @end
@@ -0,0 +1,26 @@
1
+ //
2
+ // CameraStop.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/5/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ @import Mapbox;
10
+ #import "RCTMGLCamera.h"
11
+
12
+ @interface CameraStop : NSObject
13
+
14
+ @property (nonatomic, strong) NSNumber *pitch;
15
+ @property (nonatomic, strong) NSNumber *heading;
16
+ @property (nonatomic, strong) NSNumber *zoom;
17
+ @property (nonatomic, strong) NSNumber *mode;
18
+ @property (nonatomic, assign) NSTimeInterval duration;
19
+
20
+ @property (nonatomic, assign) CLLocationCoordinate2D coordinate;
21
+ @property (nonatomic, assign) MGLCoordinateBounds bounds;
22
+ @property (nonatomic, assign) UIEdgeInsets padding;
23
+
24
+ + (CameraStop*)fromDictionary:(NSDictionary*)args;
25
+
26
+ @end
@@ -0,0 +1,83 @@
1
+ //
2
+ // CameraStop.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/5/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraStop.h"
10
+ #import "CameraMode.h"
11
+ #import "RCTMGLUtils.h"
12
+ #import "RCTMGLCamera.h"
13
+
14
+ @implementation CameraStop
15
+
16
+ - (void)setMode:(NSNumber *)mode
17
+ {
18
+ int modeInt = [mode intValue];
19
+
20
+ if (modeInt == RCT_MAPBOX_CAMERA_MODE_FLIGHT) {
21
+ _mode = [NSNumber numberWithInt:modeInt];
22
+ } else if (modeInt == RCT_MAPBOX_CAMERA_MODE_NONE) {
23
+ _mode = [NSNumber numberWithInt:modeInt];
24
+ } else if (modeInt == RCT_MAPBOX_CAMERA_MODE_LINEAR) {
25
+ _mode = [NSNumber numberWithInt:modeInt];
26
+ } else {
27
+ _mode = [NSNumber numberWithInt:RCT_MAPBOX_CAMERA_MODE_EASE];
28
+ }
29
+ }
30
+
31
+ -(id)init {
32
+ if (self = [super init]) {
33
+ self.coordinate = kCLLocationCoordinate2DInvalid;
34
+ self.bounds = MGLCoordinateBoundsMake(kCLLocationCoordinate2DInvalid, kCLLocationCoordinate2DInvalid);
35
+ }
36
+ return self;
37
+ }
38
+
39
+
40
+ + (CameraStop*)fromDictionary:(NSDictionary *)args
41
+ {
42
+ CameraStop *stop = [[CameraStop alloc] init];
43
+
44
+ if (args[@"pitch"]) {
45
+ stop.pitch = args[@"pitch"];
46
+ }
47
+
48
+ if (args[@"heading"]) {
49
+ stop.heading = args[@"heading"];
50
+ }
51
+
52
+ if (args[@"centerCoordinate"]) {
53
+ stop.coordinate = [RCTMGLUtils fromFeature:args[@"centerCoordinate"]];
54
+ }
55
+
56
+ if (args[@"zoom"]) {
57
+ stop.zoom = args[@"zoom"];
58
+ }
59
+
60
+ if (args[@"mode"]) {
61
+ stop.mode = args[@"mode"];
62
+ }
63
+
64
+ if (args[@"bounds"]) {
65
+ stop.bounds = [RCTMGLUtils fromFeatureCollection:args[@"bounds"]];
66
+ }
67
+
68
+ CGFloat paddingTop = args[@"paddingTop"] ? [args[@"paddingTop"] floatValue] : 0.0;
69
+ CGFloat paddingRight = args[@"paddingRight"] ? [args[@"paddingRight"] floatValue] : 0.0;
70
+ CGFloat paddingBottom = args[@"paddingBottom"] ? [args[@"paddingBottom"] floatValue] : 0.0;
71
+ CGFloat paddingLeft = args[@"paddingLeft"] ? [args[@"paddingLeft"] floatValue] : 0.0;
72
+ stop.padding = UIEdgeInsetsMake(paddingTop, paddingLeft, paddingBottom, paddingRight);
73
+
74
+ NSTimeInterval duration = 2.0;
75
+ if (args[@"duration"]) {
76
+ duration = [RCTMGLUtils fromMS:args[@"duration"]];
77
+ }
78
+ stop.duration = duration;
79
+
80
+ return stop;
81
+ }
82
+
83
+ @end
@@ -0,0 +1,18 @@
1
+ //
2
+ // CameraUpdateItem.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraStop.h"
10
+ #import "RCTMGLMapView.h"
11
+
12
+ @interface CameraUpdateItem : NSObject
13
+
14
+ @property (nonatomic, strong) CameraStop* _Nonnull cameraStop;
15
+
16
+ - (void)execute:(RCTMGLMapView* _Nonnull)mapView withCompletionHandler:(nullable void (^)(void))completionHandler;
17
+
18
+ @end
@@ -0,0 +1,178 @@
1
+ //
2
+ // CameraUpdateItem.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraUpdateItem.h"
10
+ #import "CameraMode.h"
11
+
12
+
13
+ @interface MGLMapView(FlyToWithPadding)
14
+ - (void)_flyToCamera:(MGLMapCamera *)camera edgePadding:(UIEdgeInsets)insets withDuration:(NSTimeInterval)duration peakAltitude:(CLLocationDistance)peakAltitude completionHandler:(nullable void (^)(void))completion;
15
+ @end
16
+
17
+ @interface RCTMGLCameraWithPadding : MGLMapCamera
18
+
19
+ @property (nonatomic) MGLMapCamera* _Nonnull camera;
20
+ @property (nonatomic) UIEdgeInsets boundsPadding;
21
+
22
+ @end
23
+
24
+ @implementation RCTMGLCameraWithPadding
25
+
26
+ @end
27
+
28
+ @implementation CameraUpdateItem
29
+
30
+ - (void)execute:(RCTMGLMapView *)mapView withCompletionHandler:(void (^)(void))completionHandler
31
+ {
32
+ if (_cameraStop.mode == [NSNumber numberWithInt:RCT_MAPBOX_CAMERA_MODE_FLIGHT]) {
33
+ [self _flyToCamera:mapView withCompletionHandler:completionHandler];
34
+ } else if (_cameraStop.mode == [NSNumber numberWithInt:RCT_MAPBOX_CAMERA_MODE_EASE]) {
35
+ [self _moveCamera:mapView animated:YES ease:YES withCompletionHandler:completionHandler];
36
+ } else if (_cameraStop.mode == [NSNumber numberWithInt:RCT_MAPBOX_CAMERA_MODE_LINEAR]) {
37
+ [self _moveCamera:mapView animated:YES ease:NO withCompletionHandler:completionHandler];
38
+ } else {
39
+ [self _moveCamera:mapView animated:NO ease:NO withCompletionHandler:completionHandler];
40
+ }
41
+ }
42
+
43
+ - (void)_flyToCamera:(RCTMGLMapView*)mapView withCompletionHandler:(void (^)(void))completionHandler
44
+ {
45
+ RCTMGLCameraWithPadding *nextCamera = [self _makeCamera:mapView];
46
+
47
+ if ([mapView respondsToSelector:@selector(_flyToCamera:edgePadding:withDuration:peakAltitude:completionHandler:)]) {
48
+ [mapView
49
+ _flyToCamera:nextCamera.camera
50
+ edgePadding:nextCamera.boundsPadding
51
+ withDuration:_cameraStop.duration
52
+ peakAltitude:-1
53
+ completionHandler:completionHandler];
54
+ } else {
55
+ [mapView
56
+ flyToCamera:nextCamera.camera
57
+ withDuration:_cameraStop.duration
58
+ completionHandler:completionHandler];
59
+ }
60
+ }
61
+
62
+ - (void)_moveCamera:(RCTMGLMapView*)mapView animated:(BOOL)animated ease:(BOOL)ease withCompletionHandler:(void (^)(void))completionHandler
63
+ {
64
+ RCTMGLCameraWithPadding *nextCamera = [self _makeCamera:mapView];
65
+ NSString *easeFunctionName = ease ? kCAMediaTimingFunctionEaseInEaseOut : kCAMediaTimingFunctionLinear;
66
+
67
+ [mapView setCamera:nextCamera.camera
68
+ withDuration:animated ? _cameraStop.duration : 0
69
+ animationTimingFunction:[CAMediaTimingFunction functionWithName:easeFunctionName]
70
+ edgePadding:nextCamera.boundsPadding
71
+ completionHandler:completionHandler];
72
+ }
73
+
74
+ - (RCTMGLCameraWithPadding*)_makeCamera:(RCTMGLMapView*)mapView
75
+ {
76
+ MGLMapCamera *nextCamera = [mapView.camera copy];
77
+
78
+ UIEdgeInsets padding = [self _clippedPadding:_cameraStop.padding forView:mapView];
79
+ if (padding.top <= 0 && padding.bottom <= 0) {
80
+ // If all padding properties are 0 in the update, and the bounds and centerCoordinate do not
81
+ // change, the padding doesn't change either. This seems to be a bug in the iOS SDK.
82
+ padding.top = 1.0;
83
+ padding.bottom = 1.0;
84
+ }
85
+
86
+ bool hasSetAltitude = false;
87
+
88
+ if ([self _isCoordValid:_cameraStop.coordinate]) {
89
+ MGLCoordinateBounds boundsFromCoord = { .sw = _cameraStop.coordinate, .ne = _cameraStop.coordinate };
90
+ MGLMapCamera *boundsCamera = [mapView
91
+ camera:nextCamera
92
+ fittingCoordinateBounds:boundsFromCoord
93
+ edgePadding: padding];
94
+ nextCamera.centerCoordinate = boundsCamera.centerCoordinate;
95
+ } else if ([self _areBoundsValid:_cameraStop.bounds]) {
96
+ MGLMapCamera *boundsCamera = [mapView
97
+ camera:nextCamera
98
+ fittingCoordinateBounds:_cameraStop.bounds
99
+ edgePadding: padding];
100
+ nextCamera.centerCoordinate = boundsCamera.centerCoordinate;
101
+ nextCamera.altitude = boundsCamera.altitude;
102
+ hasSetAltitude = true;
103
+ }
104
+
105
+ if (_cameraStop.pitch != nil) {
106
+ nextCamera.pitch = [_cameraStop.pitch floatValue];
107
+ }
108
+
109
+ if (_cameraStop.heading != nil) {
110
+ nextCamera.heading = [_cameraStop.heading floatValue];
111
+ }
112
+
113
+ if (_cameraStop.zoom != nil && hasSetAltitude == false) {
114
+ nextCamera.altitude = [mapView
115
+ altitudeFromZoom:[_cameraStop.zoom doubleValue]
116
+ atLatitude:nextCamera.centerCoordinate.latitude
117
+ atPitch:nextCamera.pitch];
118
+ }
119
+
120
+ RCTMGLCameraWithPadding* cameraWithPadding = [[RCTMGLCameraWithPadding alloc] init];
121
+ cameraWithPadding.camera = nextCamera;
122
+ cameraWithPadding.boundsPadding = padding;
123
+ return cameraWithPadding;
124
+ }
125
+
126
+ - (UIEdgeInsets)_clippedPadding:(UIEdgeInsets)padding forView:(RCTMGLMapView*)mapView
127
+ {
128
+ UIEdgeInsets result = padding;
129
+ if ((padding.top + padding.bottom) >= mapView.frame.size.height) {
130
+ double totalPadding = padding.top + padding.bottom;
131
+ double extra = totalPadding - mapView.frame.size.height + 1.0;
132
+ result.top -= (padding.top * extra) / totalPadding;
133
+ result.bottom -= (padding.bottom * extra) / totalPadding;
134
+ }
135
+ if ((padding.left + padding.right) >= mapView.frame.size.width) {
136
+ double totalPadding = padding.left + padding.right;
137
+ double extra = totalPadding - mapView.frame.size.width + 1.0;
138
+ result.left -= (padding.left * extra) / totalPadding;
139
+ result.right -= (padding.right * extra) / totalPadding;
140
+ }
141
+ return result;
142
+ }
143
+
144
+ - (BOOL)_areBoundsValid:(MGLCoordinateBounds)bounds {
145
+ BOOL isValid = CLLocationCoordinate2DIsValid(bounds.ne) && CLLocationCoordinate2DIsValid(bounds.sw);
146
+
147
+ if (!isValid) {
148
+ return NO;
149
+ }
150
+
151
+ CLLocationCoordinate2D ne = bounds.ne;
152
+ CLLocationCoordinate2D sw = bounds.sw;
153
+ return [self _isCoordValid:ne] && [self _isCoordValid:sw];
154
+ }
155
+
156
+ - (BOOL)_isCoordValid:(CLLocationCoordinate2D)coord
157
+ {
158
+ BOOL isValid = CLLocationCoordinate2DIsValid(coord);
159
+
160
+ if (!isValid) {
161
+ return NO;
162
+ }
163
+
164
+ return YES;
165
+ }
166
+
167
+ - (BOOL)_hasCenterCoordAndZoom
168
+ {
169
+ BOOL isValid = CLLocationCoordinate2DIsValid(_cameraStop.coordinate) && _cameraStop.zoom != nil;
170
+
171
+ if (!isValid) {
172
+ return NO;
173
+ }
174
+
175
+ return [self _isCoordValid:_cameraStop.coordinate];
176
+ }
177
+
178
+ @end
@@ -0,0 +1,21 @@
1
+ //
2
+ // CameraUpdateQueue.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraStop.h"
10
+ #import "CameraUpdateItem.h"
11
+ #import "RCTMGLMapView.h"
12
+
13
+ @interface CameraUpdateQueue : NSObject
14
+
15
+ - (void)enqueue:(CameraStop* _Nonnull)cameraUpdateItem;
16
+ - (CameraStop* _Nonnull)dequeue;
17
+ - (void)flush;
18
+ - (BOOL)isEmpty;
19
+ - (void)execute:(RCTMGLMapView* _Nonnull)mapView;
20
+
21
+ @end
@@ -0,0 +1,74 @@
1
+ //
2
+ // CameraUpdateQueue.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/6/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "CameraUpdateQueue.h"
10
+
11
+ @implementation CameraUpdateQueue
12
+ {
13
+ NSMutableArray<CameraStop*> *queue;
14
+ }
15
+
16
+ - (instancetype)init
17
+ {
18
+ if (self = [super init]) {
19
+ queue = [[NSMutableArray alloc] init];
20
+ }
21
+
22
+ return self;
23
+ }
24
+
25
+ - (void)enqueue:(CameraStop*)cameraUpdateItem
26
+ {
27
+ [queue addObject:cameraUpdateItem];
28
+ }
29
+
30
+ - (CameraStop*)dequeue
31
+ {
32
+ if ([self isEmpty]) {
33
+ return nil;
34
+ }
35
+ CameraStop *stop = queue.firstObject;
36
+ [queue removeObjectAtIndex:0];
37
+ return stop;
38
+ }
39
+
40
+ - (void)flush
41
+ {
42
+ [queue removeAllObjects];
43
+ }
44
+
45
+ - (BOOL)isEmpty
46
+ {
47
+ return queue.count == 0;
48
+ }
49
+
50
+ - (void)execute:(RCTMGLMapView*)mapView
51
+ {
52
+ if (mapView == nil) {
53
+ return;
54
+ }
55
+
56
+ if ([self isEmpty]) {
57
+ return;
58
+ }
59
+
60
+ CameraStop *stop = [self dequeue];
61
+ if (stop == nil) {
62
+ return;
63
+ }
64
+
65
+ CameraUpdateItem *item = [[CameraUpdateItem alloc] init];
66
+ item.cameraStop = stop;
67
+
68
+ __weak CameraUpdateQueue *weakSelf = self;
69
+ __weak RCTMGLMapView *weakMap = mapView;
70
+
71
+ [item execute:mapView withCompletionHandler:^{ [weakSelf execute:weakMap]; }];
72
+ }
73
+
74
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // FilterParser.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 10/3/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+ #import <Foundation/Foundation.h>
9
+
10
+ @interface FilterParser : NSObject
11
+
12
+ + (NSPredicate*)parse:(NSArray *)filter;
13
+
14
+ @end
@@ -0,0 +1,22 @@
1
+ //
2
+ // FilterParser.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 10/3/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "FilterParser.h"
10
+ #import <Mapbox/Mapbox.h>
11
+
12
+ @implementation FilterParser
13
+
14
+ + (NSPredicate*)parse:(NSArray *)filterList
15
+ {
16
+ if (filterList == nil || filterList.count < 1) {
17
+ return nil;
18
+ }
19
+ return [NSPredicate predicateWithMGLJSONObject:filterList];
20
+ }
21
+
22
+ @end
@@ -0,0 +1,20 @@
1
+ //
2
+ // MGLCustomHeaders.h
3
+ // RCTMGL
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+
8
+ @interface NSMutableURLRequest (CustomHeaders)
9
+ @end
10
+
11
+ @interface MGLCustomHeaders : NSObject
12
+
13
+ @property (nonatomic, strong) NSMutableDictionary<NSString*, NSString*> *currentHeaders;
14
+
15
+ + (id)sharedInstance;
16
+ - (void)initHeaders;
17
+ - (void)addHeader:(NSString*)value forHeaderName:(NSString *)header;
18
+ - (void)removeHeader:(NSString *)header;
19
+
20
+ @end
@@ -0,0 +1,98 @@
1
+ //
2
+ // MGLCustomHeaders.h
3
+ // RCTMGL
4
+ //
5
+
6
+ #import <objc/runtime.h>
7
+
8
+ #import "MGLCustomHeaders.h"
9
+ #import <Mapbox/Mapbox.h>
10
+ #import <Mapbox/MGLNetworkConfiguration.h>
11
+
12
+ @implementation NSMutableURLRequest (CustomHeaders)
13
+
14
+ +(NSMutableURLRequest*) __swizzle_requestWithURL:(NSURL*)url {
15
+ if([url.scheme isEqualToString:@"ws"]) {
16
+ return [NSMutableURLRequest __swizzle_requestWithURL:url];
17
+ }
18
+
19
+ NSArray<NSString*>* stack = [NSThread callStackSymbols];
20
+ if ([stack count] < 2) {
21
+ return [NSMutableURLRequest __swizzle_requestWithURL:url];
22
+ }
23
+
24
+ if ([stack[1] containsString:@"Mapbox"] == NO) {
25
+ return [NSMutableURLRequest __swizzle_requestWithURL:url];
26
+ }
27
+
28
+ NSMutableURLRequest *req = [NSMutableURLRequest __swizzle_requestWithURL:url];
29
+ NSDictionary<NSString*, NSString*> *currentHeaders = [[[MGLCustomHeaders sharedInstance] currentHeaders] copy];
30
+ if(currentHeaders != nil && [currentHeaders count]>0) {
31
+ for (NSString* headerName in currentHeaders) {
32
+ id headerValue = currentHeaders[headerName];
33
+ [req setValue:headerValue forHTTPHeaderField:headerName];
34
+ }
35
+ }
36
+ return req;
37
+ }
38
+
39
+ @end
40
+
41
+ @implementation MGLCustomHeaders {
42
+ NSMutableDictionary<NSString*, NSString*> *_currentHeaders;
43
+ BOOL areHeadersAdded;
44
+ }
45
+
46
+ + (id)sharedInstance
47
+ {
48
+ static MGLCustomHeaders *customHeaders;
49
+ static dispatch_once_t onceToken;
50
+ dispatch_once(&onceToken, ^{ customHeaders = [[self alloc] init]; });
51
+ return customHeaders;
52
+ }
53
+
54
+ // This replaces the [NSMutableURLRequest requestWithURL:] with custom implementation which
55
+ // adds runtime headers copied from [MGLCustomHeaders _currentHeaders]
56
+ -(void)initHeaders
57
+ {
58
+ if (!areHeadersAdded) {
59
+ areHeadersAdded = YES;
60
+ NSLog(@"Replace method [NSMutableURLRequest requestWithURL]");
61
+ static dispatch_once_t onceToken;
62
+ dispatch_once(&onceToken, ^{
63
+ Class targetClass = [NSMutableURLRequest class];
64
+ Method oldMethod = class_getClassMethod(targetClass, @selector(requestWithURL:));
65
+ Method newMethod = class_getClassMethod(targetClass, @selector(__swizzle_requestWithURL:));
66
+ method_exchangeImplementations(oldMethod, newMethod);
67
+ });
68
+ }
69
+ }
70
+
71
+ - (instancetype)init
72
+ {
73
+ if (self = [super init]) {
74
+ _currentHeaders = [[NSMutableDictionary alloc] init];
75
+ areHeadersAdded = NO;
76
+ }
77
+ return self;
78
+ }
79
+
80
+ - (void)addHeader:(NSString *)value forHeaderName:(NSString *)headerName {
81
+
82
+ if(!areHeadersAdded) {
83
+ areHeadersAdded = YES;
84
+ }
85
+
86
+ [_currentHeaders setObject:value forKey:headerName];
87
+ [[[MGLNetworkConfiguration sharedManager] sessionConfiguration] setHTTPAdditionalHeaders:_currentHeaders];
88
+ }
89
+
90
+ - (void)removeHeader:(NSString *)header {
91
+ if(!areHeadersAdded) {
92
+ return;
93
+ }
94
+
95
+ [_currentHeaders removeObjectForKey:header];
96
+ }
97
+
98
+ @end
@@ -0,0 +1,23 @@
1
+ //
2
+ // MGLFaux3DUserLocationAnnotationView.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 12/20/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ @import Mapbox;
11
+
12
+ extern const CGFloat MGLUserLocationAnnotationDotSize;
13
+ extern const CGFloat MGLUserLocationAnnotationHaloSize;
14
+
15
+ extern const CGFloat MGLUserLocationAnnotationPuckSize;
16
+ extern const CGFloat MGLUserLocationAnnotationArrowSize;
17
+
18
+ // Threshold in radians between heading indicator rotation updates.
19
+ extern const CGFloat MGLUserLocationHeadingUpdateThreshold;
20
+
21
+ @interface MGLFaux3DUserLocationAnnotationView : MGLUserLocationAnnotationView
22
+
23
+ @end