@maplibre/maplibre-react-native 10.0.0-alpha.2 → 10.0.0-alpha.21

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 (400) hide show
  1. package/.sonarcloud.properties +1 -1
  2. package/CHANGELOG.md +141 -50
  3. package/CONTRIBUTING.md +10 -9
  4. package/README.md +1 -1
  5. package/android/build.gradle +1 -1
  6. package/android/rctmln/.settings/org.eclipse.buildship.core.prefs +2 -0
  7. package/android/{rctmgl → rctmln}/build.gradle +5 -5
  8. package/android/{rctmgl → rctmln}/src/main/AndroidManifest.xml +1 -1
  9. package/android/rctmln/src/main/java/com/maplibre/rctmln/RCTMLNPackage.java +99 -0
  10. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEvent.java +1 -1
  11. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEventEmitter.java +2 -2
  12. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractMapFeature.java +4 -4
  13. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerView.java +3 -3
  14. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerViewManager.java +12 -10
  15. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java} +3 -3
  16. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +22 -0
  17. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java} +18 -18
  18. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java} +10 -10
  19. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java} +27 -26
  20. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java} +14 -14
  21. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraStop.java +21 -19
  22. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateItem.java +12 -12
  23. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateQueue.java +4 -4
  24. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java} +50 -50
  25. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java} +19 -19
  26. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/constants/CameraMode.java +1 -1
  27. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java} +27 -27
  28. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java} +17 -17
  29. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/location/LocationComponentManager.java +25 -16
  30. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java} +25 -15
  31. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java} +12 -7
  32. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/LayerSourceInfo.java +10 -10
  33. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +16 -0
  34. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +31 -0
  35. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java} +171 -171
  36. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java} +46 -46
  37. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/helpers/CameraChangeTracker.java +1 -1
  38. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java} +12 -12
  39. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java} +434 -423
  40. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java} +8 -9
  41. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java} +9 -9
  42. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/layers/RCTLayer.java +17 -17
  43. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +27 -0
  44. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java} +13 -13
  45. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java} +10 -10
  46. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java} +15 -15
  47. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java} +10 -10
  48. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java} +16 -16
  49. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java} +10 -10
  50. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java} +16 -16
  51. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java} +10 -10
  52. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java} +15 -15
  53. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java} +10 -10
  54. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java} +17 -17
  55. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +27 -0
  56. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java} +13 -13
  57. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java} +10 -10
  58. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java} +15 -15
  59. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java} +16 -16
  60. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java} +6 -6
  61. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java} +7 -7
  62. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java} +15 -15
  63. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java} +6 -6
  64. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java} +7 -7
  65. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java} +22 -22
  66. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java} +35 -35
  67. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java} +5 -5
  68. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java} +4 -4
  69. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java} +10 -10
  70. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java} +12 -12
  71. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/sources/RCTSource.java +14 -14
  72. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AbstractEvent.java +1 -1
  73. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AndroidCallbackEvent.java +2 -2
  74. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/EventEmitter.java +1 -1
  75. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/FeatureClickEvent.java +8 -8
  76. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/IEvent.java +1 -1
  77. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/ImageMissingEvent.java +3 -3
  78. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/LocationEvent.java +6 -6
  79. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapChangeEvent.java +3 -3
  80. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapClickEvent.java +5 -5
  81. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapUserTrackingModeEvent.java +4 -4
  82. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/OfflineEvent.java +1 -1
  83. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationClickEvent.java +10 -10
  84. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationDragEvent.java +10 -10
  85. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventKeys.java +1 -1
  86. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventTypes.java +1 -1
  87. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/http/CustomHeadersInterceptor.java +1 -1
  88. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/LocationManager.java +7 -7
  89. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocation.java +2 -2
  90. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocationVerticalAlignment.java +1 -1
  91. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingMode.java +4 -4
  92. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingState.java +1 -1
  93. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java} +11 -11
  94. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java} +7 -7
  95. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java} +30 -30
  96. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java} +21 -21
  97. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java} +14 -14
  98. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/BitmapUtils.java +1 -1
  99. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ClusterPropertyEntry.java +2 -2
  100. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ConvertUtils.java +1 -1
  101. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/DownloadMapImageTask.java +6 -6
  102. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ExpressionParser.java +3 -3
  103. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoJSONUtils.java +14 -14
  104. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoViewport.java +4 -4
  105. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ImageEntry.java +1 -1
  106. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ResourceUtils.java +1 -1
  107. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SimpleEventCallback.java +5 -5
  108. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SphericalMercator.java +2 -2
  109. package/android/rctmln/src/main/res/values/strings.xml +3 -0
  110. package/android/settings.gradle +1 -1
  111. package/docs/Annotations.md +1 -1
  112. package/docs/Callout.md +1 -1
  113. package/docs/Camera.md +4 -4
  114. package/docs/CustomHttpHeaders.md +4 -4
  115. package/docs/FillExtrusionLayer.md +19 -0
  116. package/docs/MapView.md +12 -36
  117. package/docs/MarkerView.md +1 -1
  118. package/docs/NativeUserLocation.md +2 -1
  119. package/docs/PointAnnotation.md +2 -2
  120. package/docs/RasterLayer.md +1 -1
  121. package/docs/SymbolLayer.md +7 -5
  122. package/docs/UserLocation.md +13 -4
  123. package/docs/docs.json +79 -52
  124. package/docs/offlineManager.md +246 -0
  125. package/ios/{RCTMGL → RCTMLN}/CameraMode.h +1 -1
  126. package/ios/{RCTMGL → RCTMLN}/CameraMode.m +1 -1
  127. package/ios/{RCTMGL → RCTMLN}/CameraStop.h +4 -4
  128. package/ios/{RCTMGL → RCTMLN}/CameraStop.m +7 -7
  129. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.h +3 -3
  130. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.m +19 -19
  131. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.h +3 -3
  132. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.m +3 -3
  133. package/ios/{RCTMGL → RCTMLN}/FilterParser.h +1 -1
  134. package/ios/{RCTMGL → RCTMLN}/FilterParser.m +3 -3
  135. package/ios/{RCTMGL/MGLCustomHeaders.h → RCTMLN/MLNCustomHeaders.h} +3 -3
  136. package/ios/{RCTMGL/MGLCustomHeaders.m → RCTMLN/MLNCustomHeaders.m} +11 -11
  137. package/ios/RCTMLN/MLNFaux3DUserLocationAnnotationView.h +23 -0
  138. package/ios/{RCTMGL/MGLFaux3DUserLocationAnnotationView.m → RCTMLN/MLNFaux3DUserLocationAnnotationView.m} +38 -38
  139. package/ios/{RCTMGL/MGLModule.h → RCTMLN/MLNModule.h} +3 -3
  140. package/ios/{RCTMGL/MGLModule.m → RCTMLN/MLNModule.m} +91 -91
  141. package/ios/{RCTMGL/MGLOfflineModule.h → RCTMLN/MLNOfflineModule.h} +4 -4
  142. package/ios/{RCTMGL/MGLOfflineModule.m → RCTMLN/MLNOfflineModule.m} +120 -99
  143. package/ios/{RCTMGL/MGLSnapshotModule.h → RCTMLN/MLNSnapshotModule.h} +3 -3
  144. package/ios/{RCTMGL/MGLSnapshotModule.m → RCTMLN/MLNSnapshotModule.m} +14 -14
  145. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.h → RCTMLN/MLNUserLocationHeadingArrowLayer.h} +4 -4
  146. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.m → RCTMLN/MLNUserLocationHeadingArrowLayer.m} +7 -7
  147. package/ios/RCTMLN/MLNUserLocationHeadingBeamLayer.h +11 -0
  148. package/ios/{RCTMGL/MGLUserLocationHeadingBeamLayer.m → RCTMLN/MLNUserLocationHeadingBeamLayer.m} +10 -10
  149. package/ios/{RCTMGL/MGLUserLocationHeadingIndicator.h → RCTMLN/MLNUserLocationHeadingIndicator.h} +3 -3
  150. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.h +1 -1
  151. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.m +1 -1
  152. package/ios/{RCTMGL/RCTMGL.h → RCTMLN/RCTMLN.h} +3 -3
  153. package/ios/{RCTMGL/RCTMGL.m → RCTMLN/RCTMLN.m} +4 -4
  154. package/ios/RCTMLN/RCTMLNBackgroundLayer.h +14 -0
  155. package/ios/RCTMLN/RCTMLNBackgroundLayer.m +27 -0
  156. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.h → RCTMLN/RCTMLNBackgroundLayerManager.h} +3 -3
  157. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.m → RCTMLN/RCTMLNBackgroundLayerManager.m} +6 -6
  158. package/ios/{RCTMGL/RCTMGLCallout.h → RCTMLN/RCTMLNCallout.h} +4 -4
  159. package/ios/{RCTMGL/RCTMGLCallout.m → RCTMLN/RCTMLNCallout.m} +6 -6
  160. package/ios/{RCTMGL/RCTMGLCalloutManager.h → RCTMLN/RCTMLNCalloutManager.h} +3 -3
  161. package/ios/RCTMLN/RCTMLNCalloutManager.m +21 -0
  162. package/ios/{RCTMGL/RCTMGLCamera.h → RCTMLN/RCTMLNCamera.h} +6 -6
  163. package/ios/{RCTMGL/RCTMGLCamera.m → RCTMLN/RCTMLNCamera.m} +30 -30
  164. package/ios/{RCTMGL/RCTMGLCameraManager.h → RCTMLN/RCTMLNCameraManager.h} +3 -3
  165. package/ios/{RCTMGL/RCTMGLCameraManager.m → RCTMLN/RCTMLNCameraManager.m} +7 -7
  166. package/ios/RCTMLN/RCTMLNCircleLayer.h +13 -0
  167. package/ios/{RCTMGL/RCTMGLCircleLayer.m → RCTMLN/RCTMLNCircleLayer.m} +10 -10
  168. package/ios/{RCTMGL/RCTMGLCircleLayerManager.h → RCTMLN/RCTMLNCircleLayerManager.h} +3 -3
  169. package/ios/{RCTMGL/RCTMGLCircleLayerManager.m → RCTMLN/RCTMLNCircleLayerManager.m} +6 -6
  170. package/ios/{RCTMGL/RCTMGLEvent.h → RCTMLN/RCTMLNEvent.h} +6 -6
  171. package/ios/{RCTMGL/RCTMGLEvent.m → RCTMLN/RCTMLNEvent.m} +8 -8
  172. package/ios/{RCTMGL/RCTMGLEventProtocol.h → RCTMLN/RCTMLNEventProtocol.h} +3 -3
  173. package/ios/{RCTMGL/RCTMGLEventTypes.h → RCTMLN/RCTMLNEventTypes.h} +3 -3
  174. package/ios/{RCTMGL/RCTMGLEventTypes.m → RCTMLN/RCTMLNEventTypes.m} +4 -4
  175. package/ios/RCTMLN/RCTMLNFillExtrusionLayer.h +14 -0
  176. package/ios/{RCTMGL/RCTMGLFillExtrusionLayer.m → RCTMLN/RCTMLNFillExtrusionLayer.m} +10 -10
  177. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.h → RCTMLN/RCTMLNFillExtrusionLayerManager.h} +3 -3
  178. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.m → RCTMLN/RCTMLNFillExtrusionLayerManager.m} +6 -6
  179. package/ios/RCTMLN/RCTMLNFillLayer.h +14 -0
  180. package/ios/{RCTMGL/RCTMGLFillLayer.m → RCTMLN/RCTMLNFillLayer.m} +10 -10
  181. package/ios/{RCTMGL/RCTMGLFillLayerManager.h → RCTMLN/RCTMLNFillLayerManager.h} +3 -3
  182. package/ios/{RCTMGL/RCTMGLFillLayerManager.m → RCTMLN/RCTMLNFillLayerManager.m} +6 -6
  183. package/ios/RCTMLN/RCTMLNHeatmapLayer.h +12 -0
  184. package/ios/RCTMLN/RCTMLNHeatmapLayer.m +30 -0
  185. package/ios/RCTMLN/RCTMLNHeatmapLayerManager.h +12 -0
  186. package/ios/{RCTMGL/RCTMGLHeatmapLayerManager.m → RCTMLN/RCTMLNHeatmapLayerManager.m} +6 -6
  187. package/ios/{RCTMGL/RCTMGLImageQueue.h → RCTMLN/RCTMLNImageQueue.h} +3 -3
  188. package/ios/{RCTMGL/RCTMGLImageQueue.m → RCTMLN/RCTMLNImageQueue.m} +10 -10
  189. package/ios/{RCTMGL/RCTMGLImageQueueOperation.h → RCTMLN/RCTMLNImageQueueOperation.h} +3 -3
  190. package/ios/{RCTMGL/RCTMGLImageQueueOperation.m → RCTMLN/RCTMLNImageQueueOperation.m} +12 -12
  191. package/ios/{RCTMGL/RCTMGLImageSource.h → RCTMLN/RCTMLNImageSource.h} +4 -4
  192. package/ios/{RCTMGL/RCTMGLImageSource.m → RCTMLN/RCTMLNImageSource.m} +11 -11
  193. package/ios/{RCTMGL/RCTMGLImageSourceManager.h → RCTMLN/RCTMLNImageSourceManager.h} +3 -3
  194. package/ios/{RCTMGL/RCTMGLImageSourceManager.m → RCTMLN/RCTMLNImageSourceManager.m} +6 -6
  195. package/ios/{RCTMGL/RCTMGLImages.h → RCTMLN/RCTMLNImages.h} +4 -4
  196. package/ios/{RCTMGL/RCTMGLImages.m → RCTMLN/RCTMLNImages.m} +10 -10
  197. package/ios/RCTMLN/RCTMLNImagesManager.h +5 -0
  198. package/ios/{RCTMGL/RCTMGLImagesManager.m → RCTMLN/RCTMLNImagesManager.m} +4 -4
  199. package/ios/{RCTMGL/RCTMGLLayer.h → RCTMLN/RCTMLNLayer.h} +11 -11
  200. package/ios/{RCTMGL/RCTMGLLayer.m → RCTMLN/RCTMLNLayer.m} +17 -17
  201. package/ios/{RCTMGL/RCTMGLLight.h → RCTMLN/RCTMLNLight.h} +5 -5
  202. package/ios/{RCTMGL/RCTMGLLight.m → RCTMLN/RCTMLNLight.m} +9 -9
  203. package/ios/{RCTMGL/RCTMGLLightManager.h → RCTMLN/RCTMLNLightManager.h} +3 -3
  204. package/ios/{RCTMGL/RCTMGLLightManager.m → RCTMLN/RCTMLNLightManager.m} +6 -6
  205. package/ios/RCTMLN/RCTMLNLineLayer.h +14 -0
  206. package/ios/{RCTMGL/RCTMGLLineLayer.m → RCTMLN/RCTMLNLineLayer.m} +10 -10
  207. package/ios/{RCTMGL/RCTMGLLineLayerManager.h → RCTMLN/RCTMLNLineLayerManager.h} +3 -3
  208. package/ios/{RCTMGL/RCTMGLLineLayerManager.m → RCTMLN/RCTMLNLineLayerManager.m} +6 -6
  209. package/ios/{RCTMGL/RCTMGLLocation.h → RCTMLN/RCTMLNLocation.h} +3 -3
  210. package/ios/{RCTMGL/RCTMGLLocation.m → RCTMLN/RCTMLNLocation.m} +4 -4
  211. package/ios/RCTMLN/RCTMLNLocationManager.h +30 -0
  212. package/ios/{RCTMGL/RCTMGLLocationManager.m → RCTMLN/RCTMLNLocationManager.m} +16 -16
  213. package/ios/RCTMLN/RCTMLNLocationManagerDelegate.h +20 -0
  214. package/ios/{RCTMGL/RCTMGLLocationModule.h → RCTMLN/RCTMLNLocationModule.h} +3 -3
  215. package/ios/{RCTMGL/RCTMGLLocationModule.m → RCTMLN/RCTMLNLocationModule.m} +13 -13
  216. package/ios/RCTMLN/RCTMLNLogging.h +18 -0
  217. package/ios/{RCTMGL/RCTMGLLogging.m → RCTMLN/RCTMLNLogging.m} +29 -29
  218. package/ios/{RCTMGL/RCTMGLMapTouchEvent.h → RCTMLN/RCTMLNMapTouchEvent.h} +10 -10
  219. package/ios/{RCTMGL/RCTMGLMapTouchEvent.m → RCTMLN/RCTMLNMapTouchEvent.m} +18 -18
  220. package/ios/{RCTMGL/RCTMGLMapView.h → RCTMLN/RCTMLNMapView.h} +30 -30
  221. package/ios/{RCTMGL/RCTMGLMapView.m → RCTMLN/RCTMLNMapView.m} +82 -82
  222. package/ios/{RCTMGL/RCTMGLMapViewManager.h → RCTMLN/RCTMLNMapViewManager.h} +4 -4
  223. package/ios/{RCTMGL/RCTMGLMapViewManager.m → RCTMLN/RCTMLNMapViewManager.m} +117 -117
  224. package/ios/{RCTMGL/RCTMGLNativeUserLocation.h → RCTMLN/RCTMLNNativeUserLocation.h} +5 -5
  225. package/ios/{RCTMGL/RCTMGLNativeUserLocation.m → RCTMLN/RCTMLNNativeUserLocation.m} +10 -10
  226. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.h +5 -0
  227. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.m +25 -0
  228. package/ios/{RCTMGL/RCTMGLPointAnnotation.h → RCTMLN/RCTMLNPointAnnotation.h} +8 -8
  229. package/ios/{RCTMGL/RCTMGLPointAnnotation.m → RCTMLN/RCTMLNPointAnnotation.m} +21 -21
  230. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.h → RCTMLN/RCTMLNPointAnnotationManager.h} +3 -3
  231. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.m → RCTMLN/RCTMLNPointAnnotationManager.m} +6 -6
  232. package/ios/RCTMLN/RCTMLNRasterLayer.h +14 -0
  233. package/ios/RCTMLN/RCTMLNRasterLayer.m +30 -0
  234. package/ios/{RCTMGL/RCTMGLRasterLayerManager.h → RCTMLN/RCTMLNRasterLayerManager.h} +3 -3
  235. package/ios/{RCTMGL/RCTMGLRasterLayerManager.m → RCTMLN/RCTMLNRasterLayerManager.m} +6 -6
  236. package/ios/{RCTMGL/RCTMGLRasterSource.h → RCTMLN/RCTMLNRasterSource.h} +5 -5
  237. package/ios/{RCTMGL/RCTMGLRasterSource.m → RCTMLN/RCTMLNRasterSource.m} +11 -11
  238. package/ios/{RCTMGL/RCTMGLRasterSourceManager.h → RCTMLN/RCTMLNRasterSourceManager.h} +3 -3
  239. package/ios/{RCTMGL/RCTMGLRasterSourceManager.m → RCTMLN/RCTMLNRasterSourceManager.m} +6 -6
  240. package/ios/{RCTMGL/RCTMGLShapeSource.h → RCTMLN/RCTMLNShapeSource.h} +10 -10
  241. package/ios/{RCTMGL/RCTMGLShapeSource.m → RCTMLN/RCTMLNShapeSource.m} +50 -50
  242. package/ios/{RCTMGL/RCTMGLShapeSourceManager.h → RCTMLN/RCTMLNShapeSourceManager.h} +3 -3
  243. package/ios/{RCTMGL/RCTMGLShapeSourceManager.m → RCTMLN/RCTMLNShapeSourceManager.m} +25 -25
  244. package/ios/{RCTMGL/RCTMGLSource.h → RCTMLN/RCTMLNSource.h} +8 -8
  245. package/ios/{RCTMGL/RCTMGLSource.m → RCTMLN/RCTMLNSource.m} +15 -15
  246. package/ios/RCTMLN/RCTMLNStyle.h +223 -0
  247. package/ios/{RCTMGL/RCTMGLStyle.m → RCTMLN/RCTMLNStyle.m} +352 -345
  248. package/ios/{RCTMGL/RCTMGLStyleValue.h → RCTMLN/RCTMLNStyleValue.h} +7 -7
  249. package/ios/{RCTMGL/RCTMGLStyleValue.m → RCTMLN/RCTMLNStyleValue.m} +24 -24
  250. package/ios/{RCTMGL/RCTMGLSymbolLayer.h → RCTMLN/RCTMLNSymbolLayer.h} +4 -4
  251. package/ios/{RCTMGL/RCTMGLSymbolLayer.m → RCTMLN/RCTMLNSymbolLayer.m} +12 -12
  252. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.h → RCTMLN/RCTMLNSymbolLayerManager.h} +3 -3
  253. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.m → RCTMLN/RCTMLNSymbolLayerManager.m} +6 -6
  254. package/ios/{RCTMGL/RCTMGLTileSource.h → RCTMLN/RCTMLNTileSource.h} +6 -6
  255. package/ios/RCTMLN/RCTMLNTileSource.m +31 -0
  256. package/ios/RCTMLN/RCTMLNUserLocation.h +15 -0
  257. package/ios/{RCTMGL/RCTMGLUserLocation.m → RCTMLN/RCTMLNUserLocation.m} +8 -8
  258. package/ios/{RCTMGL/RCTMGLUtils.h → RCTMLN/RCTMLNUtils.h} +7 -7
  259. package/ios/{RCTMGL/RCTMGLUtils.m → RCTMLN/RCTMLNUtils.m} +20 -20
  260. package/ios/{RCTMGL/RCTMGLVectorLayer.h → RCTMLN/RCTMLNVectorLayer.h} +4 -4
  261. package/ios/{RCTMGL/RCTMGLVectorLayer.m → RCTMLN/RCTMLNVectorLayer.m} +7 -7
  262. package/ios/{RCTMGL/RCTMGLVectorSource.h → RCTMLN/RCTMLNVectorSource.h} +6 -6
  263. package/ios/{RCTMGL/RCTMGLVectorSource.m → RCTMLN/RCTMLNVectorSource.m} +9 -9
  264. package/ios/{RCTMGL/RCTMGLVectorSourceManager.h → RCTMLN/RCTMLNVectorSourceManager.h} +3 -3
  265. package/ios/{RCTMGL/RCTMGLVectorSourceManager.m → RCTMLN/RCTMLNVectorSourceManager.m} +11 -11
  266. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.h +1 -1
  267. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.m +2 -2
  268. package/ios/{RCTMGL → RCTMLN}/ViewManager.h +3 -3
  269. package/ios/{RCTMGL → RCTMLN}/ViewManager.m +4 -4
  270. package/ios/RCTMLN.xcodeproj/project.pbxproj +775 -0
  271. package/ios/install.md +6 -7
  272. package/javascript/{MGLModule.ts → MLNModule.ts} +4 -4
  273. package/javascript/Maplibre.ts +44 -39
  274. package/javascript/components/BackgroundLayer.tsx +34 -27
  275. package/javascript/components/Callout.tsx +59 -59
  276. package/javascript/components/Camera.tsx +436 -493
  277. package/javascript/components/CircleLayer.tsx +35 -28
  278. package/javascript/components/FillExtrusionLayer.tsx +29 -29
  279. package/javascript/components/FillLayer.tsx +28 -25
  280. package/javascript/components/HeadingIndicator.tsx +8 -8
  281. package/javascript/components/HeatmapLayer.tsx +28 -26
  282. package/javascript/components/ImageSource.tsx +31 -38
  283. package/javascript/components/Images.tsx +54 -54
  284. package/javascript/components/Light.tsx +25 -52
  285. package/javascript/components/LineLayer.tsx +29 -26
  286. package/javascript/components/MapView.tsx +635 -580
  287. package/javascript/components/MarkerView.tsx +34 -49
  288. package/javascript/components/NativeUserLocation.tsx +12 -10
  289. package/javascript/components/PointAnnotation.tsx +121 -97
  290. package/javascript/components/RasterLayer.tsx +28 -25
  291. package/javascript/components/RasterSource.tsx +45 -48
  292. package/javascript/components/ShapeSource.tsx +300 -250
  293. package/javascript/components/Style.tsx +69 -59
  294. package/javascript/components/SymbolLayer.tsx +41 -35
  295. package/javascript/components/UserLocation.tsx +189 -168
  296. package/javascript/components/VectorSource.tsx +139 -128
  297. package/javascript/components/annotations/Annotation.tsx +119 -89
  298. package/javascript/hooks/useAbstractLayer.ts +127 -0
  299. package/javascript/hooks/useAbstractSource.ts +34 -0
  300. package/javascript/hooks/useNativeBridge.ts +125 -0
  301. package/javascript/hooks/useNativeRef.ts +13 -0
  302. package/javascript/hooks/useOnce.ts +12 -0
  303. package/javascript/index.ts +2 -2
  304. package/javascript/modules/location/locationManager.ts +6 -6
  305. package/javascript/modules/offline/OfflineCreatePackOptions.ts +5 -5
  306. package/javascript/modules/offline/OfflinePack.ts +5 -5
  307. package/javascript/modules/offline/offlineManager.ts +13 -14
  308. package/javascript/modules/snapshot/SnapshotOptions.ts +5 -5
  309. package/javascript/modules/snapshot/snapshotManager.ts +3 -3
  310. package/javascript/requestAndroidLocationPermissions.ts +3 -3
  311. package/javascript/types/OnPressEvent.ts +1 -1
  312. package/javascript/types/index.ts +6 -2
  313. package/javascript/utils/BridgeValue.ts +20 -20
  314. package/javascript/utils/Logger.ts +17 -17
  315. package/javascript/utils/MaplibreStyles.d.ts +399 -393
  316. package/javascript/utils/StyleValue.ts +12 -12
  317. package/javascript/utils/animated/AbstractAnimatedCoordinates.ts +6 -6
  318. package/javascript/utils/animated/Animated.ts +38 -16
  319. package/javascript/utils/animated/AnimatedCoordinatesArray.ts +7 -11
  320. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.ts +3 -3
  321. package/javascript/utils/animated/AnimatedPoint.ts +7 -7
  322. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.ts +16 -20
  323. package/javascript/utils/animated/AnimatedShape.ts +16 -16
  324. package/javascript/utils/deprecation.ts +6 -3
  325. package/javascript/utils/filterUtils.ts +1 -1
  326. package/javascript/utils/geoUtils.ts +8 -8
  327. package/javascript/utils/index.ts +14 -14
  328. package/javascript/utils/styleMap.ts +19 -18
  329. package/maplibre-react-native.podspec +8 -8
  330. package/package.json +58 -39
  331. package/plugin/build/withMapLibre.d.ts +2 -2
  332. package/plugin/build/withMapLibre.js +33 -34
  333. package/react-native.config.js +1 -1
  334. package/scripts/autogenHelpers/globals.js +11 -10
  335. package/scripts/autogenerate.js +24 -17
  336. package/scripts/templates/{RCTMGLStyle.h.ejs → RCTMLNStyle.h.ejs} +8 -8
  337. package/scripts/templates/{RCTMGLStyle.m.ejs → RCTMLNStyle.m.ejs} +10 -10
  338. package/scripts/templates/{RCTMGLStyleFactory.java.ejs → RCTMLNStyleFactory.java.ejs} +24 -24
  339. package/setup-jest.js +4 -10
  340. package/style-spec/v8.json +1248 -655
  341. package/tsconfig.json +0 -1
  342. package/.eslintignore +0 -3
  343. package/.eslintrc.js +0 -166
  344. package/.prettierrc.js +0 -7
  345. package/.yarn/plugins/@yarnpkg/plugin-typescript.cjs +0 -9
  346. package/.yarn/sdks/eslint/bin/eslint.js +0 -20
  347. package/.yarn/sdks/eslint/lib/api.js +0 -20
  348. package/.yarn/sdks/eslint/package.json +0 -6
  349. package/.yarn/sdks/integrations.yml +0 -5
  350. package/.yarn/sdks/prettier/index.js +0 -20
  351. package/.yarn/sdks/prettier/package.json +0 -6
  352. package/.yarn/sdks/typescript/bin/tsc +0 -20
  353. package/.yarn/sdks/typescript/bin/tsserver +0 -20
  354. package/.yarn/sdks/typescript/lib/tsc.js +0 -20
  355. package/.yarn/sdks/typescript/lib/tsserver.js +0 -225
  356. package/.yarn/sdks/typescript/lib/tsserverlibrary.js +0 -225
  357. package/.yarn/sdks/typescript/lib/typescript.js +0 -20
  358. package/.yarn/sdks/typescript/package.json +0 -6
  359. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +0 -2
  360. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +0 -99
  361. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +0 -22
  362. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
  363. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
  364. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +0 -27
  365. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +0 -27
  366. package/android/rctmgl/src/main/res/values/strings.xml +0 -3
  367. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +0 -23
  368. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +0 -11
  369. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +0 -14
  370. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +0 -27
  371. package/ios/RCTMGL/RCTMGLCalloutManager.m +0 -21
  372. package/ios/RCTMGL/RCTMGLCircleLayer.h +0 -13
  373. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +0 -14
  374. package/ios/RCTMGL/RCTMGLFillLayer.h +0 -14
  375. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +0 -12
  376. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +0 -30
  377. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +0 -12
  378. package/ios/RCTMGL/RCTMGLImagesManager.h +0 -5
  379. package/ios/RCTMGL/RCTMGLLineLayer.h +0 -14
  380. package/ios/RCTMGL/RCTMGLLocationManager.h +0 -30
  381. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +0 -20
  382. package/ios/RCTMGL/RCTMGLLogging.h +0 -18
  383. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +0 -5
  384. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +0 -25
  385. package/ios/RCTMGL/RCTMGLRasterLayer.h +0 -14
  386. package/ios/RCTMGL/RCTMGLRasterLayer.m +0 -30
  387. package/ios/RCTMGL/RCTMGLStyle.h +0 -222
  388. package/ios/RCTMGL/RCTMGLTileSource.m +0 -31
  389. package/ios/RCTMGL/RCTMGLUserLocation.h +0 -15
  390. package/ios/RCTMGL.xcodeproj/project.pbxproj +0 -775
  391. package/javascript/@types/assets.d.ts +0 -4
  392. package/javascript/components/AbstractLayer.tsx +0 -107
  393. package/javascript/components/AbstractSource.tsx +0 -27
  394. package/javascript/components/NativeBridgeComponent.tsx +0 -117
  395. /package/android/{rctmgl → rctmln}/proguard-rules.pro +0 -0
  396. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty.xml +0 -0
  397. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty_drawable.png +0 -0
  398. /package/android/{rctmgl → rctmln}/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  399. /package/android/{rctmgl → rctmln}/src/main/res/layout/annotation.xml +0 -0
  400. /package/ios/{RCTMGL → RCTMLN}/index.d.ts +0 -0
