@rnmapbox/maps 10.0.0-beta.28

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 (648) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +109 -0
  3. package/.gitattributes +1 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +75 -0
  5. package/.github/ISSUE_TEMPLATE/bug_setup.md +23 -0
  6. package/.github/ISSUE_TEMPLATE/feature.md +15 -0
  7. package/.github/dependabot.yml +42 -0
  8. package/.github/label-actions.yml +26 -0
  9. package/.github/pull_request_template.md +28 -0
  10. package/.github/stale.yml +11 -0
  11. package/.github/workflows/android-actions.yml +56 -0
  12. package/.github/workflows/bump-version.yml +54 -0
  13. package/.github/workflows/ios-actions.yml +81 -0
  14. package/.github/workflows/label-actions.yml +17 -0
  15. package/.github/workflows/on-push.yml +131 -0
  16. package/.github/workflows/publish.yml +29 -0
  17. package/.nvmrc +2 -0
  18. package/.prettierrc.js +4 -0
  19. package/.sonarcloud.properties +15 -0
  20. package/CHANGELOG.md +386 -0
  21. package/CONTRIBUTING.md +30 -0
  22. package/LICENSE.md +5 -0
  23. package/README-v10.md +86 -0
  24. package/README.md +283 -0
  25. package/RELEASE.md +28 -0
  26. package/android/install.md +137 -0
  27. package/android/rctmgl/.classpath +6 -0
  28. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
  29. package/android/rctmgl/build.gradle +148 -0
  30. package/android/rctmgl/proguard-rules.pro +25 -0
  31. package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
  32. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
  33. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
  34. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
  35. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
  36. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
  37. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +69 -0
  38. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
  39. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
  40. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
  41. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
  42. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
  43. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
  44. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
  45. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
  46. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
  47. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
  48. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
  49. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
  50. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
  51. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
  52. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
  53. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +67 -0
  54. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
  55. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
  56. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
  57. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
  58. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1528 -0
  59. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +355 -0
  60. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
  61. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
  62. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2275 -0
  63. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
  64. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +216 -0
  65. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
  66. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
  67. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
  68. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
  69. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
  70. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
  71. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
  72. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
  73. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
  74. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
  75. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
  76. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
  77. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
  78. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
  79. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
  80. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
  81. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
  82. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
  83. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
  84. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
  85. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
  86. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
  87. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
  88. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +316 -0
  89. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +253 -0
  90. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
  91. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
  92. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
  93. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
  94. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
  95. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
  96. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
  97. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
  98. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
  99. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/IEvent.java +18 -0
  100. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
  101. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
  102. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
  103. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
  104. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
  105. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
  106. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
  107. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
  108. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
  109. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
  110. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
  111. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/location/LocationManager.java +147 -0
  112. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/location/UserLocation.java +63 -0
  113. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
  114. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
  115. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
  116. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +159 -0
  117. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
  118. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLModule.java +376 -0
  119. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
  120. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
  121. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
  122. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/ClusterPropertyEntry.java +13 -0
  123. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
  124. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
  125. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
  126. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
  127. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
  128. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
  129. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
  130. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
  131. package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
  132. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/InstanceManagerImpl.java +35 -0
  133. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/LocationEngineCallbackImpl.java +12 -0
  134. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/LocationEngineResultImpl.java +18 -0
  135. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/LocationManagerImpl.java +64 -0
  136. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/PermissionsManagerImpl.java +10 -0
  137. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/SymbolClickListenerImpl.java +18 -0
  138. package/android/rctmgl/src/main/java-mapboxgl/mapbox/com/mapbox/rctmgl/impl/TelemetryImpl.java +11 -0
  139. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/InstanceManagerImpl.java +42 -0
  140. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/LocationEngineCallbackImpl.java +12 -0
  141. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/LocationEngineResultImpl.java +18 -0
  142. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/LocationManagerImpl.java +64 -0
  143. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/PermissionsManagerImpl.java +10 -0
  144. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/SymbolClickListenerImpl.java +18 -0
  145. package/android/rctmgl/src/main/java-mapboxgl/maplibre/com/mapbox/rctmgl/impl/TelemetryImpl.java +7 -0
  146. package/android/rctmgl/src/main/java-v10/README.md +0 -0
  147. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/RCTMGLPackage.java +111 -0
  148. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
  149. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.java +82 -0
  150. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractMapFeature.java +15 -0
  151. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.kt +6 -0
  152. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +18 -0
  153. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.kt +76 -0
  154. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
  155. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.kt +313 -0
  156. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +84 -0
  157. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/CameraStop.kt +228 -0
  158. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +167 -0
  159. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
  160. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +662 -0
  161. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +102 -0
  162. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +18 -0
  163. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImages.kt +201 -0
  164. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
  165. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/CameraMode.java +62 -0
  166. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/LocationComponentManager.java +215 -0
  167. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.kt +58 -0
  168. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +34 -0
  169. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/RenderMode.java +42 -0
  170. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/UserLocation.java +59 -0
  171. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/UserTrackingMode.java +54 -0
  172. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/OnMapReadyCallback.java +9 -0
  173. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
  174. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
  175. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +1070 -0
  176. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.kt +327 -0
  177. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +37 -0
  178. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/RCTMGLStyle.kt +62 -0
  179. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2638 -0
  180. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.kt +223 -0
  181. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTLayer.kt +274 -0
  182. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +23 -0
  183. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +60 -0
  184. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +53 -0
  185. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +73 -0
  186. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +51 -0
  187. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +76 -0
  188. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +51 -0
  189. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +77 -0
  190. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +51 -0
  191. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +73 -0
  192. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +51 -0
  193. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +75 -0
  194. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +24 -0
  195. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +60 -0
  196. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLSkyLayer.kt +35 -0
  197. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLSkyLayerManager.java +73 -0
  198. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +51 -0
  199. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +71 -0
  200. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.kt +47 -0
  201. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +25 -0
  202. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/AbstractSourceConsumer.kt +8 -0
  203. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +76 -0
  204. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +68 -0
  205. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterDemSource.java +122 -0
  206. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterDemSourceManager.java +64 -0
  207. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +43 -0
  208. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +39 -0
  209. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.kt +264 -0
  210. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.kt +198 -0
  211. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +103 -0
  212. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
  213. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +103 -0
  214. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +80 -0
  215. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTSource.kt +211 -0
  216. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/terrain/RCTMGLTerrain.kt +58 -0
  217. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/terrain/RCTMGLTerrainManager.kt +41 -0
  218. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AbstractEvent.java +62 -0
  219. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +34 -0
  220. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
  221. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
  222. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/IEvent.java +18 -0
  223. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
  224. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
  225. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/MapChangeEvent.java +43 -0
  226. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
  227. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/OfflineEvent.java +25 -0
  228. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +42 -0
  229. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
  230. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
  231. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.java +47 -0
  232. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/location/LocationManager.kt +199 -0
  233. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +7 -0
  234. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/location/UserTrackingState.java +15 -0
  235. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +160 -0
  236. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLLogging.kt +113 -0
  237. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLModule.kt +134 -0
  238. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.kt +653 -0
  239. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +151 -0
  240. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/BitmapUtils.java +183 -0
  241. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ConvertUtils.java +253 -0
  242. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/DownloadMapImageTask.kt +151 -0
  243. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ExpressionParser.java +73 -0
  244. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/GeoJSONUtils.kt +217 -0
  245. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
  246. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/LatLng.java +51 -0
  247. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/LatLngBounds.java +42 -0
  248. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/LatLngQuad.java +27 -0
  249. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/Logger.kt +120 -0
  250. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ReadableMapToValue.java +51 -0
  251. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ResourceUtils.java +26 -0
  252. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Point.kt +13 -0
  253. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/ReadableArray.kt +23 -0
  254. package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
  255. package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
  256. package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  257. package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
  258. package/android/rctmgl/src/main/res/values/strings.xml +3 -0
  259. package/app.plugin.js +1 -0
  260. package/assets/React-icon.svg +9 -0
  261. package/assets/beta-maps-example-point-annotation-960-d280759f6a3d8d75458f399c7a044926.webp +0 -0
  262. package/assets/beta-maps-guides-migrate-3d-terrain-960-48b1080117817ccfd92e434d0df7546f.webp +0 -0
  263. package/assets/heading.png +0 -0
  264. package/assets/heading@2x.png +0 -0
  265. package/assets/heading@3x.png +0 -0
  266. package/assets/indoor_building_map_android.png +0 -0
  267. package/assets/indoor_building_map_ios.png +0 -0
  268. package/assets/intro-examples.png +0 -0
  269. package/assets/mapbox_logo.png +0 -0
  270. package/assets/maps-examples-building-extrusions-960-aaa140cce77da4e8b2dd216032b191b6.webp +0 -0
  271. package/assets/maps-examples-camera-animators-960-a51d57db7243158d19e4fffb8363ac47.webp +0 -0
  272. package/assets/maps-examples-data-driven-symbols-960-2e2061a6b8127ef305c1b6c159f8dc65.webp +0 -0
  273. package/assets/sponsors/sth.png +0 -0
  274. package/assets/sponsors/terrain.dance.png +0 -0
  275. package/babel.config.js +9 -0
  276. package/docs/Annotation.md +39 -0
  277. package/docs/Annotations.md +17 -0
  278. package/docs/Atmosphere.md +265 -0
  279. package/docs/BackgroundLayer.md +166 -0
  280. package/docs/Callout.md +15 -0
  281. package/docs/Camera.md +34 -0
  282. package/docs/CircleLayer.md +470 -0
  283. package/docs/CustomHttpHeaders.md +87 -0
  284. package/docs/FillExtrusionLayer.md +433 -0
  285. package/docs/FillLayer.md +310 -0
  286. package/docs/GettingStarted.md +87 -0
  287. package/docs/HeadingIndicator.md +10 -0
  288. package/docs/HeatmapLayer.md +215 -0
  289. package/docs/ImageSource.md +12 -0
  290. package/docs/Images.md +12 -0
  291. package/docs/Light.md +159 -0
  292. package/docs/LineLayer.md +606 -0
  293. package/docs/Logger.md +23 -0
  294. package/docs/MapView.md +227 -0
  295. package/docs/MapboxGL.md +84 -0
  296. package/docs/MarkerView.md +14 -0
  297. package/docs/NativeUserLocation.md +11 -0
  298. package/docs/OfflineManager.md +262 -0
  299. package/docs/PointAnnotation.md +34 -0
  300. package/docs/RasterDemSource.md +15 -0
  301. package/docs/RasterLayer.md +357 -0
  302. package/docs/RasterSource.md +17 -0
  303. package/docs/ShapeSource.md +101 -0
  304. package/docs/SkyLayer.md +259 -0
  305. package/docs/Style.md +10 -0
  306. package/docs/StyleSheet.md +430 -0
  307. package/docs/SymbolLayer.md +1658 -0
  308. package/docs/Terrain.md +22 -0
  309. package/docs/UserLocation.md +39 -0
  310. package/docs/VectorSource.md +48 -0
  311. package/docs/docs.json +6415 -0
  312. package/docs/snapshotManager.md +53 -0
  313. package/index.d.ts +1050 -0
  314. package/ios/RCTMGL/CameraMode.h +18 -0
  315. package/ios/RCTMGL/CameraMode.m +18 -0
  316. package/ios/RCTMGL/CameraStop.h +26 -0
  317. package/ios/RCTMGL/CameraStop.m +83 -0
  318. package/ios/RCTMGL/CameraUpdateItem.h +18 -0
  319. package/ios/RCTMGL/CameraUpdateItem.m +178 -0
  320. package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
  321. package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
  322. package/ios/RCTMGL/FilterParser.h +14 -0
  323. package/ios/RCTMGL/FilterParser.m +22 -0
  324. package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
  325. package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
  326. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
  327. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
  328. package/ios/RCTMGL/MGLModule.h +13 -0
  329. package/ios/RCTMGL/MGLModule.m +335 -0
  330. package/ios/RCTMGL/MGLOfflineModule.h +19 -0
  331. package/ios/RCTMGL/MGLOfflineModule.m +537 -0
  332. package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
  333. package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
  334. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
  335. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
  336. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
  337. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
  338. package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
  339. package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
  340. package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
  341. package/ios/RCTMGL/RCTMGL.h +13 -0
  342. package/ios/RCTMGL/RCTMGL.m +13 -0
  343. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
  344. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
  345. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
  346. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
  347. package/ios/RCTMGL/RCTMGLCallout.h +15 -0
  348. package/ios/RCTMGL/RCTMGLCallout.m +74 -0
  349. package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
  350. package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
  351. package/ios/RCTMGL/RCTMGLCamera.h +39 -0
  352. package/ios/RCTMGL/RCTMGLCamera.m +258 -0
  353. package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
  354. package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
  355. package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
  356. package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
  357. package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
  358. package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
  359. package/ios/RCTMGL/RCTMGLEvent.h +21 -0
  360. package/ios/RCTMGL/RCTMGLEvent.m +47 -0
  361. package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
  362. package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
  363. package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
  364. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
  365. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
  366. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
  367. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
  368. package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
  369. package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
  370. package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
  371. package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
  372. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
  373. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
  374. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
  375. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
  376. package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
  377. package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
  378. package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
  379. package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
  380. package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
  381. package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
  382. package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
  383. package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
  384. package/ios/RCTMGL/RCTMGLImages.h +25 -0
  385. package/ios/RCTMGL/RCTMGLImages.m +126 -0
  386. package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
  387. package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
  388. package/ios/RCTMGL/RCTMGLLayer.h +52 -0
  389. package/ios/RCTMGL/RCTMGLLayer.m +236 -0
  390. package/ios/RCTMGL/RCTMGLLight.h +17 -0
  391. package/ios/RCTMGL/RCTMGLLight.m +46 -0
  392. package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
  393. package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
  394. package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
  395. package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
  396. package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
  397. package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
  398. package/ios/RCTMGL/RCTMGLLocation.h +19 -0
  399. package/ios/RCTMGL/RCTMGLLocation.m +32 -0
  400. package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
  401. package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
  402. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
  403. package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
  404. package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
  405. package/ios/RCTMGL/RCTMGLLogging.h +18 -0
  406. package/ios/RCTMGL/RCTMGLLogging.m +132 -0
  407. package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
  408. package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
  409. package/ios/RCTMGL/RCTMGLMapView.h +91 -0
  410. package/ios/RCTMGL/RCTMGLMapView.m +536 -0
  411. package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
  412. package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
  413. package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
  414. package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
  415. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
  416. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
  417. package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
  418. package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
  419. package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
  420. package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
  421. package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
  422. package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
  423. package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
  424. package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
  425. package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
  426. package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
  427. package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
  428. package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
  429. package/ios/RCTMGL/RCTMGLShapeSource.h +53 -0
  430. package/ios/RCTMGL/RCTMGLShapeSource.m +194 -0
  431. package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
  432. package/ios/RCTMGL/RCTMGLShapeSourceManager.m +206 -0
  433. package/ios/RCTMGL/RCTMGLSource.h +35 -0
  434. package/ios/RCTMGL/RCTMGLSource.m +143 -0
  435. package/ios/RCTMGL/RCTMGLStyle.h +222 -0
  436. package/ios/RCTMGL/RCTMGLStyle.m +1675 -0
  437. package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
  438. package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
  439. package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
  440. package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
  441. package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
  442. package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
  443. package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
  444. package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
  445. package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
  446. package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
  447. package/ios/RCTMGL/RCTMGLUtils.h +31 -0
  448. package/ios/RCTMGL/RCTMGLUtils.m +218 -0
  449. package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
  450. package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
  451. package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
  452. package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
  453. package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
  454. package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
  455. package/ios/RCTMGL/RNMBImageUtils.h +17 -0
  456. package/ios/RCTMGL/RNMBImageUtils.m +31 -0
  457. package/ios/RCTMGL/ViewManager.h +16 -0
  458. package/ios/RCTMGL/ViewManager.m +63 -0
  459. package/ios/RCTMGL-v10/Bridge/RCTMGL.h +7 -0
  460. package/ios/RCTMGL-v10/CommonLayerProperties.H +13 -0
  461. package/ios/RCTMGL-v10/Extensions/Array+asExpressions.swift +14 -0
  462. package/ios/RCTMGL-v10/Extensions/CLLocationCoordinate2D+toArray.swift +7 -0
  463. package/ios/RCTMGL-v10/Extensions/CLLocationCoordinate2D+validate.swift +29 -0
  464. package/ios/RCTMGL-v10/Extensions/CoordinateBounds+toArray.swift +10 -0
  465. package/ios/RCTMGL-v10/Extensions/DefaultStringInterpolation+optional.swift +5 -0
  466. package/ios/RCTMGL-v10/Extensions/Encodable+ToJSON.swift +13 -0
  467. package/ios/RCTMGL-v10/MGLModule.m +7 -0
  468. package/ios/RCTMGL-v10/MGLModule.swift +71 -0
  469. package/ios/RCTMGL-v10/MGLSnapshotModule.m +11 -0
  470. package/ios/RCTMGL-v10/MGLSnapshotModule.swift +106 -0
  471. package/ios/RCTMGL-v10/RCTLog.swift +19 -0
  472. package/ios/RCTMGL-v10/RCTMGLAtmosphere.swift +73 -0
  473. package/ios/RCTMGL-v10/RCTMGLAtmosphereManager.m +8 -0
  474. package/ios/RCTMGL-v10/RCTMGLAtmosphereManager.swift +13 -0
  475. package/ios/RCTMGL-v10/RCTMGLBackgroundLayer.swift +47 -0
  476. package/ios/RCTMGL-v10/RCTMGLBackgroundLayerManager.m +9 -0
  477. package/ios/RCTMGL-v10/RCTMGLBackgroundLayerManager.swift +13 -0
  478. package/ios/RCTMGL-v10/RCTMGLCallout.swift +3 -0
  479. package/ios/RCTMGL-v10/RCTMGLCalloutManager.m +8 -0
  480. package/ios/RCTMGL-v10/RCTMGLCalloutManager.swift +14 -0
  481. package/ios/RCTMGL-v10/RCTMGLCamera.swift +423 -0
  482. package/ios/RCTMGL-v10/RCTMGLCameraManager.m +20 -0
  483. package/ios/RCTMGL-v10/RCTMGLCameraManager.swift +14 -0
  484. package/ios/RCTMGL-v10/RCTMGLCircleLayer.swift +66 -0
  485. package/ios/RCTMGL-v10/RCTMGLCircleLayerManager.m +12 -0
  486. package/ios/RCTMGL-v10/RCTMGLCircleLayerManager.swift +13 -0
  487. package/ios/RCTMGL-v10/RCTMGLEvent.swift +47 -0
  488. package/ios/RCTMGL-v10/RCTMGLFeatureUtils.swift +79 -0
  489. package/ios/RCTMGL-v10/RCTMGLFillExtrusionLayerManager.m +12 -0
  490. package/ios/RCTMGL-v10/RCTMGLFillExtrusionLayerManager.swift +13 -0
  491. package/ios/RCTMGL-v10/RCTMGLFillExtrustionLayer.swift +46 -0
  492. package/ios/RCTMGL-v10/RCTMGLFillLayer.swift +50 -0
  493. package/ios/RCTMGL-v10/RCTMGLFillLayerManager.m +12 -0
  494. package/ios/RCTMGL-v10/RCTMGLFillLayerManager.swift +13 -0
  495. package/ios/RCTMGL-v10/RCTMGLHeatmapLayer.swift +50 -0
  496. package/ios/RCTMGL-v10/RCTMGLHeatmapLayerManager.m +12 -0
  497. package/ios/RCTMGL-v10/RCTMGLHeatmapLayetManager.swift +13 -0
  498. package/ios/RCTMGL-v10/RCTMGLImageQueue.swift +140 -0
  499. package/ios/RCTMGL-v10/RCTMGLImageSource.swift +61 -0
  500. package/ios/RCTMGL-v10/RCTMGLImageSourceManager.m +10 -0
  501. package/ios/RCTMGL-v10/RCTMGLImageSourceManager.swift +11 -0
  502. package/ios/RCTMGL-v10/RCTMGLImages.swift +197 -0
  503. package/ios/RCTMGL-v10/RCTMGLImagesManager.m +11 -0
  504. package/ios/RCTMGL-v10/RCTMGLImagesManager.swift +14 -0
  505. package/ios/RCTMGL-v10/RCTMGLInteractiveElement.swift +57 -0
  506. package/ios/RCTMGL-v10/RCTMGLLayer.swift +304 -0
  507. package/ios/RCTMGL-v10/RCTMGLLight.swift +56 -0
  508. package/ios/RCTMGL-v10/RCTMGLLightManager.m +9 -0
  509. package/ios/RCTMGL-v10/RCTMGLLightManager.swift +13 -0
  510. package/ios/RCTMGL-v10/RCTMGLLineLayer.swift +52 -0
  511. package/ios/RCTMGL-v10/RCTMGLLineLayerManager.m +12 -0
  512. package/ios/RCTMGL-v10/RCTMGLLineLayerManager.swift +13 -0
  513. package/ios/RCTMGL-v10/RCTMGLLocationModule.m +15 -0
  514. package/ios/RCTMGL-v10/RCTMGLLocationModule.swift +272 -0
  515. package/ios/RCTMGL-v10/RCTMGLLogging.m +8 -0
  516. package/ios/RCTMGL-v10/RCTMGLLogging.swift +133 -0
  517. package/ios/RCTMGL-v10/RCTMGLMapView.swift +914 -0
  518. package/ios/RCTMGL-v10/RCTMGLMapViewManager.m +88 -0
  519. package/ios/RCTMGL-v10/RCTMGLMapViewManager.swift +242 -0
  520. package/ios/RCTMGL-v10/RCTMGLMarkerView.swift +138 -0
  521. package/ios/RCTMGL-v10/RCTMGLMarkerViewManager.m +11 -0
  522. package/ios/RCTMGL-v10/RCTMGLMarkerViewManager.swift +14 -0
  523. package/ios/RCTMGL-v10/RCTMGLNativeUserLocation.swift +44 -0
  524. package/ios/RCTMGL-v10/RCTMGLNativeUserLocationManager.m +9 -0
  525. package/ios/RCTMGL-v10/RCTMGLNativeUserLocationManager.swift +11 -0
  526. package/ios/RCTMGL-v10/RCTMGLOfflineModule.m +32 -0
  527. package/ios/RCTMGL-v10/RCTMGLOfflineModule.swift +486 -0
  528. package/ios/RCTMGL-v10/RCTMGLPointAnnotation.swift +230 -0
  529. package/ios/RCTMGL-v10/RCTMGLPointAnnotationManager.m +22 -0
  530. package/ios/RCTMGL-v10/RCTMGLPointAnnotationManager.swift +34 -0
  531. package/ios/RCTMGL-v10/RCTMGLRasterDemSource.swift +57 -0
  532. package/ios/RCTMGL-v10/RCTMGLRasterDemSourceManager.m +20 -0
  533. package/ios/RCTMGL-v10/RCTMGLRasterDemSourceManager.swift +11 -0
  534. package/ios/RCTMGL-v10/RCTMGLRasterLayer.swift +48 -0
  535. package/ios/RCTMGL-v10/RCTMGLRasterLayerManager.m +12 -0
  536. package/ios/RCTMGL-v10/RCTMGLRasterLayerManager.swift +13 -0
  537. package/ios/RCTMGL-v10/RCTMGLRasterSource.swift +51 -0
  538. package/ios/RCTMGL-v10/RCTMGLRasterSourceManager.m +18 -0
  539. package/ios/RCTMGL-v10/RCTMGLRasterSourceManager.swift +14 -0
  540. package/ios/RCTMGL-v10/RCTMGLShapeSource.swift +277 -0
  541. package/ios/RCTMGL-v10/RCTMGLShapeSourceManager.m +44 -0
  542. package/ios/RCTMGL-v10/RCTMGLShapeSourceManager.swift +106 -0
  543. package/ios/RCTMGL-v10/RCTMGLSingletonLayer.swift +41 -0
  544. package/ios/RCTMGL-v10/RCTMGLSkyLayer.swift +52 -0
  545. package/ios/RCTMGL-v10/RCTMGLSkyLayerManager.m +9 -0
  546. package/ios/RCTMGL-v10/RCTMGLSkyLayerManager.swift +13 -0
  547. package/ios/RCTMGL-v10/RCTMGLSource.swift +65 -0
  548. package/ios/RCTMGL-v10/RCTMGLStyle.swift +2509 -0
  549. package/ios/RCTMGL-v10/RCTMGLStyleValue.swift +446 -0
  550. package/ios/RCTMGL-v10/RCTMGLSymbolLayer.swift +51 -0
  551. package/ios/RCTMGL-v10/RCTMGLSymbolLayerManager.m +12 -0
  552. package/ios/RCTMGL-v10/RCTMGLSymbolLayerManager.swift +13 -0
  553. package/ios/RCTMGL-v10/RCTMGLTerrain.swift +97 -0
  554. package/ios/RCTMGL-v10/RCTMGLTerrainManager.m +16 -0
  555. package/ios/RCTMGL-v10/RCTMGLTerrainManager.swift +13 -0
  556. package/ios/RCTMGL-v10/RCTMGLTileSource.swift +5 -0
  557. package/ios/RCTMGL-v10/RCTMGLUtils.swift +53 -0
  558. package/ios/RCTMGL-v10/RCTMGLVectorLayer.m +58 -0
  559. package/ios/RCTMGL-v10/RCTMGLVectorLayer.swift +49 -0
  560. package/ios/RCTMGL-v10/RCTMGLVectorSource.swift +57 -0
  561. package/ios/RCTMGL-v10/RCTMGLVectorSourceManager.m +21 -0
  562. package/ios/RCTMGL-v10/RCTMGLVectorSourceManager.swift +11 -0
  563. package/ios/RCTMGL-v10/RCTSwiftLog.h +11 -0
  564. package/ios/RCTMGL-v10/RCTSwiftLog.m +32 -0
  565. package/ios/RCTMGL-v10/README.md +1 -0
  566. package/ios/RCTMGL-v10/RNMBImageUtils.swift +20 -0
  567. package/ios/install.md +102 -0
  568. package/javascript/components/AbstractLayer.js +49 -0
  569. package/javascript/components/AbstractSource.js +15 -0
  570. package/javascript/components/Atmosphere.tsx +28 -0
  571. package/javascript/components/BackgroundLayer.js +97 -0
  572. package/javascript/components/Callout.js +139 -0
  573. package/javascript/components/Camera.tsx +526 -0
  574. package/javascript/components/CircleLayer.js +101 -0
  575. package/javascript/components/FillExtrusionLayer.js +98 -0
  576. package/javascript/components/FillLayer.js +94 -0
  577. package/javascript/components/HeadingIndicator.js +31 -0
  578. package/javascript/components/HeatmapLayer.js +99 -0
  579. package/javascript/components/ImageSource.js +82 -0
  580. package/javascript/components/Images.js +119 -0
  581. package/javascript/components/Light.js +47 -0
  582. package/javascript/components/LineLayer.js +94 -0
  583. package/javascript/components/MapView.js +883 -0
  584. package/javascript/components/MarkerView.js +91 -0
  585. package/javascript/components/NativeBridgeComponent.js +86 -0
  586. package/javascript/components/NativeUserLocation.js +41 -0
  587. package/javascript/components/PointAnnotation.js +217 -0
  588. package/javascript/components/RasterDemSource.js +106 -0
  589. package/javascript/components/RasterLayer.js +95 -0
  590. package/javascript/components/RasterSource.js +124 -0
  591. package/javascript/components/ShapeSource.js +373 -0
  592. package/javascript/components/SkyLayer.js +80 -0
  593. package/javascript/components/Style.js +265 -0
  594. package/javascript/components/SymbolLayer.js +120 -0
  595. package/javascript/components/Terrain.js +56 -0
  596. package/javascript/components/UserLocation.js +274 -0
  597. package/javascript/components/VectorSource.js +200 -0
  598. package/javascript/components/annotations/Annotation.js +123 -0
  599. package/javascript/index.js +139 -0
  600. package/javascript/modules/location/locationManager.js +101 -0
  601. package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
  602. package/javascript/modules/offline/OfflinePack.js +40 -0
  603. package/javascript/modules/offline/offlineManager.js +391 -0
  604. package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
  605. package/javascript/modules/snapshot/snapshotManager.js +62 -0
  606. package/javascript/requestAndroidLocationPermissions.ts +30 -0
  607. package/javascript/types/index.ts +23 -0
  608. package/javascript/utils/BridgeValue.js +81 -0
  609. package/javascript/utils/Logger.js +116 -0
  610. package/javascript/utils/MapboxStyles.ts +1484 -0
  611. package/javascript/utils/StyleValue.ts +44 -0
  612. package/javascript/utils/animated/Animated.js +39 -0
  613. package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
  614. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
  615. package/javascript/utils/animated/AnimatedPoint.js +126 -0
  616. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +143 -0
  617. package/javascript/utils/animated/AnimatedShape.js +72 -0
  618. package/javascript/utils/deprecation.js +25 -0
  619. package/javascript/utils/filterUtils.js +7 -0
  620. package/javascript/utils/geoUtils.js +73 -0
  621. package/javascript/utils/index.js +124 -0
  622. package/javascript/utils/resolveAssetSource.d.ts +5 -0
  623. package/javascript/utils/styleMap.js +2181 -0
  624. package/package.json +109 -0
  625. package/plugin/build/withMapbox.d.ts +17 -0
  626. package/plugin/build/withMapbox.js +286 -0
  627. package/plugin/install.md +53 -0
  628. package/react-native.config.js +12 -0
  629. package/rnmapbox-maps.podspec +264 -0
  630. package/scripts/.eslintrc.js +12 -0
  631. package/scripts/autogenHelpers/DocJSONBuilder.js +345 -0
  632. package/scripts/autogenHelpers/JSDocNodeTree.js +134 -0
  633. package/scripts/autogenHelpers/MarkdownBuilder.js +38 -0
  634. package/scripts/autogenHelpers/globals.js +507 -0
  635. package/scripts/autogenerate.js +530 -0
  636. package/scripts/download-style-spec.sh +15 -0
  637. package/scripts/templates/MapboxStyles.ts.ejs +92 -0
  638. package/scripts/templates/RCTMGLStyle.h.ejs +34 -0
  639. package/scripts/templates/RCTMGLStyle.m.ejs +106 -0
  640. package/scripts/templates/RCTMGLStyle.swift.ejs +116 -0
  641. package/scripts/templates/RCTMGLStyleFactory.java.ejs +108 -0
  642. package/scripts/templates/RCTMGLStyleFactoryv10.java.ejs +115 -0
  643. package/scripts/templates/component.md.ejs +122 -0
  644. package/scripts/templates/index.d.ts.ejs +56 -0
  645. package/scripts/templates/styleMap.js.ejs +115 -0
  646. package/setup-jest.js +125 -0
  647. package/style-spec/v8.json +6692 -0
  648. package/tsconfig.json +24 -0
