@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,536 @@
1
+ //
2
+ // RCTMGLMapView.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 8/23/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLMapView.h"
10
+ #import "CameraUpdateQueue.h"
11
+ #import "RCTMGLUtils.h"
12
+ #import "RNMBImageUtils.h"
13
+ #import "RCTMGLImages.h"
14
+ #import <React/UIView+React.h>
15
+ #import "RCTMGLNativeUserLocation.h"
16
+ #import "RCTMGLLogging.h"
17
+
18
+ @implementation RCTMGLMapView
19
+ {
20
+ BOOL _pendingInitialLayout;
21
+ }
22
+
23
+ static double const DEG2RAD = M_PI / 180;
24
+ static double const LAT_MAX = 85.051128779806604;
25
+ static double const TILE_SIZE = 256;
26
+ static double const EARTH_RADIUS_M = 6378137;
27
+ static double const M2PI = M_PI * 2;
28
+
29
+ - (instancetype)initWithFrame:(CGRect)frame
30
+ {
31
+ if (self = [super initWithFrame:frame]) {
32
+ _pendingInitialLayout = YES;
33
+ _cameraUpdateQueue = [[CameraUpdateQueue alloc] init];
34
+ _sources = [[NSMutableArray alloc] init];
35
+ _images = [[NSMutableArray alloc] init];
36
+ _layers = [[NSMutableArray alloc] init];
37
+ _pointAnnotations = [[NSMutableArray alloc] init];
38
+ _reactSubviews = [[NSMutableArray alloc] init];
39
+ _layerWaiters = [[NSMutableDictionary alloc] init];
40
+ _styleWaiters = [[NSMutableArray alloc] init];
41
+ _logging = [[RCTMGLLogging alloc] init];
42
+ }
43
+ return self;
44
+ }
45
+
46
+ - (void)layoutSubviews
47
+ {
48
+ [super layoutSubviews];
49
+ if (_pendingInitialLayout) {
50
+ _pendingInitialLayout = NO;
51
+
52
+ [ _reactCamera initialLayout];
53
+ }
54
+ }
55
+
56
+ - (void)invalidate
57
+ {
58
+ if (_reactSubviews.count == 0) {
59
+ return;
60
+ }
61
+ for (int i = 0; i < _reactSubviews.count; i++) {
62
+ [self removeFromMap:_reactSubviews[i]];
63
+ }
64
+ }
65
+
66
+ - (void)layerAdded:(MGLStyleLayer*) layer
67
+ {
68
+ NSString* layerID = layer.identifier;
69
+ NSMutableArray* waiters = [_layerWaiters valueForKey:layerID];
70
+ if (waiters) {
71
+ for (FoundLayerBlock foundLayerBlock in waiters) {
72
+ foundLayerBlock(layer);
73
+ }
74
+ [_layerWaiters removeObjectForKey:layerID];
75
+ }
76
+ }
77
+
78
+ - (void)waitForLayerWithID:(nonnull NSString*)layerID then:(void (^)(MGLStyleLayer* layer))foundLayer {
79
+ if (self.style) {
80
+ MGLStyleLayer* layer = [self.style layerWithIdentifier:layerID];
81
+ if (layer) {
82
+ foundLayer(layer);
83
+ } else {
84
+ NSMutableArray* existingWaiters = [_layerWaiters valueForKey:layerID];
85
+
86
+ NSMutableArray* waiters = existingWaiters;
87
+ if (waiters == nil) {
88
+ waiters = [[NSMutableArray alloc] init];
89
+ }
90
+ [waiters addObject:foundLayer];
91
+ if (! existingWaiters) {
92
+ [_layerWaiters setObject:waiters forKey:layerID];
93
+ }
94
+ }
95
+ } else {
96
+ // TODO
97
+ }
98
+ }
99
+
100
+ - (void)getStyle:(void (^)(MGLStyle* style))onStyleLoaded {
101
+ if (self.style) {
102
+ onStyleLoaded(self.style);
103
+ } else {
104
+ [_styleWaiters addObject:onStyleLoaded];
105
+ }
106
+ }
107
+
108
+ - (void)notifyStyleLoaded {
109
+ if (!self.style) return;
110
+ for (StyleLoadedBlock styleLoadedBlock in self.styleWaiters) {
111
+ styleLoadedBlock(self.style);
112
+ }
113
+ [self.styleWaiters removeAllObjects];
114
+ }
115
+
116
+
117
+ - (void) addToMap:(id<RCTComponent>)subview
118
+ {
119
+ if ([subview isKindOfClass:[RCTMGLSource class]]) {
120
+ RCTMGLSource *source = (RCTMGLSource*)subview;
121
+ source.map = self;
122
+ [_sources addObject:(RCTMGLSource*)subview];
123
+ } else if ([subview isKindOfClass:[RCTMGLLight class]]) {
124
+ RCTMGLLight *light = (RCTMGLLight*)subview;
125
+ _light = light;
126
+ _light.map = self;
127
+ } else if ([subview isKindOfClass:[RCTMGLNativeUserLocation class]]) {
128
+ RCTMGLNativeUserLocation *nativeUserLocation = (RCTMGLNativeUserLocation*)subview;
129
+ nativeUserLocation.map = self;
130
+ } else if ([subview isKindOfClass:[RCTMGLPointAnnotation class]]) {
131
+ RCTMGLPointAnnotation *pointAnnotation = (RCTMGLPointAnnotation *)subview;
132
+ pointAnnotation.map = self;
133
+ [_pointAnnotations addObject:pointAnnotation];
134
+ } else if ([subview isKindOfClass:[RCTMGLCamera class]]) {
135
+ RCTMGLCamera *camera = (RCTMGLCamera *)subview;
136
+ camera.map = self;
137
+ } else if ([subview isKindOfClass:[RCTMGLImages class]]) {
138
+ RCTMGLImages *images = (RCTMGLImages*)subview;
139
+ images.map = self;
140
+ [_images addObject:images];
141
+ } else if ([subview isKindOfClass:[RCTMGLLayer class]]) {
142
+ RCTMGLLayer *layer = (RCTMGLLayer*)subview;
143
+ layer.map = self;
144
+ [_layers addObject:layer];
145
+ } else {
146
+ NSArray<id<RCTComponent>> *childSubviews = [subview reactSubviews];
147
+
148
+ for (int i = 0; i < childSubviews.count; i++) {
149
+ [self addToMap:childSubviews[i]];
150
+ }
151
+ }
152
+ }
153
+
154
+ - (void) removeFromMap:(id<RCTComponent>)subview
155
+ {
156
+ if ([subview isKindOfClass:[RCTMGLSource class]]) {
157
+ RCTMGLSource *source = (RCTMGLSource*)subview;
158
+ source.map = nil;
159
+ [_sources removeObject:source];
160
+ } else if ([subview isKindOfClass:[RCTMGLPointAnnotation class]]) {
161
+ RCTMGLPointAnnotation *pointAnnotation = (RCTMGLPointAnnotation *)subview;
162
+ pointAnnotation.map = nil;
163
+ [_pointAnnotations removeObject:pointAnnotation];
164
+ } else if ([subview isKindOfClass:[RCTMGLCamera class]]) {
165
+ RCTMGLCamera *camera = (RCTMGLCamera *)subview;
166
+ camera.map = nil;
167
+ } else if ([subview isKindOfClass:[RCTMGLImages class]]) {
168
+ RCTMGLImages *images = (RCTMGLImages*)subview;
169
+ images.map = nil;
170
+ [_images removeObject:images];
171
+ } else if ([subview isKindOfClass:[RCTMGLLayer class]]) {
172
+ RCTMGLLayer *layer = (RCTMGLLayer*)subview;
173
+ layer.map = nil;
174
+ [_layers removeObject:layer];
175
+ } else if ([subview isKindOfClass:[RCTMGLNativeUserLocation class]]) {
176
+ RCTMGLNativeUserLocation *nativeUserLocation = (RCTMGLNativeUserLocation *)subview;
177
+ nativeUserLocation.map = nil;
178
+ } else if ([subview isKindOfClass:[RCTMGLLight class]]) {
179
+ RCTMGLLight *light = (RCTMGLLight*)subview;
180
+ light.map = nil;
181
+ } else {
182
+ NSArray<id<RCTComponent>> *childSubViews = [subview reactSubviews];
183
+
184
+ for (int i = 0; i < childSubViews.count; i++) {
185
+ [self removeFromMap:childSubViews[i]];
186
+ }
187
+ }
188
+ if ([_layerWaiters count] > 0) {
189
+ RCTLogWarn(@"The following layers were waited on but never added to the map: %@", [_layerWaiters allKeys]);
190
+ [_layerWaiters removeAllObjects];
191
+ }
192
+ }
193
+
194
+ - (void)setSourceVisibility:(BOOL)visible sourceId:(NSString *)sourceId sourceLayerId:(NSString *)sourceLayerId {
195
+ __weak typeof(self) weakSelf = self;
196
+ [self getStyle:^(MGLStyle *style) {
197
+ __strong typeof(self) strongSelf = weakSelf;
198
+ for (MGLStyleLayer *layer in strongSelf.style.layers) {
199
+ if ([layer isKindOfClass:[MGLForegroundStyleLayer class]]) {
200
+ MGLForegroundStyleLayer *foregroundLayer = (MGLForegroundStyleLayer*)layer;
201
+ if (![foregroundLayer.sourceIdentifier isEqualToString:sourceId]) continue;
202
+ if (sourceLayerId == nil || sourceLayerId.length == 0) {
203
+ layer.visible = visible;
204
+ } else if ([layer isKindOfClass:[MGLVectorStyleLayer class]]) {
205
+ MGLVectorStyleLayer *vectorLayer = (MGLVectorStyleLayer*)layer;
206
+ if ([vectorLayer.sourceLayerIdentifier isEqualToString:sourceLayerId]) {
207
+ layer.visible = visible;
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }];
213
+ }
214
+
215
+ #pragma clang diagnostic push
216
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
217
+ - (void)insertReactSubview:(id<RCTComponent>)subview atIndex:(NSInteger)atIndex {
218
+ [self addToMap:subview];
219
+ [_reactSubviews insertObject:(UIView *)subview atIndex:(NSUInteger) atIndex];
220
+ }
221
+ #pragma clang diagnostic pop
222
+
223
+ #pragma clang diagnostic push
224
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
225
+ - (void)removeReactSubview:(id<RCTComponent>)subview {
226
+ // similarly, when the children are being removed we have to do the appropriate
227
+ // underlying mapview action here.
228
+ [self removeFromMap:subview];
229
+ [_reactSubviews removeObject:(UIView *)subview];
230
+ [(UIView *)subview removeFromSuperview];
231
+ }
232
+ #pragma clang diagnostic pop
233
+
234
+ #pragma clang diagnostic push
235
+ #pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
236
+ - (NSArray<id<RCTComponent>> *)reactSubviews {
237
+ return _reactSubviews;
238
+ }
239
+ #pragma clang diagnostic pop
240
+
241
+ - (void)setReactZoomEnabled:(BOOL)reactZoomEnabled
242
+ {
243
+ _reactZoomEnabled = reactZoomEnabled;
244
+ self.zoomEnabled = _reactZoomEnabled;
245
+ }
246
+
247
+ - (void)setReactScrollEnabled:(BOOL)reactScrollEnabled
248
+ {
249
+ _reactScrollEnabled = reactScrollEnabled;
250
+ self.scrollEnabled = _reactScrollEnabled;
251
+ }
252
+
253
+ - (void)setReactPitchEnabled:(BOOL)reactPitchEnabled
254
+ {
255
+ _reactPitchEnabled = reactPitchEnabled;
256
+ self.pitchEnabled = _reactPitchEnabled;
257
+ }
258
+
259
+ - (void)setReactRotateEnabled:(BOOL)reactRotateEnabled
260
+ {
261
+ _reactRotateEnabled = reactRotateEnabled;
262
+ self.rotateEnabled = _reactRotateEnabled;
263
+ }
264
+
265
+ - (void)setReactAttributionEnabled:(BOOL)reactAttributionEnabled
266
+ {
267
+ _reactAttributionEnabled = reactAttributionEnabled;
268
+ self.attributionButton.hidden = !_reactAttributionEnabled;
269
+
270
+ }
271
+
272
+ - (void)setReactAttributionPosition:(NSDictionary<NSString *,NSNumber *> *)position
273
+ {
274
+ NSNumber *left = [position valueForKey:@"left"];
275
+ NSNumber *right = [position valueForKey:@"right"];
276
+ NSNumber *top = [position valueForKey:@"top"];
277
+ NSNumber *bottom = [position valueForKey:@"bottom"];
278
+ if (left != nil && top != nil) {
279
+ [self setAttributionButtonPosition:MGLOrnamentPositionTopLeft];
280
+ [self setAttributionButtonMargins:CGPointMake([left floatValue], [top floatValue])];
281
+ } else if (right != nil && top != nil) {
282
+ [self setAttributionButtonPosition:MGLOrnamentPositionTopRight];
283
+ [self setAttributionButtonMargins:CGPointMake([right floatValue], [top floatValue])];
284
+ } else if (bottom != nil && right != nil) {
285
+ [self setAttributionButtonPosition:MGLOrnamentPositionBottomRight];
286
+ [self setAttributionButtonMargins:CGPointMake([right floatValue], [bottom floatValue])];
287
+ } else if (bottom != nil && left != nil) {
288
+ [self setAttributionButtonPosition:MGLOrnamentPositionBottomLeft];
289
+ [self setAttributionButtonMargins:CGPointMake([left floatValue], [bottom floatValue])];
290
+ } else {
291
+ [self setAttributionButtonPosition:MGLOrnamentPositionBottomRight];
292
+ // same as MGLOrnamentDefaultPositionOffset in MGLMapView.mm
293
+ [self setAttributionButtonMargins:CGPointMake(8, 8)];
294
+ }
295
+
296
+ }
297
+
298
+ - (void)setReactLogoEnabled:(BOOL)reactLogoEnabled
299
+ {
300
+ _reactLogoEnabled = reactLogoEnabled;
301
+ self.logoView.hidden = !_reactLogoEnabled;
302
+ }
303
+
304
+ - (void)setReactLogoPosition:(NSDictionary<NSString *,NSNumber *> *)logoPosition
305
+ {
306
+ NSNumber *left = [logoPosition valueForKey:@"left"];
307
+ NSNumber *right = [logoPosition valueForKey:@"right"];
308
+ NSNumber *top = [logoPosition valueForKey:@"top"];
309
+ NSNumber *bottom = [logoPosition valueForKey:@"bottom"];
310
+ if (left != nil && top != nil) {
311
+ [self setLogoViewPosition:MGLOrnamentPositionTopLeft];
312
+ [self setLogoViewMargins:CGPointMake([left floatValue], [top floatValue])];
313
+ } else if (right != nil && top != nil) {
314
+ [self setLogoViewPosition:MGLOrnamentPositionTopRight];
315
+ [self setLogoViewMargins:CGPointMake([right floatValue], [top floatValue])];
316
+ } else if (bottom != nil && right != nil) {
317
+ [self setLogoViewPosition:MGLOrnamentPositionBottomRight];
318
+ [self setLogoViewMargins:CGPointMake([right floatValue], [bottom floatValue])];
319
+ } else if (bottom != nil && left != nil) {
320
+ [self setLogoViewPosition:MGLOrnamentPositionBottomLeft];
321
+ [self setLogoViewMargins:CGPointMake([left floatValue], [bottom floatValue])];
322
+ } else {
323
+ [self setLogoViewPosition:MGLOrnamentPositionBottomRight];
324
+ [self setLogoViewMargins:CGPointMake(8, 8)];
325
+ }
326
+
327
+ }
328
+
329
+ - (void)setReactCompassEnabled:(BOOL)reactCompassEnabled
330
+ {
331
+ _reactCompassEnabled = reactCompassEnabled;
332
+ self.compassView.hidden = !_reactCompassEnabled;
333
+ }
334
+
335
+ - (void)setReactCompassViewPosition:(NSInteger *)reactCompassViewPosition
336
+ {
337
+ if(!self.compassView.hidden)
338
+ {
339
+ _reactCompassViewPosition = reactCompassViewPosition;
340
+ self.compassViewPosition = _reactCompassViewPosition;
341
+ }
342
+ }
343
+
344
+ - (void)setReactCompassViewMargins:(CGPoint)reactCompassViewMargins
345
+ {
346
+ if(!self.compassView.hidden)
347
+ {
348
+ CGPoint point;
349
+ point = reactCompassViewMargins;
350
+ self.compassViewMargins = point;
351
+ }
352
+ }
353
+
354
+ - (void)setReactShowUserLocation:(BOOL)reactShowUserLocation
355
+ {
356
+ // FMTODO
357
+ //_reactShowUserLocation = reactShowUserLocation;
358
+ self.showsUserLocation = reactShowUserLocation; //_reactShowUserLocation;
359
+ }
360
+
361
+ - (void)setReactContentInset:(NSArray<NSNumber *> *)reactContentInset
362
+ {
363
+ CGFloat top = 0.0f, right = 0.0f, left = 0.0f, bottom = 0.0f;
364
+
365
+ if (reactContentInset.count == 4) {
366
+ top = [reactContentInset[0] floatValue];
367
+ right = [reactContentInset[1] floatValue];
368
+ bottom = [reactContentInset[2] floatValue];
369
+ left = [reactContentInset[3] floatValue];
370
+ } else if (reactContentInset.count == 2) {
371
+ top = [reactContentInset[0] floatValue];
372
+ right = [reactContentInset[1] floatValue];
373
+ bottom = [reactContentInset[0] floatValue];
374
+ left = [reactContentInset[1] floatValue];
375
+ } else if (reactContentInset.count == 1) {
376
+ top = [reactContentInset[0] floatValue];
377
+ right = [reactContentInset[0] floatValue];
378
+ bottom = [reactContentInset[0] floatValue];
379
+ left = [reactContentInset[0] floatValue];
380
+ }
381
+
382
+ self.contentInset = UIEdgeInsetsMake(top, left, bottom, right);
383
+ }
384
+
385
+ - (void)setReactStyleURL:(NSString *)reactStyleURL
386
+ {
387
+ _reactStyleURL = reactStyleURL;
388
+ [self _removeAllSourcesFromMap];
389
+ self.styleURL = [self _getStyleURLFromKey:_reactStyleURL];
390
+ }
391
+
392
+ - (void)setReactPreferredFramesPerSecond:(NSInteger)reactPreferredFramesPerSecond
393
+ {
394
+ self.preferredFramesPerSecond = reactPreferredFramesPerSecond;
395
+ }
396
+
397
+
398
+ #pragma mark - methods
399
+
400
+ - (NSString *)takeSnap:(BOOL)writeToDisk
401
+ {
402
+ UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0);
403
+ [self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
404
+ UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
405
+ UIGraphicsEndImageContext();
406
+ return writeToDisk ? [RNMBImageUtils createTempFile:snapshot] : [RNMBImageUtils createBase64:snapshot];
407
+ }
408
+
409
+ - (CLLocationDistance)getMetersPerPixelAtLatitude:(double)latitude withZoom:(double)zoomLevel
410
+ {
411
+ double constrainedZoom = [[RCTMGLUtils clamp:[NSNumber numberWithDouble:zoomLevel]
412
+ min:[NSNumber numberWithDouble:self.minimumZoomLevel]
413
+ max:[NSNumber numberWithDouble:self.maximumZoomLevel]] doubleValue];
414
+
415
+ double constrainedLatitude = [[RCTMGLUtils clamp:[NSNumber numberWithDouble:latitude]
416
+ min:[NSNumber numberWithDouble:-LAT_MAX]
417
+ max:[NSNumber numberWithDouble:LAT_MAX]] doubleValue];
418
+
419
+ double constrainedScale = pow(2.0, constrainedZoom);
420
+ return cos(constrainedLatitude * DEG2RAD) * M2PI * EARTH_RADIUS_M / (constrainedScale * TILE_SIZE);
421
+ }
422
+
423
+ - (CLLocationDistance)altitudeFromZoom:(double)zoomLevel
424
+ {
425
+ return [self altitudeFromZoom:zoomLevel atLatitude:self.camera.centerCoordinate.latitude];
426
+ }
427
+
428
+ - (CLLocationDistance)altitudeFromZoom:(double)zoomLevel atLatitude:(CLLocationDegrees)latitude
429
+ {
430
+ return [self altitudeFromZoom:zoomLevel atLatitude:latitude atPitch:self.camera.pitch];
431
+ }
432
+
433
+ - (CLLocationDistance)altitudeFromZoom:(double)zoomLevel atLatitude:(CLLocationDegrees)latitude atPitch:(CGFloat)pitch
434
+ {
435
+ return MGLAltitudeForZoomLevel(zoomLevel, pitch, latitude, self.frame.size);
436
+ }
437
+
438
+ - (RCTMGLPointAnnotation*)getRCTPointAnnotation:(MGLPointAnnotation *)mglAnnotation
439
+ {
440
+ for (int i = 0; i < _pointAnnotations.count; i++) {
441
+ RCTMGLPointAnnotation *rctAnnotation = _pointAnnotations[i];
442
+ if (rctAnnotation.annotation == mglAnnotation) {
443
+ return rctAnnotation;
444
+ }
445
+ }
446
+ return nil;
447
+ }
448
+
449
+ - (NSArray<RCTMGLSource *> *)getAllTouchableSources
450
+ {
451
+ NSMutableArray<RCTMGLSource *> *touchableSources = [[NSMutableArray alloc] init];
452
+
453
+ for (RCTMGLSource *source in _sources) {
454
+ if (source.hasPressListener) {
455
+ [touchableSources addObject:source];
456
+ }
457
+ }
458
+
459
+ return touchableSources;
460
+ }
461
+
462
+ - (NSArray<RCTMGLImages*>*)getAllImages
463
+ {
464
+ return [_images copy];
465
+ }
466
+
467
+ - (NSArray<RCTMGLShapeSource *> *)getAllShapeSources
468
+ {
469
+ NSMutableArray<RCTMGLSource *> *shapeSources = [[NSMutableArray alloc] init];
470
+
471
+ for (RCTMGLSource *source in _sources) {
472
+ if ([source isKindOfClass:[RCTMGLShapeSource class]]) {
473
+ [shapeSources addObject:source];
474
+ }
475
+ }
476
+
477
+ return shapeSources;
478
+ }
479
+ - (RCTMGLSource *)getTouchableSourceWithHighestZIndex:(NSArray<RCTMGLSource *> *)touchableSources
480
+ {
481
+ if (touchableSources == nil || touchableSources.count == 0) {
482
+ return nil;
483
+ }
484
+
485
+ if (touchableSources.count == 1) {
486
+ return touchableSources[0];
487
+ }
488
+
489
+ NSMutableDictionary<NSString *, RCTMGLSource *> *layerToSoureDict = [[NSMutableDictionary alloc] init];
490
+ for (RCTMGLSource *touchableSource in touchableSources) {
491
+ NSArray<NSString *> *layerIDs = [touchableSource getLayerIDs];
492
+
493
+ for (NSString *layerID in layerIDs) {
494
+ layerToSoureDict[layerID] = touchableSource;
495
+ }
496
+ }
497
+
498
+ NSArray<MGLStyleLayer *> *layers = self.style.layers;
499
+ for (int i = (int)layers.count - 1; i >= 0; i--) {
500
+ MGLStyleLayer *layer = layers[i];
501
+
502
+ RCTMGLSource *source = layerToSoureDict[layer.identifier];
503
+ if (source != nil) {
504
+ return source;
505
+ }
506
+ }
507
+
508
+ return nil;
509
+ }
510
+
511
+ - (NSURL*)_getStyleURLFromKey:(NSString *)styleURL
512
+ {
513
+ NSURL *url = [NSURL URLWithString:styleURL];
514
+ if (url) {
515
+ return url;
516
+ } else if (RCTJSONParse(styleURL, nil)) {
517
+ return [RCTMGLUtils styleURLFromStyleJSON:styleURL];
518
+ }
519
+ return url;
520
+ }
521
+
522
+ - (void)_removeAllSourcesFromMap
523
+ {
524
+ if (self.style == nil || _sources.count == 0) {
525
+ return;
526
+ }
527
+ for (RCTMGLSource *source in _sources) {
528
+ source.map = nil;
529
+ }
530
+ }
531
+
532
+ - (void)didChangeUserTrackingMode:(MGLUserTrackingMode)mode animated:(BOOL)animated {
533
+ [_reactCamera didChangeUserTrackingMode:mode animated:animated];
534
+ }
535
+
536
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // RCTMGLMapViewManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 8/23/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+ @import Mapbox;
11
+
12
+ @interface RCTMGLMapViewManager : ViewManager
13
+
14
+ - (void)didTapMap:(UITapGestureRecognizer *)recognizer;
15
+ - (void)didLongPressMap:(UILongPressGestureRecognizer *)recognizer;
16
+
17
+ @end