@@ -1,13 +1,16 @@
1
- import {FilterExpression} from '../utils/MaplibreStyles';
2
- import {Location} from '../modules/location/locationManager';
3
- import {isFunction, isAndroid} from '../utils';
4
- import {getFilter} from '../utils/filterUtils';
5
- import Logger from '../utils/Logger';
6
- import BaseProps from '../types/BaseProps';
7
-
8
- import NativeBridgeComponent from './NativeBridgeComponent';
9
-
10
- import React, {Component, ReactElement, ReactNode} from 'react';
1
+ import debounce from "debounce";
2
+ import React, {
3
+ Component,
4
+ memo,
5
+ ReactElement,
6
+ ReactNode,
7
+ useCallback,
8
+ useEffect,
9
+ useImperativeHandle,
10
+ useMemo,
11
+ useRef,
12
+ useState,
13
+ } from "react";
11
14
  import {
12
15
  View,
13
16
  StyleSheet,
@@ -15,24 +18,31 @@ import {
15
18
  requireNativeComponent,
16
19
  ViewProps,
17
20
  NativeMethods,
18
- LayoutChangeEvent,
19
21
  NativeSyntheticEvent,
20
- } from 'react-native';
21
- import {debounce} from 'debounce';
22
-
23
- const MapLibreGL = NativeModules.MGLModule;
22
+ } from "react-native";
23
+
24
+ import useNativeBridge from "../hooks/useNativeBridge";
25
+ import useOnce from "../hooks/useOnce";
26
+ import { Location } from "../modules/location/locationManager";
27
+ import BaseProps from "../types/BaseProps";
28
+ import { isFunction, isAndroid } from "../utils";
29
+ import Logger from "../utils/Logger";
30
+ import { FilterExpression } from "../utils/MaplibreStyles";
31
+ import { getFilter } from "../utils/filterUtils";
32
+
33
+ const MapLibreGL = NativeModules.MLNModule;
24
34
  if (MapLibreGL == null) {
25
35
  console.error(
26
- 'Native part of Mapbox React Native libraries were not registered properly, double check our native installation guides.',
36
+ "Native part of Mapbox React Native libraries were not registered properly, double check our native installation guides.",
27
37
  );
28
38
  }