@@ -0,0 +1,1070 @@
1
+ package com.mapbox.rctmgl.components.mapview
2
+
3
+ import android.content.Context
4
+ import android.graphics.BitmapFactory
5
+ import android.graphics.PointF
6
+ import android.graphics.RectF
7
+ import android.view.Gravity
8
+ import android.view.View
9
+ import android.view.ViewGroup
10
+ import android.widget.FrameLayout
11
+ import com.facebook.react.bridge.*
12
+ import com.mapbox.android.gestures.MoveGestureDetector
13
+ import com.mapbox.geojson.Feature
14
+ import com.mapbox.geojson.FeatureCollection
15
+ import com.mapbox.geojson.Point
16
+ import com.mapbox.maps.*
17
+ import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData
18
+ import com.mapbox.maps.extension.style.expressions.generated.Expression
19
+ import com.mapbox.maps.extension.style.layers.Layer
20
+ import com.mapbox.maps.extension.style.layers.generated.*
21
+ import com.mapbox.maps.extension.style.layers.getLayer
22
+ import com.mapbox.maps.extension.style.layers.properties.generated.Visibility
23
+ import com.mapbox.maps.plugin.annotation.annotations
24
+ import com.mapbox.maps.plugin.annotation.generated.OnPointAnnotationClickListener
25
+ import com.mapbox.maps.plugin.annotation.generated.PointAnnotation
26
+ import com.mapbox.maps.plugin.annotation.generated.PointAnnotationManager
27
+ import com.mapbox.maps.plugin.annotation.generated.createPointAnnotationManager
28
+ import com.mapbox.maps.plugin.attribution.attribution
29
+ import com.mapbox.maps.plugin.attribution.generated.AttributionSettings
30
+ import com.mapbox.maps.plugin.compass.compass
31
+ import com.mapbox.maps.plugin.delegates.listeners.*
32
+ import com.mapbox.maps.plugin.gestures.*
33
+ import com.mapbox.maps.plugin.logo.generated.LogoSettings
34
+ import com.mapbox.maps.plugin.logo.logo
35
+ import com.mapbox.rctmgl.R
36
+ import com.mapbox.rctmgl.components.AbstractMapFeature
37
+ import com.mapbox.rctmgl.components.annotation.RCTMGLMarkerView
38
+ import com.mapbox.rctmgl.components.annotation.RCTMGLPointAnnotation
39
+ import com.mapbox.rctmgl.components.camera.RCTMGLCamera
40
+ import com.mapbox.rctmgl.components.images.RCTMGLImages
41
+ import com.mapbox.rctmgl.components.location.LocationComponentManager
42
+ import com.mapbox.rctmgl.components.location.RCTMGLNativeUserLocation
43
+ import com.mapbox.rctmgl.components.mapview.helpers.CameraChangeTracker
44
+ import com.mapbox.rctmgl.components.styles.layers.RCTLayer
45
+ import com.mapbox.rctmgl.components.styles.light.RCTMGLLight
46
+ import com.mapbox.rctmgl.components.styles.sources.RCTSource
47
+ import com.mapbox.rctmgl.components.styles.terrain.RCTMGLTerrain
48
+ import com.mapbox.rctmgl.events.AndroidCallbackEvent
49
+ import com.mapbox.rctmgl.events.IEvent
50
+ import com.mapbox.rctmgl.events.MapChangeEvent
51
+ import com.mapbox.rctmgl.events.MapClickEvent
52
+ import com.mapbox.rctmgl.events.constants.EventTypes
53
+ import com.mapbox.rctmgl.utils.GeoJSONUtils
54
+ import com.mapbox.rctmgl.utils.LatLng
55
+ import com.mapbox.rctmgl.utils.Logger
56
+ import com.mapbox.rctmgl.utils.extensions.toReadableArray
57
+ import org.json.JSONException
58
+ import org.json.JSONObject
59
+ import java.util.*
60
+
61
+
62
+ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapViewManager /*, MapboxMapOptions options*/) : MapView(mContext), OnMapClickListener, OnMapLongClickListener {
63
+ private val mSources: MutableMap<String, RCTSource<*>>
64
+ private val mImages: MutableList<RCTMGLImages>
65
+ private var mPointAnnotationManager: PointAnnotationManager? = null
66
+ private var mActiveMarkerID: Long = -1
67
+ private var mStyleURL: String? = null
68
+ val isDestroyed = false
69
+ private var mCamera: RCTMGLCamera? = null
70
+ private val mFeatures: MutableList<AbstractMapFeature> = ArrayList()
71
+ private var mQueuedFeatures: MutableList<AbstractMapFeature>? = ArrayList()
72
+ private val mPointAnnotations: MutableMap<String, RCTMGLPointAnnotation>
73
+ private val mCameraChangeTracker = CameraChangeTracker()
74
+ private val mMap: MapboxMap?
75
+
76
+ // v10todo, style gets null if we add anyhing
77
+ var savedStyle: Style? = null
78
+ private set
79
+ private val mHandledMapChangedEvents: HashSet<String>? = null
80
+ private var mOffscreenAnnotationViewContainer: ViewGroup? = null
81
+ private var mAnnotationClicked = false
82
+ private var mLocationComponentManager: LocationComponentManager? = null
83
+ var tintColor: Int? = null
84
+ private set
85
+
86
+ val pointAnnotationManager: PointAnnotationManager?
87
+ get() {
88
+ if (mPointAnnotationManager == null) {
89
+ val _this = this
90
+ val gesturesPlugin: GesturesPlugin = this.gestures
91
+ gesturesPlugin.removeOnMapClickListener(_this)
92
+
93
+ mPointAnnotationManager = annotations.createPointAnnotationManager()
94
+ mPointAnnotationManager?.addClickListener(OnPointAnnotationClickListener { pointAnnotation ->
95
+ onMarkerClick(pointAnnotation)
96
+ false
97
+ }
98
+ )
99
+ gesturesPlugin.addOnMapClickListener(_this)
100
+
101
+ }
102
+ return mPointAnnotationManager
103
+ }
104
+
105
+ private fun onMapReady(map: MapboxMap) {
106
+ map.getStyle(object : Style.OnStyleLoaded {
107
+ override fun onStyleLoaded(style: Style) {
108
+ savedStyle = style
109
+ createSymbolManager(style)
110
+ setUpImage(style)
111
+ addQueuedFeatures()
112
+ setupLocalization(style)
113
+ }
114
+ })
115
+ val _this = this
116
+
117
+ map.addOnCameraChangeListener(OnCameraChangeListener { cameraChangedEventData ->
118
+ handleMapChangedEvent(EventTypes.REGION_IS_CHANGING)
119
+ })
120
+
121
+ map.addOnMapIdleListener(OnMapIdleListener { mapIdleEventData ->
122
+ sendRegionDidChangeEvent()
123
+ })
124
+
125
+ val gesturesPlugin: GesturesPlugin = this.gestures
126
+ gesturesPlugin.addOnMapLongClickListener(_this)
127
+ gesturesPlugin.addOnMapClickListener(_this)
128
+
129
+ gesturesPlugin.addOnMoveListener(object : OnMoveListener {
130
+ override fun onMoveBegin(moveGestureDetector: MoveGestureDetector) {
131
+ mCameraChangeTracker.setReason(CameraChangeTracker.USER_GESTURE)
132
+ handleMapChangedEvent(EventTypes.REGION_WILL_CHANGE)
133
+ }
134
+
135
+ override fun onMove(moveGestureDetector: MoveGestureDetector): Boolean {
136
+ mCameraChangeTracker.setReason(CameraChangeTracker.USER_GESTURE)
137
+ handleMapChangedEvent(EventTypes.REGION_IS_CHANGING)
138
+ return false
139
+ }
140
+
141
+ override fun onMoveEnd(moveGestureDetector: MoveGestureDetector) {}
142
+ })
143
+
144
+
145
+ map.subscribe({ event -> Logger.e(LOG_TAG, String.format("Map load failed: %s", event.data.toString())) }, Arrays.asList(MapEvents.MAP_LOADING_ERROR))
146
+ }
147
+
148
+ fun init() {
149
+ // Required for rendering properly in Android Oreo
150
+ viewTreeObserver.dispatchOnGlobalLayout()
151
+ }
152
+
153
+ fun getStyle(onStyleLoaded: Style.OnStyleLoaded) {
154
+ if (mMap == null) {
155
+ return
156
+ }
157
+ mMap.getStyle(onStyleLoaded)
158
+ }
159
+
160
+ fun addFeature(childView: View?, childPosition: Int) {
161
+ var feature: AbstractMapFeature? = null
162
+ if (childView is RCTSource<*>) {
163
+ val source = childView
164
+ mSources[source.iD.toString()] = source
165
+ feature = childView as AbstractMapFeature?
166
+ } else if (childView is RCTMGLImages) {
167
+ mImages.add(childView)
168
+ feature = childView
169
+ } else if (childView is RCTMGLLight) {
170
+ feature = childView
171
+ } else if (childView is RCTMGLTerrain) {
172
+ feature = childView as AbstractMapFeature?
173
+ } else if (childView is RCTMGLNativeUserLocation) {
174
+ feature = childView
175
+ } else if (childView is RCTMGLPointAnnotation) {
176
+ val annotation = childView
177
+ mPointAnnotations[annotation.iD.toString()] = annotation
178
+ feature = childView
179
+ } else if (childView is RCTMGLMarkerView) {
180
+ val marker = childView
181
+ feature = childView
182
+ } else if (childView is RCTMGLCamera) {
183
+ mCamera = childView
184
+ feature = childView
185
+ } else if (childView is RCTLayer<*>) {
186
+ feature = childView as AbstractMapFeature?
187
+ } else if (childView is ViewGroup) {
188
+ val children = childView
189
+ for (i in 0 until children.childCount) {
190
+ addFeature(children.getChildAt(i), childPosition)
191
+ }
192
+ }
193
+ if (feature != null) {
194
+ if (mQueuedFeatures == null) {
195
+ feature.addToMap(this)
196
+ mFeatures.add(childPosition, feature)
197
+ } else {
198
+ mQueuedFeatures?.add(childPosition, feature)
199
+ }
200
+ }
201
+ }
202
+
203
+ fun removeFeature(childPosition: Int) {
204
+ val feature = features()[childPosition]
205
+ ?: return
206
+ if (feature is RCTSource<*>) {
207
+ mSources.remove(feature.iD)
208
+ } else if (feature is RCTMGLPointAnnotation) {
209
+ val annotation = feature
210
+ if (annotation.mapboxID == mActiveMarkerID) {
211
+ mActiveMarkerID = -1
212
+ }
213
+ mPointAnnotations.remove(annotation.iD)
214
+ } else if (feature is RCTMGLImages) {
215
+ mImages.remove(feature)
216
+ }
217
+ feature.removeFromMap(this)
218
+ features().remove(feature)
219
+ }
220
+
221
+ private fun features(): MutableList<AbstractMapFeature> {
222
+ return if (mQueuedFeatures != null && mQueuedFeatures!!.size > 0) (
223
+ mQueuedFeatures!!
224
+ )
225
+ else {
226
+ mFeatures
227
+ }
228
+ }
229
+
230
+ val featureCount: Int
231
+ get() = features().size
232
+
233
+ fun getFeatureAt(i: Int): AbstractMapFeature {
234
+ return features()[i]
235
+ }
236
+
237
+ fun sendRegionChangeEvent(isAnimated: Boolean) {
238
+ val event: IEvent = MapChangeEvent(this, EventTypes.REGION_DID_CHANGE,
239
+ makeRegionPayload(isAnimated))
240
+ mManager.handleEvent(event)
241
+ mCameraChangeTracker.setReason(CameraChangeTracker.EMPTY)
242
+ }
243
+
244
+ private fun removeAllSourcesFromMap() {
245
+ if (mSources.size == 0) {
246
+ return
247
+ }
248
+ for (key in mSources.keys) {
249
+ val source = mSources[key]
250
+ source?.removeFromMap(this)
251
+ }
252
+ }
253
+
254
+ private fun addAllSourcesToMap() {
255
+ if (mSources.size == 0) {
256
+ return
257
+ }
258
+ for (key in mSources.keys) {
259
+ val source = mSources[key]
260
+ source?.addToMap(this)
261
+ }
262
+ }
263
+
264
+ private val allTouchableSources: List<RCTSource<*>>
265
+ private get() {
266
+ val sources: MutableList<RCTSource<*>> = ArrayList()
267
+ for (key in mSources.keys) {
268
+ val source = mSources[key]
269
+ if (source != null && source.hasPressListener()) {
270
+ sources.add(source)
271
+ }
272
+ }
273
+ return sources
274
+ }
275
+
276
+ private fun getTouchableSourceWithHighestZIndex(sources: List<RCTSource<*>>?): RCTSource<*>? {
277
+ if (sources == null || sources.size == 0) {
278
+ return null
279
+ }
280
+ if (sources.size == 1) {
281
+ return sources[0]
282
+ }
283
+ val layerToSourceMap: MutableMap<String, RCTSource<*>> = HashMap()
284
+ for (source in sources) {
285
+ val layerIDs: Array<out String>? = source.layerIDs.toTypedArray()
286
+ if (layerIDs != null) {
287
+ for (layerID in layerIDs) {
288
+ layerToSourceMap[layerID] = source
289
+ }
290
+ }
291
+ }
292
+ val mapboxLayers = mMap?.getStyle()?.styleLayers
293
+ if (mapboxLayers != null) {
294
+ for (i in mapboxLayers.indices.reversed()) {
295
+ val mapboxLayer = mapboxLayers[i]
296
+ val layerID = mapboxLayer.id
297
+ if (layerToSourceMap.containsKey(layerID)) {
298
+ return layerToSourceMap[layerID]
299
+ }
300
+ }
301
+ }
302
+ return null
303
+ }
304
+
305
+ fun isJSONValid(test: String?): Boolean {
306
+ if (test == null) {
307
+ return false
308
+ }
309
+ try {
310
+ JSONObject(test)
311
+ } catch (ex: JSONException) {
312
+ return false
313
+ }
314
+ return true
315
+ }
316
+
317
+ fun setReactStyleURL(styleURL: String) {
318
+ if (mMap != null) {
319
+ removeAllSourcesFromMap()
320
+ if (isJSONValid(mStyleURL)) {
321
+ mMap.loadStyleJson(styleURL, object : Style.OnStyleLoaded {
322
+ override fun onStyleLoaded(style: Style) {
323
+ addAllSourcesToMap()
324
+ }
325
+ })
326
+ } else {
327
+ mMap.loadStyleUri(styleURL, object : Style.OnStyleLoaded {
328
+ override fun onStyleLoaded(style: Style) {
329
+ savedStyle = style
330
+ addAllSourcesToMap()
331
+ addQueuedFeatures()
332
+ }
333
+ },
334
+ object : OnMapLoadErrorListener {
335
+ override fun onMapLoadError(mapLoadingErrorEventData: MapLoadingErrorEventData) {
336
+ Logger.w("MapLoadError", mapLoadingErrorEventData.message)
337
+ }
338
+ }
339
+ )
340
+ }
341
+ }
342
+ }
343
+
344
+ interface HandleTap {
345
+ fun run(hitTouchableSources: List<RCTSource<*>?>?, hits: Map<String?, List<Feature?>?>)
346
+ }
347
+
348
+ fun handleTapInSources(
349
+ sources: LinkedList<RCTSource<*>>, screenPoint: ScreenCoordinate,
350
+ hits: HashMap<String?, List<Feature?>?>,
351
+ hitTouchableSources: ArrayList<RCTSource<*>?>,
352
+ handleTap: HandleTap
353
+ ) {
354
+ if (sources.isEmpty()) {
355
+ handleTap.run(hitTouchableSources, hits)
356
+ return
357
+ }
358
+ val source = sources.removeFirst()
359
+ val hitbox = source.touchHitbox
360
+ if (hitbox != null) {
361
+ val halfWidth = (hitbox["width"]!!.toFloat() / 2.0f).toDouble()
362
+ val halfHeight = (hitbox["height"]!!.toFloat() / 2.0f).toDouble()
363
+ val screenBox = ScreenBox(
364
+ ScreenCoordinate(screenPoint.x - halfWidth,
365
+ screenPoint.y - halfHeight
366
+ ),
367
+ ScreenCoordinate(screenPoint.x + halfWidth,
368
+ screenPoint.y + halfHeight)
369
+ )
370
+ getMapboxMap().queryRenderedFeatures(RenderedQueryGeometry(screenBox),
371
+ RenderedQueryOptions(
372
+ source.layerIDs,
373
+ null
374
+ )
375
+ ) { features ->
376
+ if (features.isValue) {
377
+ if (features.value!!.size > 0) {
378
+ val featuresList = ArrayList<Feature?>()
379
+ for (i in features.value!!) {
380
+ featuresList.add(i.feature)
381
+ }
382
+ hits[source.iD] = featuresList
383
+ hitTouchableSources.add(source)
384
+ }
385
+ } else {
386
+ Logger.e("handleTapInSources", features.error ?: "n/a")
387
+ }
388
+ handleTapInSources(sources, screenPoint, hits, hitTouchableSources, handleTap)
389
+ }
390
+ }
391
+ }
392
+
393
+ override fun onMapClick(point: Point): Boolean {
394
+ val _this = this
395
+ /*if (mPointAnnotationManager != nil) {
396
+ getAnnotations()
397
+ }*/if (mAnnotationClicked) {
398
+ mAnnotationClicked = false
399
+ return true
400
+ }
401
+ val screenPoint = mMap?.pixelForCoordinate(point)
402
+ val touchableSources = allTouchableSources
403
+ val hits = HashMap<String?, List<Feature?>?>()
404
+ if (screenPoint != null) {
405
+ handleTapInSources(LinkedList(touchableSources), screenPoint, hits, ArrayList(), object : HandleTap {
406
+ override fun run(hitTouchableSources: List<RCTSource<*>?>?, hits: Map<String?, List<Feature?>?>) {
407
+ if (hits.size > 0) {
408
+ val source = getTouchableSourceWithHighestZIndex(hitTouchableSources as List<RCTSource<*>>?)
409
+ if (source != null && source.hasPressListener() && source.iD != null && source.iD in hits) {
410
+ source.onPress(RCTSource.OnPressEvent(
411
+ hits[source.iD] as List<Feature>,
412
+ GeoJSONUtils.toLatLng(point),
413
+ PointF(screenPoint.x.toFloat(), screenPoint.y.toFloat())
414
+ ))
415
+ return
416
+ }
417
+ }
418
+ val event = MapClickEvent(_this, LatLng(point), screenPoint)
419
+ mManager.handleEvent(event)
420
+ }
421
+
422
+ })
423
+ }
424
+ return false
425
+ }
426
+
427
+ override fun onMapLongClick(point: Point): Boolean {
428
+ val _this = this
429
+ val screenPoint = mMap?.pixelForCoordinate(point)
430
+ if (screenPoint != null) {
431
+ val event = MapClickEvent(_this, LatLng(point), screenPoint, EventTypes.MAP_LONG_CLICK)
432
+ mManager.handleEvent(event)
433
+ }
434
+
435
+ return false
436
+ }
437
+
438
+ fun onMarkerClick(symbol: PointAnnotation) {
439
+ mAnnotationClicked = true
440
+ val selectedMarkerID = symbol.id
441
+ var activeAnnotation: RCTMGLPointAnnotation? = null
442
+ var nextActiveAnnotation: RCTMGLPointAnnotation? = null
443
+ for (key in mPointAnnotations.keys) {
444
+ val annotation = mPointAnnotations[key]
445
+ val curMarkerID = annotation?.mapboxID
446
+ if (mActiveMarkerID == curMarkerID) {
447
+ activeAnnotation = annotation
448
+ }
449
+ if (selectedMarkerID == curMarkerID && mActiveMarkerID != curMarkerID) {
450
+ nextActiveAnnotation = annotation
451
+ }
452
+ }
453
+ activeAnnotation?.let { deselectAnnotation(it) }
454
+ nextActiveAnnotation?.let { selectAnnotation(it) }
455
+ }
456
+
457
+ fun selectAnnotation(annotation: RCTMGLPointAnnotation) {
458
+ mActiveMarkerID = annotation.mapboxID
459
+ annotation.onSelect(true)
460
+ }
461
+
462
+ fun deselectAnnotation(annotation: RCTMGLPointAnnotation) {
463
+ mActiveMarkerID = -1
464
+ annotation.onDeselect()
465
+ }
466
+
467
+ interface FoundLayerCallback {
468
+ fun found(layer: Layer?)
469
+ }
470
+
471
+ private val layerWaiters: MutableMap<String, MutableList<FoundLayerCallback>> = HashMap()
472
+ fun layerAdded(layer: Layer) {
473
+ val layerId = layer.layerId
474
+ val callbacks: List<FoundLayerCallback>? = layerWaiters[layerId]
475
+ if (callbacks != null) {
476
+ for (callback in callbacks) {
477
+ callback.found(layer)
478
+ }
479
+ }
480
+ layerWaiters.remove(layerId)
481
+ }
482
+
483
+ fun waitForLayer(layerID: String, callback: FoundLayerCallback) {
484
+ if (savedStyle != null) {
485
+ val layer = savedStyle?.getLayer(layerID)
486
+ if (layer != null) {
487
+ callback.found(layer)
488
+ return
489
+ }
490
+ }
491
+ var waiters = layerWaiters[layerID]
492
+ if (waiters == null) {
493
+ waiters = ArrayList()
494
+ layerWaiters[layerID] = waiters
495
+ }
496
+ waiters.add(callback)
497
+ }
498
+
499
+ fun sendRegionDidChangeEvent() {
500
+ handleMapChangedEvent(EventTypes.REGION_DID_CHANGE)
501
+ mCameraChangeTracker.setReason(CameraChangeTracker.EMPTY)
502
+ }
503
+
504
+ private fun handleMapChangedEvent(eventType: String) {
505
+ if (!canHandleEvent(eventType)) return
506
+ val event: IEvent
507
+ event = when (eventType) {
508
+ EventTypes.REGION_WILL_CHANGE, EventTypes.REGION_DID_CHANGE, EventTypes.REGION_IS_CHANGING -> MapChangeEvent(this, eventType, makeRegionPayload(null))
509
+ else -> MapChangeEvent(this, eventType)
510
+ }
511
+ mManager.handleEvent(event)
512
+ }
513
+
514
+ private fun canHandleEvent(event: String): Boolean {
515
+ return mHandledMapChangedEvents == null || mHandledMapChangedEvents.contains(event)
516
+ }
517
+
518
+ private fun makeRegionPayload(isAnimated: Boolean?): WritableMap {
519
+ val position = mMap?.cameraState ?: return WritableNativeMap()
520
+ val latLng = LatLng(position.center.latitude(), position.center.longitude())
521
+ val properties: WritableMap = WritableNativeMap()
522
+ properties.putDouble("zoomLevel", position.zoom)
523
+ properties.putDouble("heading", position.bearing)
524
+ properties.putDouble("pitch", position.pitch)
525
+ properties.putBoolean("animated",
526
+ if (null == isAnimated) mCameraChangeTracker.isAnimated else isAnimated)
527
+ properties.putBoolean("isUserInteraction", mCameraChangeTracker.isUserInteraction)
528
+ try {
529
+ val bounds = mMap.coordinateBoundsForCamera(position.toCameraOptions())
530
+ properties.putArray("visibleBounds", GeoJSONUtils.fromCoordinateBounds(bounds))
531
+ } catch (ex: Exception) {
532
+ Logger.e(LOG_TAG, "An error occurred while attempting to make the region", ex)
533
+ }
534
+ return GeoJSONUtils.toPointFeature(latLng, properties)
535
+ }
536
+
537
+ fun createSymbolManager(style: Style?) {
538
+ /*
539
+ v10 TODO
540
+ symbolManager = new SymbolManager(this, mMap, style);
541
+ symbolManager.setIconAllowOverlap(true);
542
+ symbolManager.addClickListener(new OnSymbolClickListener() {
543
+ @Override
544
+ public void onAnnotationClick(Symbol symbol) {
545
+ onMarkerClick(symbol);
546
+ }
547
+ });
548
+ symbolManager.addDragListener(new OnSymbolDragListener() {
549
+ @Override
550
+ public void onAnnotationDragStarted(Symbol symbol) {
551
+ mAnnotationClicked = true;
552
+ final long selectedMarkerID = symbol.getId();
553
+ RCTMGLPointAnnotation annotation = getPointAnnotationByMarkerID(selectedMarkerID);
554
+ if (annotation != null) {
555
+ annotation.onDragStart();
556
+ }
557
+ }
558
+
559
+ @Override
560
+ public void onAnnotationDrag(Symbol symbol) {
561
+ final long selectedMarkerID = symbol.getId();
562
+ RCTMGLPointAnnotation annotation = getPointAnnotationByMarkerID(selectedMarkerID);
563
+ if (annotation != null) {
564
+ annotation.onDrag();
565
+ }
566
+ }
567
+
568
+ @Override
569
+ public void onAnnotationDragFinished(Symbol symbol) {
570
+ mAnnotationClicked = false;
571
+ final long selectedMarkerID = symbol.getId();
572
+ RCTMGLPointAnnotation annotation = getPointAnnotationByMarkerID(selectedMarkerID);
573
+ if (annotation != null) {
574
+ annotation.onDragEnd();
575
+ }
576
+ }
577
+ });
578
+ mMap.addOnMapClickListener(this);
579
+ mMap.addOnMapLongClickListener(this);
580
+ */
581
+ }
582
+
583
+ fun addQueuedFeatures() {
584
+ if (mQueuedFeatures != null && mQueuedFeatures!!.size > 0) {
585
+ for (i in mQueuedFeatures!!.indices) {
586
+ val feature = mQueuedFeatures!![i]
587
+ feature.addToMap(this)
588
+ mFeatures.add(feature)
589
+ }
590
+ mQueuedFeatures = null
591
+ }
592
+ }
593
+
594
+ private fun setupLocalization(style: Style) {
595
+ /*
596
+ mLocalizationPlugin = new LocalizationPlugin(RCTMGLMapView.this, mMap, style);
597
+ if (mLocalizeLabels) {
598
+ try {
599
+ mLocalizationPlugin.matchMapLanguageWithDeviceDefault();
600
+ } catch (Exception e) {
601
+ final String localeString = Locale.getDefault().toString();
602
+ Logger.w(LOG_TAG, String.format("Could not find matching locale for %s", localeString));
603
+ }
604
+ }*/
605
+ }
606
+
607
+ /**
608
+ * Adds the marker image to the map for use as a SymbolLayer icon
609
+ */
610
+ private fun setUpImage(loadedStyle: Style) {
611
+ loadedStyle.addImage("MARKER_IMAGE_ID", BitmapFactory.decodeResource(
612
+ this.resources, R.drawable.red_marker)
613
+ )
614
+ }
615
+
616
+ /**
617
+ * PointAnnotations are rendered to a canvas, but react native Image component is
618
+ * implemented on top of Fresco, and fresco will not load images when their view is
619
+ * not attached to the window. So we'll have an offscreen view where we add those views
620
+ * so they can rendered full to canvas.
621
+ */
622
+ fun offscreenAnnotationViewContainer(): ViewGroup {
623
+ if (mOffscreenAnnotationViewContainer == null) {
624
+ mOffscreenAnnotationViewContainer = FrameLayout(context)
625
+ val flParams = LayoutParams(0, 0)
626
+ flParams.setMargins(-10000, -10000, -10000, -10000)
627
+ (mOffscreenAnnotationViewContainer as FrameLayout).setLayoutParams(flParams)
628
+ addView(mOffscreenAnnotationViewContainer)
629
+ }
630
+ return mOffscreenAnnotationViewContainer!!
631
+ }
632
+
633
+ val locationComponentManager: LocationComponentManager
634
+ get() {
635
+ if (mLocationComponentManager == null) {
636
+ mLocationComponentManager = LocationComponentManager(this, mContext)
637
+ }
638
+ return mLocationComponentManager!!
639
+ }
640
+
641
+ fun getMapAsync(mapReady: OnMapReadyCallback) {
642
+ mapReady.onMapReady(getMapboxMap())
643
+ }
644
+
645
+ //fun setTintColor(color: Int) {
646
+ // tintColor = color
647
+ // if (mLocationComponentManager != null) {
648
+ // mLocationComponentManager.tintColorChanged()
649
+ // }
650
+ //}
651
+
652
+ // region Callbacks
653
+
654
+ fun getCenter(callbackID: String?) {
655
+ var center = mMap!!.cameraState!!.center
656
+
657
+ sendResponse(callbackID, {
658
+ val array: WritableArray = WritableNativeArray()
659
+ array.pushDouble(center.longitude())
660
+ array.pushDouble(center.latitude())
661
+ it.putArray("center", array)
662
+ })
663
+ }
664
+
665
+ fun getZoom(callbackID: String?) {
666
+ var zoom = mMap!!.cameraState!!.zoom
667
+
668
+ sendResponse(callbackID, {
669
+ it.putDouble("zoom", zoom)
670
+ })
671
+ }
672
+
673
+ private fun getDisplayDensity(): Float {
674
+ return mContext.resources.displayMetrics.density
675
+ }
676
+
677
+ fun getCoordinateFromView(callbackID: String?, pixel: ScreenCoordinate) {
678
+ val density: Float = getDisplayDensity()
679
+ val screenCoordinate = ScreenCoordinate(pixel.x * density, pixel.y * density)
680
+
681
+ val coordinate = mMap!!.coordinateForPixel(pixel)
682
+
683
+ sendResponse(callbackID, {
684
+ it.putArray("coordinateFromView", coordinate.toReadableArray())
685
+ })
686
+ }
687
+
688
+ fun getPointInView(callbackID: String?, coordinate: Point) {
689
+ val point = mMap!!.pixelForCoordinate(coordinate)
690
+
691
+ sendResponse(callbackID, {
692
+ val array: WritableArray = WritableNativeArray()
693
+ array.pushDouble(point.x)
694
+ array.pushDouble(point.y)
695
+ it.putArray("pointInView", array)
696
+ })
697
+ }
698
+
699
+ fun queryRenderedFeaturesAtPoint(callbackID: String?, point: PointF, filter: Expression?, layerIDs: List<String>?) {
700
+ mMap?.queryRenderedFeatures(
701
+ ScreenCoordinate(point.x.toDouble(), point.y.toDouble()),
702
+ RenderedQueryOptions(layerIDs, filter)
703
+ ) { features ->
704
+ if (features.isValue) {
705
+ val featuresList = ArrayList<Feature?>()
706
+ for (i in features.value!!) {
707
+ featuresList.add(i.feature)
708
+ }
709
+
710
+ sendResponse(callbackID, {
711
+ it.putString("data", FeatureCollection.fromFeatures(featuresList).toJson())
712
+ })
713
+ } else {
714
+ Logger.e("queryRenderedFeaturesAtPoint", features.error ?: "n/a")
715
+ }
716
+ }
717
+ }
718
+
719
+ fun queryRenderedFeaturesInRect(callbackID: String?, rect: RectF, filter: Expression?, layerIDs: List<String>?) {
720
+ val screenBox = ScreenBox(
721
+ ScreenCoordinate(rect.right.toDouble(), rect.bottom.toDouble() ),
722
+ ScreenCoordinate(rect.left.toDouble(), rect.top.toDouble()),
723
+ )
724
+ mMap?.queryRenderedFeatures(
725
+ RenderedQueryGeometry(screenBox),
726
+ RenderedQueryOptions(layerIDs, filter)
727
+ ) { features ->
728
+ if (features.isValue) {
729
+ val featuresList = ArrayList<Feature?>()
730
+ for (i in features.value!!) {
731
+ featuresList.add(i.feature)
732
+ }
733
+
734
+ val payload: WritableMap = WritableNativeMap()
735
+ payload.putString("data", FeatureCollection.fromFeatures(featuresList).toJson())
736
+
737
+ var event = AndroidCallbackEvent(this, callbackID, payload)
738
+ mManager.handleEvent(event)
739
+ } else {
740
+ Logger.e("queryRenderedFeaturesInRect", features.error ?: "n/a")
741
+ }
742
+ }
743
+ }
744
+
745
+ fun sendResponse(callbackID: String?, buildPayload: (map: WritableMap) -> Unit) {
746
+ val payload: WritableMap = WritableNativeMap()
747
+ buildPayload(payload)
748
+ var event = AndroidCallbackEvent(this, callbackID, payload)
749
+ mManager.handleEvent(event)
750
+ }
751
+
752
+ fun getVisibleBounds(callbackID: String?) {
753
+ val bounds = mMap!!.coordinateBoundsForCamera(mMap!!.cameraState.toCameraOptions())
754
+
755
+ sendResponse(callbackID, {
756
+ it.putArray("visibleBounds", GeoJSONUtils.fromCoordinateBounds(bounds))
757
+ })
758
+ }
759
+
760
+ fun queryTerrainElevation(callbackID: String?, longitude: Double, latitude: Double) {
761
+ val result = mMap?.getElevation(Point.fromLngLat(longitude, latitude))
762
+
763
+ sendResponse(callbackID, {
764
+ if (result != null) {
765
+ it.putDouble("data", result)
766
+ } else {
767
+ Logger.e("queryTerrainElevation", "no elevation data")
768
+
769
+ it.putNull("data")
770
+ it.putString("error", "no elevation")
771
+ }
772
+ })
773
+ }
774
+
775
+ fun match(layer: Layer, sourceId:String, sourceLayerId: String?) : Boolean {
776
+ fun match(actSourceId: String, actSourceLayerId: String?) : Boolean {
777
+ return (actSourceId == sourceId && ((sourceLayerId == null) || (sourceLayerId == actSourceLayerId)))
778
+ }
779
+ return when (layer) {
780
+ is BackgroundLayer -> false
781
+ is LocationIndicatorLayer -> false
782
+ is SkyLayer -> false
783
+ is CircleLayer -> match(layer.sourceId, layer.sourceLayer)
784
+ is FillExtrusionLayer -> match(layer.sourceId, layer.sourceLayer)
785
+ is FillLayer -> match(layer.sourceId, layer.sourceLayer)
786
+ is HeatmapLayer -> match(layer.sourceId, layer.sourceLayer)
787
+ is HillshadeLayer -> match(layer.sourceId, layer.sourceLayer)
788
+ is LineLayer -> match(layer.sourceId, layer.sourceLayer)
789
+ is RasterLayer -> match(layer.sourceId, layer.sourceLayer)
790
+ is SymbolLayer -> match(layer.sourceId, layer.sourceLayer)
791
+ else -> {
792
+ logE("MapView", "Layer type: $layer.type unknown.")
793
+ false
794
+ }
795
+ }
796
+ }
797
+
798
+ fun setSourceVisibility(
799
+ visible: Boolean,
800
+ sourceId: String,
801
+ sourceLayerId: String?
802
+ ) {
803
+ if (mMap == null) {
804
+ Logger.e("MapView", "setSourceVisibility, map is null")
805
+ return
806
+ }
807
+ val style = mMap!!.getStyle();
808
+ style!!.styleLayers.forEach {
809
+ val layer = style.getLayer(it.id)
810
+ if ((layer != null) && match(layer, sourceId, sourceLayerId)) {
811
+ layer.visibility(
812
+ if (visible) Visibility.VISIBLE else Visibility.NONE
813
+ )
814
+ }
815
+ }
816
+ }
817
+
818
+ // endregion
819
+
820
+ companion object {
821
+ const val LOG_TAG = "RCTMGLMapView"
822
+ }
823
+
824
+ init {
825
+ mMap = getMapboxMap()
826
+ mSources = HashMap()
827
+ mImages = ArrayList()
828
+ mPointAnnotations = HashMap()
829
+ onMapReady(mMap)
830
+ val _this = this
831
+ mMap.addOnMapLoadedListener(OnMapLoadedListener { (begin, end) -> _this.handleMapChangedEvent(EventTypes.DID_FINISH_LOADING_MAP) })
832
+ mMap.addOnStyleImageMissingListener(OnStyleImageMissingListener { (begin, end, id) ->
833
+ for (images in mImages) {
834
+ if (images.addMissingImageToStyle(id, mMap)) {
835
+ return@OnStyleImageMissingListener
836
+ }
837
+ }
838
+ for (images in mImages) {
839
+ images.sendImageMissingEvent(id, mMap)
840
+ }
841
+ })
842
+ }
843
+
844
+ // region Ornaments
845
+
846
+ fun toGravity(kind: String, viewPosition: Int): Int {
847
+ return when (viewPosition) {
848
+ 0 -> (Gravity.TOP or Gravity.START)
849
+ 1 -> (Gravity.TOP or Gravity.END)
850
+ 2 -> (Gravity.BOTTOM or Gravity.START)
851
+ 3 -> (Gravity.BOTTOM or Gravity.END)
852
+ else -> {
853
+ Logger.e(
854
+ "MapView",
855
+ "Unexpected viewPosition for $kind: $viewPosition should be between 0 and 3"
856
+ )
857
+ 0
858
+ }
859
+ }
860
+ }
861
+
862
+ var mCompassEnabled = false
863
+ var mCompassFadeWhenNorth = false
864
+ var mCompassViewMargins: ReadableMap? = null
865
+ var mCompassViewPosition: Int = -1
866
+
867
+ fun setReactCompassEnabled(compassEnabled: Boolean) {
868
+ mCompassEnabled = compassEnabled
869
+ updateCompass()
870
+ }
871
+
872
+ fun setReactCompassFadeWhenNorth(compassFadeWhenNorth: Boolean) {
873
+ mCompassFadeWhenNorth = compassFadeWhenNorth
874
+ updateCompass()
875
+ }
876
+
877
+ fun setReactCompassViewMargins(compassViewMargins: ReadableMap) {
878
+ mCompassViewMargins = compassViewMargins
879
+ updateCompass()
880
+ }
881
+
882
+ fun setReactCompassViewPosition(compassViewPosition: Int) {
883
+ mCompassViewPosition = compassViewPosition
884
+ updateCompass()
885
+ }
886
+
887
+ fun setReactCompassMargins(compassMargins: ReadableMap) {
888
+ val bottom_mask = 1;
889
+ val right_mask = 2;
890
+
891
+ var margins = WritableNativeMap()
892
+ var position = 0;
893
+ if (compassMargins.hasKey("bottom")) {
894
+ margins.putInt("y", compassMargins.getInt("bottom"))
895
+ position = position or bottom_mask
896
+ } else {
897
+ if (compassMargins.hasKey("top")) {
898
+ margins.putInt("y", compassMargins.getInt("top"))
899
+ }
900
+ }
901
+
902
+ if (compassMargins.hasKey("left")) {
903
+ margins.putInt("x", compassMargins.getInt("left"))
904
+ } else {
905
+ if (compassMargins.hasKey("right")) {
906
+ margins.putInt("x", compassMargins.getInt("right"))
907
+ }
908
+ }
909
+ mCompassViewPosition = position
910
+ mCompassViewMargins = margins
911
+ updateCompass()
912
+ }
913
+
914
+ private fun updateCompass() {
915
+ compass.updateSettings {
916
+ enabled = mCompassEnabled
917
+ fadeWhenFacingNorth = mCompassFadeWhenNorth
918
+ if (mCompassViewPosition >= 0) {
919
+ position = toGravity("compass", mCompassViewPosition)
920
+ }
921
+
922
+ val compassViewMargins = mCompassViewMargins
923
+ if (compassViewMargins != null) {
924
+ val pixelDensity = resources.displayMetrics.density.toInt()
925
+ val x: Int = compassViewMargins.getInt("x") * pixelDensity
926
+ val y: Int = compassViewMargins.getInt("y") * pixelDensity
927
+
928
+ val horizontalGravity = position and Gravity.HORIZONTAL_GRAVITY_MASK
929
+ val verticalGravity = position and Gravity.VERTICAL_GRAVITY_MASK
930
+
931
+ when (horizontalGravity) {
932
+ Gravity.LEFT -> {
933
+ marginLeft = x.toFloat()
934
+ }
935
+ Gravity.RIGHT -> marginRight = x.toFloat()
936
+ Gravity.CENTER_HORIZONTAL -> marginLeft = x.toFloat()
937
+ else -> Logger.e(
938
+ "MapView",
939
+ "compassViewMargins: unexpected absolute pos: $horizontalGravity"
940
+ )
941
+ }
942
+ when (verticalGravity) {
943
+ Gravity.TOP -> marginTop = y.toFloat()
944
+ Gravity.BOTTOM -> marginBottom = y.toFloat()
945
+ Gravity.CENTER_VERTICAL -> marginTop = y.toFloat()
946
+ else -> Logger.e(
947
+ "MapView",
948
+ "compassViewMargins: unexpected vertical pos: $verticalGravity"
949
+ )
950
+ }
951
+ }
952
+ }
953
+ }
954
+ // endregion
955
+
956
+ private fun getGravityAndMargin (position:ReadableMap): Pair<Int, IntArray> {
957
+ var gravity = Gravity.NO_GRAVITY
958
+ if (position.hasKey("left")) {
959
+ gravity = gravity or Gravity.START
960
+ }
961
+ if (position.hasKey("right")) {
962
+ gravity = gravity or Gravity.END
963
+ }
964
+ if (position.hasKey("top")) {
965
+ gravity = gravity or Gravity.TOP
966
+ }
967
+ if (position.hasKey("bottom")) {
968
+ gravity = gravity or Gravity.BOTTOM
969
+ }
970
+ val density = getDisplayDensity()
971
+ val margin = intArrayOf(
972
+ if (position.hasKey("left")) density.toInt() * position.getInt("left") else 0,
973
+ if (position.hasKey("top")) density.toInt() * position.getInt("top") else 0,
974
+ if (position.hasKey("right")) density.toInt() * position.getInt("right") else 0,
975
+ if (position.hasKey("bottom")) density.toInt() * position.getInt("bottom") else 0,
976
+ )
977
+ return Pair(gravity, margin)
978
+ }
979
+
980
+ // region Attribution
981
+ private var mAttributionEnabled: Boolean? = null;
982
+ private var mAttributionGravity: Int? = null
983
+ private var mAttributionMargin: IntArray? = null
984
+
985
+ fun setReactAttributionEnabled(attributionEnabled: Boolean?) {
986
+ mAttributionEnabled = attributionEnabled ?: AttributionSettings().enabled
987
+ updateAttribution()
988
+ }
989
+
990
+ fun setReactAttributionPosition(position: ReadableMap?) {
991
+ if (position == null) {
992
+ // reset from explicit to default
993
+ if (mAttributionGravity != null) {
994
+ val defaultOptions = AttributionSettings()
995
+ mAttributionGravity = defaultOptions.position
996
+ mAttributionMargin = intArrayOf(defaultOptions.marginLeft.toInt(),defaultOptions.marginTop.toInt(),defaultOptions.marginRight.toInt(),defaultOptions.marginBottom.toInt())
997
+ updateAttribution()
998
+ }
999
+ return
1000
+ }
1001
+
1002
+ val (attributionGravity, attributionMargin) = getGravityAndMargin(position)
1003
+ mAttributionGravity = attributionGravity
1004
+ mAttributionMargin = attributionMargin
1005
+ updateAttribution()
1006
+ }
1007
+
1008
+ private fun updateAttribution() {
1009
+ attribution.updateSettings {
1010
+ if(mAttributionEnabled!= null){
1011
+ enabled = mAttributionEnabled!!
1012
+ }
1013
+ if(mAttributionGravity != null){
1014
+ position = mAttributionGravity!!
1015
+ }
1016
+ if(mAttributionMargin != null){
1017
+ marginLeft = mAttributionMargin!![0].toFloat()
1018
+ marginTop = mAttributionMargin!![1].toFloat()
1019
+ marginRight = mAttributionMargin!![2].toFloat()
1020
+ marginBottom = mAttributionMargin!![3].toFloat()
1021
+ }
1022
+ }
1023
+ }
1024
+ //endregion
1025
+
1026
+ // region Logo
1027
+ private var mLogoEnabled: Boolean? = null;
1028
+ private var mLogoGravity: Int? = null
1029
+ private var mLogoMargin: IntArray? = null
1030
+
1031
+ fun setReactLogoEnabled(logoEnabled: Boolean?) {
1032
+ mLogoEnabled = logoEnabled ?: LogoSettings().enabled
1033
+ updateLogo()
1034
+ }
1035
+
1036
+ fun setReactLogoPosition(position: ReadableMap?) {
1037
+ if (position == null) {
1038
+ // reset from explicit to default
1039
+ if (mLogoGravity != null) {
1040
+ val defaultOptions = LogoSettings()
1041
+ mLogoGravity = defaultOptions.position
1042
+ mLogoMargin = intArrayOf(defaultOptions.marginLeft.toInt(),defaultOptions.marginTop.toInt(),defaultOptions.marginRight.toInt(),defaultOptions.marginBottom.toInt())
1043
+ updateLogo()
1044
+ }
1045
+ return
1046
+ }
1047
+ val (logoGravity, logoMargin) = getGravityAndMargin(position)
1048
+ mLogoGravity = logoGravity
1049
+ mLogoMargin = logoMargin
1050
+ updateLogo()
1051
+ }
1052
+
1053
+ private fun updateLogo() {
1054
+ logo.updateSettings {
1055
+ if(mLogoEnabled != null){
1056
+ enabled = mLogoEnabled!!
1057
+ }
1058
+ if(mLogoGravity != null){
1059
+ position = mLogoGravity!!
1060
+ }
1061
+ if(mLogoMargin != null){
1062
+ marginLeft = mLogoMargin!![0].toFloat()
1063
+ marginTop = mLogoMargin!![1].toFloat()
1064
+ marginRight = mLogoMargin!![2].toFloat()
1065
+ marginBottom = mLogoMargin!![3].toFloat()
1066
+ }
1067
+ }
1068
+ }
1069
+ // endregion
1070
+ }