29
39
 
30
- export const NATIVE_MODULE_NAME = 'RCTMGLMapView';
40
+ export const NATIVE_MODULE_NAME = "RCTMLNMapView";
31
41
 
32
- export const ANDROID_TEXTURE_NATIVE_MODULE_NAME = 'RCTMGLAndroidTextureMapView';
42
+ export const ANDROID_TEXTURE_NATIVE_MODULE_NAME = "RCTMLNAndroidTextureMapView";
33
43
 
34
44
  const styles = StyleSheet.create({
35
- matchParent: {flex: 1},
45
+ matchParent: { flex: 1 },
36
46
  });
37
47
 
38
48
  const defaultStyleURL = MapLibreGL.StyleURL.Street;
@@ -42,14 +52,11 @@ export interface RegionPayload {
42
52
  heading: number;
43
53
  animated: boolean;
44
54
  isUserInteraction: boolean;
45
- visibleBounds: GeoJSON.Position[];
55
+ visibleBounds: VisibleBounds;
46
56
  pitch: number;
47
57
  }
48
58
 
49
- interface Bounds {
50
- ne: GeoJSON.Position;
51
- sw: GeoJSON.Position;
52
- }
59
+ type VisibleBounds = [northEast: GeoJSON.Position, southWest: GeoJSON.Position];
53
60
 
54
61
  interface MapViewProps extends BaseProps {
55
62
  /**
@@ -59,7 +66,7 @@ interface MapViewProps extends BaseProps {
59
66
  /**
60
67
  * Style for wrapping React Native View
61
68
  */
62
- style?: ViewProps['style'];
69
+ style?: ViewProps["style"];
63
70
  /**
64
71
  * Style URL for map - notice, if non is set it _will_ default to `MapLibreGL.StyleURL.Default`
65
72
  */
@@ -70,7 +77,7 @@ interface MapViewProps extends BaseProps {
70
77
  styleJSON?: string;
71
78
  /**
72
79
  * iOS: The preferred frame rate at which the map view is rendered.
73
- * The default value for this property is MGLMapViewPreferredFramesPerSecondDefault,
80
+ * The default value for this property is MLNMapViewPreferredFramesPerSecondDefault,
74
81
  * which will adaptively set the preferred frame rate based on the capability of
75
82
  * the user’s device to maintain a smooth experience. This property can be set to arbitrary integer values.
76
83
  *
@@ -110,22 +117,10 @@ interface MapViewProps extends BaseProps {
110
117
  * Adds attribution offset, e.g. `{top: 8, left: 8}` will put attribution button in top-left corner of the map
111
118
  */
112
119
  attributionPosition?:
113
- | {
114
- top?: number;
115
- left?: number;
116
- }
117
- | {
118
- top?: number;
119
- right?: number;
120
- }
121
- | {
122
- bottom?: number;
123
- left?: number;
124
- }
125
- | {
126
- bottom?: number;
127
- right?: number;
128
- };
120
+ | { top?: number; left?: number }
121
+ | { top?: number; right?: number }
122
+ | { bottom?: number; left?: number }
123
+ | { bottom?: number; right?: number };
129
124
  /**
130
125
  * MapView's tintColor
131
126
  */
@@ -138,22 +133,10 @@ interface MapViewProps extends BaseProps {
138
133
  * Adds logo offset, e.g. `{top: 8, left: 8}` will put the logo in top-left corner of the map
139
134
  */
140
135
  logoPosition?:
141
- | {
142
- top?: number;
143
- left?: number;
144
- }
145
- | {
146
- top?: number;
147
- right?: number;
148
- }
149
- | {
150
- bottom?: number;
151
- left?: number;
152
- }
153
- | {
154
- bottom?: number;
155
- right?: number;
156
- };
136
+ | { top?: number; left?: number }
137
+ | { top?: number; right?: number }
138
+ | { bottom?: number; left?: number }
139
+ | { bottom?: number; right?: number };
157
140
  /**
158
141
  * Enable/Disable the compass from appearing on the map
159
142
  */
@@ -265,560 +248,632 @@ type CallableProps = {
265
248
  : never;
266
249
  }[keyof MapViewProps];
267
250
 
268
- interface NativeProps extends Omit<MapViewProps, 'onPress' | 'onLongPress'> {
269
- onPress(event: NativeSyntheticEvent<{payload: GeoJSON.Feature}>): void;
270
- onLongPress(event: NativeSyntheticEvent<{payload: GeoJSON.Feature}>): void;
251
+ interface NativeProps extends Omit<MapViewProps, "onPress" | "onLongPress"> {
252
+ onPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
253
+ onLongPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
271
254
  }
272
255
 
273
- export interface MapViewState {
274
- isReady: boolean;
275
- width: number;
276
- height: number;
277
- region: RegionPayload | null;
278
- isUserInteraction: boolean;
256
+ export interface MapViewRef {
257
+ getPointInView: (coordinate: GeoJSON.Position) => Promise<GeoJSON.Point>;
258
+ getCoordinateFromView: (point: number[]) => Promise<GeoJSON.Position>;
259
+ getVisibleBounds: () => Promise<VisibleBounds>;
260
+ queryRenderedFeaturesAtPoint: (
261
+ point: [screenPointX: number, screenPointY: number],
262
+ filter: FilterExpression | undefined,
263
+ layerIDs: string[],
264
+ ) => Promise<GeoJSON.FeatureCollection>;
265
+ queryRenderedFeaturesInRect: (
266
+ bbox: GeoJSON.BBox,
267
+ filter: FilterExpression | undefined,
268
+ layerIDs: string[],
269
+ ) => Promise<GeoJSON.FeatureCollection>;
270
+ setCamera: () => void;
271
+ takeSnap: (writeToDisk?: boolean) => Promise<string>;
272
+ getZoom: () => Promise<number>;
273
+ getCenter: () => Promise<GeoJSON.Position>;
274
+ setSourceVisibility: (
275
+ visible: boolean,
276
+ sourceId: string,
277
+ sourceLayerId?: string | null,
278
+ ) => void;
279
+ showAttribution: () => Promise<void>;
280
+ setNativeProps: (props: NativeProps) => void;
279
281
  }
280
282
 
281
283
  /**
282
284
  * MapView backed by MapLibre GL Native
283
285
  */
284
- class MapView extends NativeBridgeComponent(
285
- React.Component<MapViewProps, MapViewState>,
286
- NATIVE_MODULE_NAME,
287
- ) {
288
- static defaultProps = {
289
- localizeLabels: false,
290
- scrollEnabled: true,
291
- pitchEnabled: true,
292
- rotateEnabled: true,
293
- attributionEnabled: true,
294
- logoEnabled: false,
295
- surfaceView: false,
296
- regionWillChangeDebounceTime: 10,
297
- regionDidChangeDebounceTime: 500,
298
- };
299
-
300
- logger: Logger;
301
- _nativeRef?: RCTMGLMapViewRefType;
302
- _onDebouncedRegionWillChange: ReturnType<typeof debounce>;
303
- _onDebouncedRegionDidChange: ReturnType<typeof debounce>;
304
-
305
- constructor(props: MapViewProps) {
306
- super(props);
307
-
308
- this.logger = Logger.sharedInstance();
309
- this.logger.start();
310
-
311
- this.state = {
312
- isReady: false,
313
- region: null,
314
- width: 0,
315
- height: 0,
316
- isUserInteraction: false,
317
- };
318
-
319
- this._onPress = this._onPress.bind(this);
320
- this._onLongPress = this._onLongPress.bind(this);
321
- this._onChange = this._onChange.bind(this);
322
- this._onLayout = this._onLayout.bind(this);
323
-
324
- // debounced map change methods
325
- this._onDebouncedRegionWillChange = debounce(
326
- this._onRegionWillChange.bind(this),
327
- props.regionWillChangeDebounceTime,
328
- true,
329
- );
330
-
331
- this._onDebouncedRegionDidChange = debounce(
332
- this._onRegionDidChange.bind(this),
333
- props.regionDidChangeDebounceTime,
334
- );
335
- }
336
-
337
- componentDidMount(): void {
338
- this._setHandledMapChangedEvents(this.props);
339
- }
340
-
341
- componentWillUnmount(): void {
342
- this._onDebouncedRegionWillChange.clear();
343
- this._onDebouncedRegionDidChange.clear();
344
- this.logger.stop();
345
- }
346
-
347
- UNSAFE_componentWillReceiveProps(nextProps: MapViewProps): void {
348
- this._setHandledMapChangedEvents(nextProps);
349
- }
350
-
351
- _setHandledMapChangedEvents(props: MapViewProps): void {
352
- if (isAndroid()) {
353
- const events = [];
354
-
355
- if (props.onRegionWillChange) {
356
- events.push(MapLibreGL.EventTypes.RegionWillChange);
357
- }
358
- if (props.onRegionIsChanging) {
359
- events.push(MapLibreGL.EventTypes.RegionIsChanging);
360
- }
361
- if (props.onRegionDidChange) {
362
- events.push(MapLibreGL.EventTypes.RegionDidChange);
363
- }
364
- if (props.onUserLocationUpdate) {
365
- events.push(MapLibreGL.EventTypes.UserLocationUpdated);
366
- }
367
- if (props.onWillStartLoadingMap) {
368
- events.push(MapLibreGL.EventTypes.WillStartLoadingMap);
369
- }
370
- if (props.onDidFinishLoadingMap) {
371
- events.push(MapLibreGL.EventTypes.DidFinishLoadingMap);
372
- }
373
- if (props.onDidFailLoadingMap) {
374
- events.push(MapLibreGL.EventTypes.DidFailLoadingMap);
375
- }
376
- if (props.onWillStartRenderingFrame) {
377
- events.push(MapLibreGL.EventTypes.WillStartRenderingFrame);
378
- }
379
- if (props.onDidFinishRenderingFrame) {
380
- events.push(MapLibreGL.EventTypes.DidFinishRenderingFrame);
381
- }
382
- if (props.onDidFinishRenderingFrameFully) {
383
- events.push(MapLibreGL.EventTypes.DidFinishRenderingFrameFully);
384
- }
385
- if (props.onWillStartRenderingMap) {
386
- events.push(MapLibreGL.EventTypes.WillStartRenderingMap);
387
- }
388
- if (props.onDidFinishRenderingMap) {
389
- events.push(MapLibreGL.EventTypes.DidFinishRenderingMap);
390
- }
391
- if (props.onDidFinishRenderingMapFully) {
392
- events.push(MapLibreGL.EventTypes.DidFinishRenderingMapFully);
393
- }
394
- if (props.onDidFinishLoadingStyle) {
395
- events.push(MapLibreGL.EventTypes.DidFinishLoadingStyle);
396
- }
397
286
 
398
- this._runNativeCommand(
399
- 'setHandledMapChangedEvents',
400
- this._nativeRef,
401
- events,
287
+ const MapView = memo(
288
+ React.forwardRef<MapViewRef, MapViewProps>(
289
+ (
290
+ {
291
+ localizeLabels = false,
292
+ scrollEnabled = true,
293
+ pitchEnabled = true,
294
+ rotateEnabled = true,
295
+ attributionEnabled = true,
296
+ logoEnabled = false,
297
+ surfaceView = false,
298
+ regionWillChangeDebounceTime = 10,
299
+ regionDidChangeDebounceTime = 500,
300
+ ...props
301
+ }: MapViewProps,
302
+ ref,
303
+ ) => {
304
+ // * exposes the methods of the function component so we don't break projects that depend on calling this methods
305
+ useImperativeHandle(
306
+ ref,
307
+ (): MapViewRef => ({
308
+ /**
309
+ * Converts a geographic coordinate to a point in the given view’s coordinate system.
310
+ *
311
+ * @example
312
+ * const pointInView = await this._map.getPointInView([-37.817070, 144.949901]);
313
+ *
314
+ * @param {Array<Number>} coordinate - A point expressed in the map view's coordinate system.
315
+ * @return {Array}
316
+ */
317
+ getPointInView,
318
+ /**
319
+ * Converts a point in the given view’s coordinate system to a geographic coordinate.
320
+ *
321
+ * @example
322
+ * const coordinate = await this._map.getCoordinateFromView([100, 100]);
323
+ *
324
+ * @param {Array<Number>} point - A point expressed in the given view’s coordinate system.
325
+ * @return {Array}
326
+ */
327
+ getCoordinateFromView,
328
+ /**
329
+ * The coordinate bounds(ne, sw) visible in the users’s viewport.
330
+ *
331
+ * @example
332
+ * const visibleBounds = await this._map.getVisibleBounds();
333
+ *
334
+ * @return {Array}
335
+ */
336
+ getVisibleBounds,
337
+ /**
338
+ * Returns an array of rendered map features that intersect with a given point.
339
+ *
340
+ * @example
341
+ * this._map.queryRenderedFeaturesAtPoint([30, 40], ['==', 'type', 'Point'], ['id1', 'id2'])
342
+ *
343
+ * @param {Array<Number>} coordinate - A point expressed in the map view’s coordinate system.
344
+ * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
345
+ * @param {Array=} layerIDs - A array of layer id's to filter the features by
346
+ * @return {GeoJSON.FeatureCollection}
347
+ */
348
+ queryRenderedFeaturesAtPoint,
349
+ /**
350
+ * Returns an array of rendered map features that intersect with the given rectangle,
351
+ * restricted to the given style layers and filtered by the given predicate.
352
+ *
353
+ * @example
354
+ * this._map.queryRenderedFeaturesInRect([30, 40, 20, 10], ['==', 'type', 'Point'], ['id1', 'id2'])
355
+ *
356
+ * @param {Array<Number>} bbox - A rectangle expressed in the map view’s coordinate system.
357
+ * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
358
+ * @param {Array=} layerIDs - A array of layer id's to filter the features by
359
+ * @return {GeoJSON.FeatureCollection}
360
+ */
361
+ queryRenderedFeaturesInRect,
362
+ /**
363
+ * Map camera will perform updates based on provided config. Deprecated use Camera#setCamera.
364
+ */
365
+ setCamera,
366
+ /**
367
+ * Takes snapshot of map with current tiles and returns a URI to the image
368
+ * @param {Boolean} writeToDisk If true will create a temp file, otherwise it is in base64
369
+ * @return {String}
370
+ */
371
+ takeSnap,
372
+ /**
373
+ * Returns the current zoom of the map view.
374
+ *
375
+ * @example
376
+ * const zoom = await this._map.getZoom();
377
+ *
378
+ * @return {Number}
379
+ */
380
+ getZoom,
381
+ /**
382
+ * Returns the map's geographical centerpoint
383
+ *
384
+ * @example
385
+ * const center = await this._map.getCenter();
386
+ *
387
+ * @return {Array<Number>} Coordinates
388
+ */
389
+ getCenter,
390
+ /**
391
+ * Sets the visibility of all the layers referencing the specified `sourceLayerId` and/or `sourceId`
392
+ *
393
+ * @example
394
+ * await this._map.setSourceVisibility(false, 'composite', 'building')
395
+ *
396
+ * @param {boolean} visible - Visibility of the layers
397
+ * @param {String} sourceId - Identifier of the target source (e.g. 'composite')
398
+ * @param {String=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
399
+ */
400
+ setSourceVisibility,
401
+ /**
402
+ * Show the attribution and telemetry action sheet.
403
+ * If you implement a custom attribution button, you should add this action to the button.
404
+ */
405
+ showAttribution,
406
+ setNativeProps,
407
+ }),
402
408
  );
403
- }
404
- }
405
409
 
406
- /**
407
- * Converts a geographic coordinate to a point in the given view’s coordinate system.
408
- *
409
- * @example
410
- * const pointInView = await this._map.getPointInView([-37.817070, 144.949901]);
411
- *
412
- * @param {Array<Number>} coordinate - A point expressed in the map view's coordinate system.
413
- * @return {Array}
414
- */
415
- async getPointInView(coordinate: GeoJSON.Position): Promise<GeoJSON.Point> {
416
- const res: {pointInView: GeoJSON.Point} = await this._runNativeCommand(
417
- 'getPointInView',
418
- this._nativeRef,
419
- [coordinate],
420
- );
421
- return res.pointInView;
422
- }
410
+ const {
411
+ _runNativeCommand,
412
+ _runPendingNativeCommands,
413
+ _onAndroidCallback,
414
+ } = useNativeBridge(NATIVE_MODULE_NAME);
415
+ const logger = useRef<Logger>(Logger.sharedInstance());
416
+ // * start the logger before anyuseEffect
417
+ useOnce(() => {
418
+ logger.current.start();
419
+ });
420
+ const _nativeRef = useRef<RCTMLNMapViewRefType>();
421
+ const [isReady, setIsReady] = useState(false);
422
+
423
+ // Cleanups on unmount
424
+ useEffect(() => {
425
+ const currentLogger = logger.current;
426
+
427
+ return (): void => {
428
+ _onDebouncedRegionWillChange.clear();
429
+ _onDebouncedRegionDidChange.clear();
430
+ currentLogger.stop();
431
+ };
432
+ // eslint-disable-next-line react-hooks/exhaustive-deps
433
+ }, []);
434
+
435
+ // This will run on every render
436
+ // so similar to componentDidMount and UNSAFE_componentWillReceiveProps
437
+ useEffect(() => {
438
+ _setHandledMapChangedEvents(props);
439
+ }, [props]);
440
+
441
+ const _setHandledMapChangedEvents = (props: MapViewProps): void => {
442
+ if (isAndroid()) {
443
+ const events = [];
444
+
445
+ if (props.onRegionWillChange) {
446
+ events.push(MapLibreGL.EventTypes.RegionWillChange);
447
+ }
448
+ if (props.onRegionIsChanging) {
449
+ events.push(MapLibreGL.EventTypes.RegionIsChanging);
450
+ }
451
+ if (props.onRegionDidChange) {
452
+ events.push(MapLibreGL.EventTypes.RegionDidChange);
453
+ }
454
+ if (props.onUserLocationUpdate) {
455
+ events.push(MapLibreGL.EventTypes.UserLocationUpdated);
456
+ }
457
+ if (props.onWillStartLoadingMap) {
458
+ events.push(MapLibreGL.EventTypes.WillStartLoadingMap);
459
+ }
460
+ if (props.onDidFinishLoadingMap) {
461
+ events.push(MapLibreGL.EventTypes.DidFinishLoadingMap);
462
+ }
463
+ if (props.onDidFailLoadingMap) {
464
+ events.push(MapLibreGL.EventTypes.DidFailLoadingMap);
465
+ }
466
+ if (props.onWillStartRenderingFrame) {
467
+ events.push(MapLibreGL.EventTypes.WillStartRenderingFrame);
468
+ }
469
+ if (props.onDidFinishRenderingFrame) {
470
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingFrame);
471
+ }
472
+ if (props.onDidFinishRenderingFrameFully) {
473
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingFrameFully);
474
+ }
475
+ if (props.onWillStartRenderingMap) {
476
+ events.push(MapLibreGL.EventTypes.WillStartRenderingMap);
477
+ }
478
+ if (props.onDidFinishRenderingMap) {
479
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingMap);
480
+ }
481
+ if (props.onDidFinishRenderingMapFully) {
482
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingMapFully);
483
+ }
484
+ if (props.onDidFinishLoadingStyle) {
485
+ events.push(MapLibreGL.EventTypes.DidFinishLoadingStyle);
486
+ }
487
+
488
+ _runNativeCommand(
489
+ "setHandledMapChangedEvents",
490
+ _nativeRef.current,
491
+ events,
492
+ );
493
+ }
494
+ };
423
495
 
424
- /**
425
- * Converts a point in the given view’s coordinate system to a geographic coordinate.
426
- *
427
- * @example
428
- * const coordinate = await this._map.getCoordinateFromView([100, 100]);
429
- *
430
- * @param {Array<Number>} point - A point expressed in the given view’s coordinate system.
431
- * @return {Array}
432
- */
433
- async getCoordinateFromView(point: number[]): Promise<GeoJSON.Position> {
434
- const res: {coordinateFromView: GeoJSON.Position} =
435
- await this._runNativeCommand('getCoordinateFromView', this._nativeRef, [
436
- point,
437
- ]);
438
- return res.coordinateFromView;
439
- }
496
+ const getPointInView = async (
497
+ coordinate: GeoJSON.Position,
498
+ ): Promise<GeoJSON.Point> => {
499
+ const res: { pointInView: GeoJSON.Point } = await _runNativeCommand(
500
+ "getPointInView",
501
+ _nativeRef.current,
502
+ [coordinate],
503
+ );
504
+ return res.pointInView;
505
+ };
440
506
 
441
- /**
442
- * The coordinate bounds(ne, sw) visible in the users’s viewport.
443
- *
444
- * @example
445
- * const visibleBounds = await this._map.getVisibleBounds();
446
- *
447
- * @return {Array}
448
- */
449
- async getVisibleBounds(): Promise<Bounds> {
450
- const res: {visibleBounds: Bounds} = await this._runNativeCommand(
451
- 'getVisibleBounds',
452
- this._nativeRef,
453
- );
454
- return res.visibleBounds;
455
- }
507
+ const getCoordinateFromView = async (
508
+ point: number[],
509
+ ): Promise<GeoJSON.Position> => {
510
+ const res: { coordinateFromView: GeoJSON.Position } =
511
+ await _runNativeCommand("getCoordinateFromView", _nativeRef.current, [
512
+ point,
513
+ ]);
514
+ return res.coordinateFromView;
515
+ };
456
516
 
457
- /**
458
- * Returns an array of rendered map features that intersect with a given point.
459
- *
460
- * @example
461
- * this._map.queryRenderedFeaturesAtPoint([30, 40], ['==', 'type', 'Point'], ['id1', 'id2'])
462
- *
463
- * @param {Array<Number>} coordinate - A point expressed in the map view’s coordinate system.
464
- * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
465
- * @param {Array=} layerIDs - A array of layer id's to filter the features by
466
- * @return {GeoJSON.FeatureCollection}
467
- */
468
- async queryRenderedFeaturesAtPoint(
469
- coordinate: GeoJSON.Position,
470
- filter?: FilterExpression,
471
- layerIDs = [],
472
- ): Promise<GeoJSON.FeatureCollection> {
473
- if (!coordinate || coordinate.length < 2) {
474
- throw new Error('Must pass in valid coordinate[lng, lat]');
475
- }
476
-
477
- const res: {data: string | GeoJSON.FeatureCollection} =
478
- await this._runNativeCommand(
479
- 'queryRenderedFeaturesAtPoint',
480
- this._nativeRef,
481
- [coordinate, getFilter(filter), layerIDs],
482
- );
517
+ const getVisibleBounds = async (): Promise<VisibleBounds> => {
518
+ const res: { visibleBounds: VisibleBounds } = await _runNativeCommand(
519
+ "getVisibleBounds",
520
+ _nativeRef.current,
521
+ );
522
+ return res.visibleBounds;
523
+ };
483
524
 
484
- if (isAndroid()) {
485
- return JSON.parse(res.data as string);
486
- }
525
+ const queryRenderedFeaturesAtPoint = async (
526
+ point: [screenPointX: number, screenPointY: number],
527
+ filter?: FilterExpression,
528
+ layerIDs: string[] = [],
529
+ ): Promise<GeoJSON.FeatureCollection> => {
530
+ if (!point || point.length < 2) {
531
+ throw new Error(
532
+ "Must pass in valid point in the map view's cooridnate system[x, y]",
533
+ );
534
+ }
487
535
 
488
- return res.data as GeoJSON.FeatureCollection;
489
- }
536
+ const res: { data: string | GeoJSON.FeatureCollection } =
537
+ await _runNativeCommand(
538
+ "queryRenderedFeaturesAtPoint",
539
+ _nativeRef.current,
540
+ [point, getFilter(filter), layerIDs],
541
+ );
490
542
 
491
- /**
492
- * Returns an array of rendered map features that intersect with the given rectangle,
493
- * restricted to the given style layers and filtered by the given predicate.
494
- *
495
- * @example
496
- * this._map.queryRenderedFeaturesInRect([30, 40, 20, 10], ['==', 'type', 'Point'], ['id1', 'id2'])
497
- *
498
- * @param {Array<Number>} bbox - A rectangle expressed in the map view’s coordinate system.
499
- * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
500
- * @param {Array=} layerIDs - A array of layer id's to filter the features by
501
- * @return {GeoJSON.FeatureCollection}
502
- */
503
- async queryRenderedFeaturesInRect(
504
- bbox: GeoJSON.BBox,
505
- filter?: FilterExpression,
506
- layerIDs = [],
507
- ): Promise<GeoJSON.FeatureCollection> {
508
- if (!bbox || bbox.length !== 4) {
509
- throw new Error(
510
- 'Must pass in a valid bounding box[top, right, bottom, left]',
543
+ if (isAndroid()) {
544
+ return JSON.parse(res.data as string);
545
+ }
546
+
547
+ return res.data as GeoJSON.FeatureCollection;
548
+ };
549
+
550
+ const queryRenderedFeaturesInRect = async (
551
+ bbox: GeoJSON.BBox,
552
+ filter?: FilterExpression,
553
+ layerIDs: string[] = [],
554
+ ): Promise<GeoJSON.FeatureCollection> => {
555
+ if (!bbox || bbox.length !== 4) {
556
+ throw new Error(
557
+ "Must pass in a valid bounding box[top, right, bottom, left]",
558
+ );
559
+ }
560
+ const res: { data: string | GeoJSON.FeatureCollection } =
561
+ await _runNativeCommand(
562
+ "queryRenderedFeaturesInRect",
563
+ _nativeRef.current,
564
+ [bbox, getFilter(filter), layerIDs],
565
+ );
566
+
567
+ if (isAndroid()) {
568
+ return JSON.parse(res.data as string);
569
+ }
570
+
571
+ return res.data as GeoJSON.FeatureCollection;
572
+ };
573
+
574
+ const setCamera = (): void => {
575
+ console.warn(
576
+ "MapView.setCamera is deprecated - please use Camera#setCamera",
577
+ );
578
+ };
579
+
580
+ const takeSnap = async (writeToDisk = false): Promise<string> => {
581
+ const res: { uri: string } = await _runNativeCommand(
582
+ "takeSnap",
583
+ _nativeRef.current,
584
+ [writeToDisk],
585
+ );
586
+ return res.uri;
587
+ };
588
+
589
+ const getZoom = async (): Promise<number> => {
590
+ const res: { zoom: number } = await _runNativeCommand(
591
+ "getZoom",
592
+ _nativeRef.current,
593
+ );
594
+ return res.zoom;
595
+ };
596
+
597
+ const getCenter = async (): Promise<GeoJSON.Position> => {
598
+ const res: { center: GeoJSON.Position } = await _runNativeCommand(
599
+ "getCenter",
600
+ _nativeRef.current,
601
+ );
602
+ return res.center;
603
+ };
604
+
605
+ const setSourceVisibility = (
606
+ visible: boolean,
607
+ sourceId: string,
608
+ sourceLayerId: string | null = null,
609
+ ): void => {
610
+ _runNativeCommand("setSourceVisibility", _nativeRef.current, [
611
+ visible,
612
+ sourceId,
613
+ sourceLayerId,
614
+ ]);
615
+ };
616
+
617
+ const showAttribution = async (): Promise<void> => {
618
+ _runNativeCommand("showAttribution", _nativeRef.current);
619
+ };
620
+
621
+ const _onPress = (
622
+ e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
623
+ ): void => {
624
+ if (isFunction(props.onPress)) {
625
+ props.onPress(e.nativeEvent.payload);
626
+ }
627
+ };
628
+
629
+ const _onLongPress = (
630
+ e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
631
+ ): void => {
632
+ if (isFunction(props.onLongPress)) {
633
+ props.onLongPress(e.nativeEvent.payload);
634
+ }
635
+ };
636
+
637
+ const _onRegionWillChange = (
638
+ payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
639
+ ): void => {
640
+ if (isFunction(props.onRegionWillChange)) {
641
+ props.onRegionWillChange(payload);
642
+ }
643
+ };
644
+
645
+ const _onRegionDidChange = (
646
+ payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
647
+ ): void => {
648
+ if (isFunction(props.onRegionDidChange)) {
649
+ props.onRegionDidChange(payload);
650
+ }
651
+ };
652
+
653
+ const _onDebouncedRegionWillChange = useCallback(
654
+ debounce(_onRegionWillChange, regionWillChangeDebounceTime, {
655
+ immediate: true,
656
+ }),
657
+ [_onRegionWillChange],
511
658
  );
512
- }
513
- const res: {data: string | GeoJSON.FeatureCollection} =
514
- await this._runNativeCommand(
515
- 'queryRenderedFeaturesInRect',
516
- this._nativeRef,
517
- [bbox, getFilter(filter), layerIDs],
659
+
660
+ const _onDebouncedRegionDidChange = useCallback(
661
+ debounce(_onRegionDidChange, regionDidChangeDebounceTime),
662
+ [_onRegionDidChange],
518
663
  );
519
664
 
520
- if (isAndroid()) {
521
- return JSON.parse(res.data as string);
522
- }
665
+ const _onChange = (
666
+ e: NativeSyntheticEvent<{
667
+ type: string;
668
+ payload?: GeoJSON.Feature | Location;
669
+ }>,
670
+ ): void => {
671
+ const { type, payload } = e.nativeEvent;
672
+ let propName: CallableProps | undefined;
673
+
674
+ switch (type) {
675
+ case MapLibreGL.EventTypes.RegionWillChange:
676
+ if (
677
+ regionWillChangeDebounceTime &&
678
+ regionWillChangeDebounceTime > 0
679
+ ) {
680
+ if (payload) {
681
+ _onDebouncedRegionWillChange(
682
+ payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
683
+ );
684
+ }
685
+ } else {
686
+ propName = "onRegionWillChange";
687
+ }
688
+ break;
689
+ case MapLibreGL.EventTypes.RegionIsChanging:
690
+ propName = "onRegionIsChanging";
691
+ break;
692
+ case MapLibreGL.EventTypes.RegionDidChange:
693
+ if (
694
+ regionDidChangeDebounceTime &&
695
+ regionDidChangeDebounceTime > 0
696
+ ) {
697
+ if (payload) {
698
+ _onDebouncedRegionDidChange(
699
+ payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
700
+ );
701
+ }
702
+ } else {
703
+ propName = "onRegionDidChange";
704
+ }
705
+ break;
706
+ case MapLibreGL.EventTypes.UserLocationUpdated:
707
+ propName = "onUserLocationUpdate";
708
+ break;
709
+ case MapLibreGL.EventTypes.WillStartLoadingMap:
710
+ propName = "onWillStartLoadingMap";
711
+ break;
712
+ case MapLibreGL.EventTypes.DidFinishLoadingMap:
713
+ propName = "onDidFinishLoadingMap";
714
+ break;
715
+ case MapLibreGL.EventTypes.DidFailLoadingMap:
716
+ propName = "onDidFailLoadingMap";
717
+ break;
718
+ case MapLibreGL.EventTypes.WillStartRenderingFrame:
719
+ propName = "onWillStartRenderingFrame";
720
+ break;
721
+ case MapLibreGL.EventTypes.DidFinishRenderingFrame:
722
+ propName = "onDidFinishRenderingFrame";
723
+ break;
724
+ case MapLibreGL.EventTypes.DidFinishRenderingFrameFully:
725
+ propName = "onDidFinishRenderingFrameFully";
726
+ break;
727
+ case MapLibreGL.EventTypes.WillStartRenderingMap:
728
+ propName = "onWillStartRenderingMap";
729
+ break;
730
+ case MapLibreGL.EventTypes.DidFinishRenderingMap:
731
+ propName = "onDidFinishRenderingMap";
732
+ break;
733
+ case MapLibreGL.EventTypes.DidFinishRenderingMapFully:
734
+ propName = "onDidFinishRenderingMapFully";
735
+ break;
736
+ case MapLibreGL.EventTypes.DidFinishLoadingStyle:
737
+ propName = "onDidFinishLoadingStyle";
738
+ break;
739
+ default:
740
+ console.warn("Unhandled event callback type", type);
741
+ }
523
742
 
524
- return res.data as GeoJSON.FeatureCollection;
525
- }
743
+ if (propName) {
744
+ _handleOnChange(propName, payload);
745
+ }
746
+ };
526
747
 
527
- /**
528
- * Map camera will perform updates based on provided config. Deprecated use Camera#setCamera.
529
- */
530
- setCamera(): void {
531
- console.warn(
532
- 'MapView.setCamera is deprecated - please use Camera#setCamera',
533
- );
534
- }
748
+ const _onLayout = (): void => {
749
+ setIsReady(true);
750
+ };
535
751
 
536
- /**
537
- * Takes snapshot of map with current tiles and returns a URI to the image
538
- * @param {Boolean} writeToDisk If true will create a temp file, otherwise it is in base64
539
- * @return {String}
540
- */
541
- async takeSnap(writeToDisk = false): Promise<string> {
542
- const res: {uri: string} = await this._runNativeCommand(
543
- 'takeSnap',
544
- this._nativeRef,
545
- [writeToDisk],
546
- );
547
- return res.uri;
548
- }
752
+ const _handleOnChange = <T extends CallableProps>(
753
+ propName: T,
754
+ payload?: object,
755
+ ): void => {
756
+ const callable = props[propName] as (payload?: object) => void;
757
+ if (callable && isFunction(callable)) {
758
+ callable(payload);
759
+ }
760
+ };
549
761
 
550
- /**
551
- * Returns the current zoom of the map view.
552
- *
553
- * @example
554
- * const zoom = await this._map.getZoom();
555
- *
556
- * @return {Number}
557
- */
762
+ const contentInsetValue = useMemo(() => {
763
+ if (!props.contentInset) {
764
+ return;
765
+ }
558
766
 
559
- async getZoom(): Promise<number> {
560
- const res: {zoom: number} = await this._runNativeCommand(
561
- 'getZoom',
562
- this._nativeRef,
563
- );
564
- return res.zoom;
565
- }
767
+ if (!Array.isArray(props.contentInset)) {
768
+ return [props.contentInset];
769
+ }
566
770
 
567
- /**
568
- * Returns the map's geographical centerpoint
569
- *
570
- * @example
571
- * const center = await this._map.getCenter();
572
- *
573
- * @return {Array<Number>} Coordinates
574
- */
575
- async getCenter(): Promise<GeoJSON.Position> {
576
- const res: {center: GeoJSON.Position} = await this._runNativeCommand(
577
- 'getCenter',
578
- this._nativeRef,
579
- );
580
- return res.center;
581
- }
771
+ return props.contentInset;
772
+ }, [props.contentInset]);
582
773
 
583
- /**
584
- * Sets the visibility of all the layers referencing the specified `sourceLayerId` and/or `sourceId`
585
- *
586
- * @example
587
- * await this._map.setSourceVisibility(false, 'composite', 'building')
588
- *
589
- * @param {boolean} visible - Visibility of the layers
590
- * @param {String} sourceId - Identifier of the target source (e.g. 'composite')
591
- * @param {String=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
592
- */
593
- setSourceVisibility(
594
- visible: boolean,
595
- sourceId: string,
596
- sourceLayerId: string | null = null,
597
- ): void {
598
- this._runNativeCommand('setSourceVisibility', this._nativeRef, [
599
- visible,
600
- sourceId,
601
- sourceLayerId,
602
- ]);
603
- }
604
-
605
- /**
606
- * Show the attribution and telemetry action sheet.
607
- * If you implement a custom attribution button, you should add this action to the button.
608
- */
609
- async showAttribution(): Promise<void> {
610
- this._runNativeCommand('showAttribution', this._nativeRef);
611
- }
612
-
613
- _onPress(e: NativeSyntheticEvent<{payload: GeoJSON.Feature}>): void {
614
- if (isFunction(this.props.onPress)) {
615
- this.props.onPress(e.nativeEvent.payload);
616
- }
617
- }
618
-
619
- _onLongPress(e: NativeSyntheticEvent<{payload: GeoJSON.Feature}>): void {
620
- if (isFunction(this.props.onLongPress)) {
621
- this.props.onLongPress(e.nativeEvent.payload);
622
- }
623
- }
624
-
625
- _onRegionWillChange(
626
- payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
627
- ): void {
628
- if (isFunction(this.props.onRegionWillChange)) {
629
- this.props.onRegionWillChange(payload);
630
- }
631
- this.setState({isUserInteraction: payload.properties.isUserInteraction});
632
- }
633
-
634
- _onRegionDidChange(
635
- payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
636
- ): void {
637
- if (isFunction(this.props.onRegionDidChange)) {
638
- this.props.onRegionDidChange(payload);
639
- }
640
- this.setState({region: payload});
641
- }
642
-
643
- _onChange(
644
- e: NativeSyntheticEvent<{
645
- type: string;
646
- payload?: GeoJSON.Feature | Location;
647
- }>,
648
- ): void {
649
- const {regionWillChangeDebounceTime, regionDidChangeDebounceTime} =
650
- this.props;
651
- const {type, payload} = e.nativeEvent;
652
- let propName: CallableProps | undefined;
653
-
654
- switch (type) {
655
- case MapLibreGL.EventTypes.RegionWillChange:
656
- if (regionWillChangeDebounceTime && regionWillChangeDebounceTime > 0) {
657
- this._onDebouncedRegionWillChange(payload);
658
- } else {
659
- propName = 'onRegionWillChange';
774
+ const _setNativeRef = (nativeRef: RCTMLNMapViewRefType): void => {
775
+ _nativeRef.current = nativeRef;
776
+ _runPendingNativeCommands(nativeRef);
777
+ };
778
+
779
+ const setNativeProps = (props: NativeProps): void => {
780
+ if (_nativeRef.current) {
781
+ _nativeRef.current.setNativeProps(props);
660
782
  }
661
- break;
662
- case MapLibreGL.EventTypes.RegionIsChanging:
663
- propName = 'onRegionIsChanging';
664
- break;
665
- case MapLibreGL.EventTypes.RegionDidChange:
666
- if (regionDidChangeDebounceTime && regionDidChangeDebounceTime > 0) {
667
- this._onDebouncedRegionDidChange(payload);
668
- } else {
669
- propName = 'onRegionDidChange';
783
+ };
784
+
785
+ const _setStyleURL = (props: MapViewProps): void => {
786
+ // user set a styleURL, no need to alter props
787
+ if (props.styleURL) {
788
+ return;
670
789
  }
671
- break;
672
- case MapLibreGL.EventTypes.UserLocationUpdated:
673
- propName = 'onUserLocationUpdate';
674
- break;
675
- case MapLibreGL.EventTypes.WillStartLoadingMap:
676
- propName = 'onWillStartLoadingMap';
677
- break;
678
- case MapLibreGL.EventTypes.DidFinishLoadingMap:
679
- propName = 'onDidFinishLoadingMap';
680
- break;
681
- case MapLibreGL.EventTypes.DidFailLoadingMap:
682
- propName = 'onDidFailLoadingMap';
683
- break;
684
- case MapLibreGL.EventTypes.WillStartRenderingFrame:
685
- propName = 'onWillStartRenderingFrame';
686
- break;
687
- case MapLibreGL.EventTypes.DidFinishRenderingFrame:
688
- propName = 'onDidFinishRenderingFrame';
689
- break;
690
- case MapLibreGL.EventTypes.DidFinishRenderingFrameFully:
691
- propName = 'onDidFinishRenderingFrameFully';
692
- break;
693
- case MapLibreGL.EventTypes.WillStartRenderingMap:
694
- propName = 'onWillStartRenderingMap';
695
- break;
696
- case MapLibreGL.EventTypes.DidFinishRenderingMap:
697
- propName = 'onDidFinishRenderingMap';
698
- break;
699
- case MapLibreGL.EventTypes.DidFinishRenderingMapFully:
700
- propName = 'onDidFinishRenderingMapFully';
701
- break;
702
- case MapLibreGL.EventTypes.DidFinishLoadingStyle:
703
- propName = 'onDidFinishLoadingStyle';
704
- break;
705
- default:
706
- console.warn('Unhandled event callback type', type);
707
- }
708
-
709
- if (propName) {
710
- this._handleOnChange(propName, payload);
711
- }
712
- }
713
-
714
- _onLayout(e: LayoutChangeEvent): void {
715
- this.setState({
716
- isReady: true,
717
- width: e.nativeEvent.layout.width,
718
- height: e.nativeEvent.layout.height,
719
- });
720
- }
721
-
722
- _handleOnChange<T extends CallableProps>(
723
- propName: T,
724
- payload?: object,
725
- ): void {
726
- const callable = this.props[propName] as (payload?: object) => void;
727
- if (callable && isFunction(callable)) {
728
- callable(payload);
729
- }
730
- }
731
-
732
- _getContentInset(): number[] | undefined {
733
- if (!this.props.contentInset) {
734
- return;
735
- }
736
-
737
- if (!Array.isArray(this.props.contentInset)) {
738
- return [this.props.contentInset];
739
- }
740
-
741
- return this.props.contentInset;
742
- }
743
-
744
- _setNativeRef(nativeRef: RCTMGLMapViewRefType): void {
745
- this._nativeRef = nativeRef;
746
- super._runPendingNativeCommands(nativeRef);
747
- }
748
-
749
- setNativeProps(props: NativeProps): void {
750
- if (this._nativeRef) {
751
- this._nativeRef.setNativeProps(props);
752
- }
753
- }
754
-
755
- _setStyleURL(props: MapViewProps): void {
756
- // user set a styleURL, no need to alter props
757
- if (props.styleURL) {
758
- return;
759
- }
760
-
761
- // user set styleJSON pass it to styleURL
762
- if (props.styleJSON && !props.styleURL) {
763
- props.styleURL = props.styleJSON;
764
- }
765
-
766
- // user neither set styleJSON nor styleURL
767
- // set defaultStyleUrl
768
- if (!props.styleJSON || !props.styleURL) {
769
- props.styleURL = defaultStyleURL;
770
- }
771
- }
772
-
773
- render(): ReactElement {
774
- const props = {
775
- ...this.props,
776
- contentInset: this._getContentInset(),
777
- style: styles.matchParent,
778
- };
779
-
780
- this._setStyleURL(props);
781
-
782
- const callbacks = {
783
- ref: (ref: RCTMGLMapViewRefType) => this._setNativeRef(ref),
784
- onPress: this._onPress,
785
- onLongPress: this._onLongPress,
786
- onMapChange: this._onChange,
787
- onAndroidCallback: isAndroid() ? this._onAndroidCallback : undefined,
788
- };
789
-
790
- let mapView: ReactElement | null = null;
791
- if (isAndroid() && !this.props.surfaceView && this.state.isReady) {
792
- mapView = (
793
- <RCTMGLAndroidTextureMapView {...props} {...callbacks}>
794
- {this.props.children}
795
- </RCTMGLAndroidTextureMapView>
796
- );
797
- } else if (this.state.isReady) {
798
- mapView = (
799
- <RCTMGLMapView {...props} {...callbacks}>
800
- {this.props.children}
801
- </RCTMGLMapView>
790
+
791
+ // user set styleJSON pass it to styleURL
792
+ if (props.styleJSON && !props.styleURL) {
793
+ props.styleURL = props.styleJSON;
794
+ }
795
+
796
+ // user neither set styleJSON nor styleURL
797
+ // set defaultStyleUrl
798
+ if (!props.styleJSON || !props.styleURL) {
799
+ props.styleURL = defaultStyleURL;
800
+ }
801
+ };
802
+
803
+ const nativeProps = useMemo(() => {
804
+ return {
805
+ ...props,
806
+ localizeLabels,
807
+ scrollEnabled,
808
+ pitchEnabled,
809
+ rotateEnabled,
810
+ attributionEnabled,
811
+ logoEnabled,
812
+ surfaceView,
813
+ regionWillChangeDebounceTime,
814
+ regionDidChangeDebounceTime,
815
+ contentInsetValue,
816
+ style: styles.matchParent,
817
+ };
818
+ }, [
819
+ localizeLabels,
820
+ scrollEnabled,
821
+ pitchEnabled,
822
+ rotateEnabled,
823
+ attributionEnabled,
824
+ logoEnabled,
825
+ surfaceView,
826
+ regionWillChangeDebounceTime,
827
+ regionDidChangeDebounceTime,
828
+ contentInsetValue,
829
+ props,
830
+ contentInsetValue,
831
+ ]);
832
+
833
+ _setStyleURL(nativeProps);
834
+
835
+ const callbacks = {
836
+ ref: (ref: RCTMLNMapViewRefType): void => _setNativeRef(ref),
837
+ onPress: _onPress,
838
+ onLongPress: _onLongPress,
839
+ onMapChange: _onChange,
840
+ onAndroidCallback: isAndroid() ? _onAndroidCallback : undefined,
841
+ };
842
+
843
+ let mapView: ReactElement | null = null;
844
+ if (isAndroid() && !surfaceView && isReady) {
845
+ mapView = (
846
+ <RCTMLNAndroidTextureMapView {...nativeProps} {...callbacks}>
847
+ {props.children}
848
+ </RCTMLNAndroidTextureMapView>
849
+ );
850
+ } else if (isReady) {
851
+ mapView = (
852
+ <RCTMLNMapView {...nativeProps} {...callbacks}>
853
+ {props.children}
854
+ </RCTMLNMapView>
855
+ );
856
+ }
857
+
858
+ return (
859
+ <View
860
+ onLayout={_onLayout}
861
+ style={props.style}
862
+ testID={mapView ? undefined : props.testID}
863
+ >
864
+ {mapView}
865
+ </View>
802
866
  );
803
- }
804
-
805
- return (
806
- <View
807
- onLayout={this._onLayout}
808
- style={this.props.style}
809
- testID={mapView ? undefined : this.props.testID}>
810
- {mapView}
811
- </View>
812
- );
813
- }
814
- }
867
+ },
868
+ ),
869
+ );
815
870
 
816
- type RCTMGLMapViewRefType = Component<NativeProps> & Readonly<NativeMethods>;
817
- const RCTMGLMapView = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
871
+ type RCTMLNMapViewRefType = Component<NativeProps> & Readonly<NativeMethods>;
872
+ const RCTMLNMapView = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
818
873
 
819
- let RCTMGLAndroidTextureMapView: typeof RCTMGLMapView;
874
+ let RCTMLNAndroidTextureMapView: typeof RCTMLNMapView;
820
875
  if (isAndroid()) {
821
- RCTMGLAndroidTextureMapView = requireNativeComponent<NativeProps>(
876
+ RCTMLNAndroidTextureMapView = requireNativeComponent<NativeProps>(
822
877
  ANDROID_TEXTURE_NATIVE_MODULE_NAME,
823
878
  );
824
879
  }