@rnmapbox/maps 10.0.0-beta.77 → 10.0.0-beta.79

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 (338) hide show
  1. package/android/rctmgl/build.gradle +8 -1
  2. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractMapFeature.kt +10 -1
  3. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.kt +4 -2
  4. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.kt +4 -3
  5. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.kt +1 -3
  6. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCamera.kt +18 -23
  7. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImages.kt +3 -2
  8. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.kt +3 -2
  9. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +129 -82
  10. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.kt +26 -6
  11. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/atmosphere/RCTMGLAtmosphere.kt +3 -2
  12. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTLayer.kt +6 -5
  13. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.kt +4 -1
  14. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTSource.kt +10 -6
  15. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/terrain/RCTMGLTerrain.kt +3 -2
  16. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.java +5 -1
  17. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLModule.kt +4 -2
  18. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.kt +4 -4
  19. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/GeoJSONUtils.kt +55 -44
  20. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Point.kt +5 -1
  21. package/ios/RCTMGL-v10/RCTMGLInteractiveElement.swift +3 -0
  22. package/ios/RCTMGL-v10/RCTMGLLogging.swift +3 -1
  23. package/ios/RCTMGL-v10/RCTMGLMapView.swift +13 -0
  24. package/ios/RCTMGL-v10/RCTMGLMapViewManager.m +1 -0
  25. package/ios/RCTMGL-v10/RCTMGLPointAnnotation.swift +1 -0
  26. package/lib/commonjs/MGLModule.js.map +1 -1
  27. package/lib/commonjs/Mapbox.js +5 -5
  28. package/lib/commonjs/Mapbox.js.map +1 -1
  29. package/lib/commonjs/classes/AnimatedCoordinatesArray.js.map +1 -1
  30. package/lib/commonjs/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  31. package/lib/commonjs/classes/AnimatedPoint.js.map +1 -1
  32. package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  33. package/lib/commonjs/classes/AnimatedShape.js.map +1 -1
  34. package/lib/commonjs/classes/index.d.js.map +1 -1
  35. package/lib/commonjs/classes/index.js.map +1 -1
  36. package/lib/commonjs/components/AbstractLayer.js.map +1 -1
  37. package/lib/commonjs/components/AbstractSource.js.map +1 -1
  38. package/lib/commonjs/components/Annotation.js.map +1 -1
  39. package/lib/commonjs/components/Atmosphere.js.map +1 -1
  40. package/lib/commonjs/components/BackgroundLayer.js.map +1 -1
  41. package/lib/commonjs/components/Callout.js.map +1 -1
  42. package/lib/commonjs/components/Camera.js +4 -4
  43. package/lib/commonjs/components/Camera.js.map +1 -1
  44. package/lib/commonjs/components/CircleLayer.js.map +1 -1
  45. package/lib/commonjs/components/FillExtrusionLayer.js.map +1 -1
  46. package/lib/commonjs/components/FillLayer.js.map +1 -1
  47. package/lib/commonjs/components/HeadingIndicator.js.map +1 -1
  48. package/lib/commonjs/components/HeatmapLayer.js.map +1 -1
  49. package/lib/commonjs/components/Image.js.map +1 -1
  50. package/lib/commonjs/components/ImageSource.js.map +1 -1
  51. package/lib/commonjs/components/Images.js.map +1 -1
  52. package/lib/commonjs/components/Light.js.map +1 -1
  53. package/lib/commonjs/components/LineLayer.js.map +1 -1
  54. package/lib/commonjs/components/MapView.js +48 -30
  55. package/lib/commonjs/components/MapView.js.map +1 -1
  56. package/lib/commonjs/components/MarkerView.js.map +1 -1
  57. package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
  58. package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
  59. package/lib/commonjs/components/PointAnnotation.js +2 -0
  60. package/lib/commonjs/components/PointAnnotation.js.map +1 -1
  61. package/lib/commonjs/components/RasterDemSource.js.map +1 -1
  62. package/lib/commonjs/components/RasterLayer.js.map +1 -1
  63. package/lib/commonjs/components/RasterSource.js.map +1 -1
  64. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  65. package/lib/commonjs/components/SkyLayer.js.map +1 -1
  66. package/lib/commonjs/components/Style.js.map +1 -1
  67. package/lib/commonjs/components/SymbolLayer.js.map +1 -1
  68. package/lib/commonjs/components/Terrain.js.map +1 -1
  69. package/lib/commonjs/components/UserLocation.js +4 -4
  70. package/lib/commonjs/components/UserLocation.js.map +1 -1
  71. package/lib/commonjs/components/VectorSource.js.map +1 -1
  72. package/lib/commonjs/global.d.js.map +1 -1
  73. package/lib/commonjs/index.js.map +1 -1
  74. package/lib/commonjs/index.web.js.map +1 -1
  75. package/lib/commonjs/modules/location/locationManager.js.map +1 -1
  76. package/lib/commonjs/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  77. package/lib/commonjs/modules/offline/OfflinePack.js.map +1 -1
  78. package/lib/commonjs/modules/offline/offlineManager.js.map +1 -1
  79. package/lib/commonjs/modules/snapshot/SnapshotOptions.js.map +1 -1
  80. package/lib/commonjs/modules/snapshot/snapshotManager.js.map +1 -1
  81. package/lib/commonjs/requestAndroidLocationPermissions.js.map +1 -1
  82. package/lib/commonjs/types/BaseProps.js.map +1 -1
  83. package/lib/commonjs/types/OnPressEvent.js.map +1 -1
  84. package/lib/commonjs/types/Position.js.map +1 -1
  85. package/lib/commonjs/types/index.js.map +1 -1
  86. package/lib/commonjs/utils/BridgeValue.js.map +1 -1
  87. package/lib/commonjs/utils/Logger.js.map +1 -1
  88. package/lib/commonjs/utils/MapboxStyles.d.js +84 -84
  89. package/lib/commonjs/utils/MapboxStyles.d.js.map +1 -1
  90. package/lib/commonjs/utils/StyleValue.js.map +1 -1
  91. package/lib/commonjs/utils/animated/Animated.js.map +1 -1
  92. package/lib/commonjs/utils/checkRequiredProps.js +14 -0
  93. package/lib/commonjs/utils/checkRequiredProps.js.map +1 -0
  94. package/lib/commonjs/utils/deprecation.js.map +1 -1
  95. package/lib/commonjs/utils/filterUtils.js.map +1 -1
  96. package/lib/commonjs/utils/geoUtils.js.map +1 -1
  97. package/lib/commonjs/utils/getAnnotationsLayerID.js.map +1 -1
  98. package/lib/commonjs/utils/index.js.map +1 -1
  99. package/lib/commonjs/utils/nativeRef.js.map +1 -1
  100. package/lib/commonjs/utils/styleMap.js.map +1 -1
  101. package/lib/commonjs/web/MapContext.js.map +1 -1
  102. package/lib/commonjs/web/MapboxModule.js.map +1 -1
  103. package/lib/commonjs/web/UnimplementedComponent.js.map +1 -1
  104. package/lib/commonjs/web/components/Camera.js.map +1 -1
  105. package/lib/commonjs/web/components/MapView.js.map +1 -1
  106. package/lib/commonjs/web/index.js.map +1 -1
  107. package/lib/commonjs/web/utils/Logger.js.map +1 -1
  108. package/lib/module/MGLModule.js.map +1 -1
  109. package/lib/module/Mapbox.js +5 -5
  110. package/lib/module/Mapbox.js.map +1 -1
  111. package/lib/module/classes/AnimatedCoordinatesArray.js.map +1 -1
  112. package/lib/module/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  113. package/lib/module/classes/AnimatedPoint.js.map +1 -1
  114. package/lib/module/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  115. package/lib/module/classes/AnimatedShape.js.map +1 -1
  116. package/lib/module/classes/index.d.js.map +1 -1
  117. package/lib/module/classes/index.js.map +1 -1
  118. package/lib/module/components/AbstractLayer.js.map +1 -1
  119. package/lib/module/components/AbstractSource.js.map +1 -1
  120. package/lib/module/components/Annotation.js.map +1 -1
  121. package/lib/module/components/Atmosphere.js.map +1 -1
  122. package/lib/module/components/BackgroundLayer.js.map +1 -1
  123. package/lib/module/components/Callout.js.map +1 -1
  124. package/lib/module/components/Camera.js +3 -3
  125. package/lib/module/components/Camera.js.map +1 -1
  126. package/lib/module/components/CircleLayer.js.map +1 -1
  127. package/lib/module/components/FillExtrusionLayer.js.map +1 -1
  128. package/lib/module/components/FillLayer.js.map +1 -1
  129. package/lib/module/components/HeadingIndicator.js.map +1 -1
  130. package/lib/module/components/HeatmapLayer.js.map +1 -1
  131. package/lib/module/components/Image.js.map +1 -1
  132. package/lib/module/components/ImageSource.js.map +1 -1
  133. package/lib/module/components/Images.js.map +1 -1
  134. package/lib/module/components/Light.js.map +1 -1
  135. package/lib/module/components/LineLayer.js.map +1 -1
  136. package/lib/module/components/MapView.js +48 -30
  137. package/lib/module/components/MapView.js.map +1 -1
  138. package/lib/module/components/MarkerView.js.map +1 -1
  139. package/lib/module/components/NativeBridgeComponent.js.map +1 -1
  140. package/lib/module/components/NativeUserLocation.js.map +1 -1
  141. package/lib/module/components/PointAnnotation.js +2 -0
  142. package/lib/module/components/PointAnnotation.js.map +1 -1
  143. package/lib/module/components/RasterDemSource.js.map +1 -1
  144. package/lib/module/components/RasterLayer.js.map +1 -1
  145. package/lib/module/components/RasterSource.js.map +1 -1
  146. package/lib/module/components/ShapeSource.js.map +1 -1
  147. package/lib/module/components/SkyLayer.js.map +1 -1
  148. package/lib/module/components/Style.js.map +1 -1
  149. package/lib/module/components/SymbolLayer.js.map +1 -1
  150. package/lib/module/components/Terrain.js.map +1 -1
  151. package/lib/module/components/UserLocation.js +3 -3
  152. package/lib/module/components/UserLocation.js.map +1 -1
  153. package/lib/module/components/VectorSource.js.map +1 -1
  154. package/lib/module/global.d.js.map +1 -1
  155. package/lib/module/index.js.map +1 -1
  156. package/lib/module/index.web.js.map +1 -1
  157. package/lib/module/modules/location/locationManager.js.map +1 -1
  158. package/lib/module/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  159. package/lib/module/modules/offline/OfflinePack.js.map +1 -1
  160. package/lib/module/modules/offline/offlineManager.js.map +1 -1
  161. package/lib/module/modules/snapshot/SnapshotOptions.js.map +1 -1
  162. package/lib/module/modules/snapshot/snapshotManager.js.map +1 -1
  163. package/lib/module/requestAndroidLocationPermissions.js.map +1 -1
  164. package/lib/module/types/BaseProps.js.map +1 -1
  165. package/lib/module/types/OnPressEvent.js.map +1 -1
  166. package/lib/module/types/Position.js.map +1 -1
  167. package/lib/module/types/index.js.map +1 -1
  168. package/lib/module/utils/BridgeValue.js.map +1 -1
  169. package/lib/module/utils/Logger.js.map +1 -1
  170. package/lib/module/utils/MapboxStyles.d.js +84 -84
  171. package/lib/module/utils/MapboxStyles.d.js.map +1 -1
  172. package/lib/module/utils/StyleValue.js.map +1 -1
  173. package/lib/module/utils/animated/Animated.js.map +1 -1
  174. package/lib/module/utils/checkRequiredProps.js +8 -0
  175. package/lib/module/utils/checkRequiredProps.js.map +1 -0
  176. package/lib/module/utils/deprecation.js.map +1 -1
  177. package/lib/module/utils/filterUtils.js.map +1 -1
  178. package/lib/module/utils/geoUtils.js.map +1 -1
  179. package/lib/module/utils/getAnnotationsLayerID.js.map +1 -1
  180. package/lib/module/utils/index.js.map +1 -1
  181. package/lib/module/utils/nativeRef.js.map +1 -1
  182. package/lib/module/utils/styleMap.js.map +1 -1
  183. package/lib/module/web/MapContext.js.map +1 -1
  184. package/lib/module/web/MapboxModule.js.map +1 -1
  185. package/lib/module/web/UnimplementedComponent.js.map +1 -1
  186. package/lib/module/web/components/Camera.js.map +1 -1
  187. package/lib/module/web/components/MapView.js.map +1 -1
  188. package/lib/module/web/index.js.map +1 -1
  189. package/lib/module/web/utils/Logger.js.map +1 -1
  190. package/lib/typescript/MGLModule.d.ts.map +1 -1
  191. package/lib/typescript/Mapbox.d.ts.map +1 -1
  192. package/lib/typescript/components/AbstractLayer.d.ts.map +1 -1
  193. package/lib/typescript/components/AbstractSource.d.ts.map +1 -1
  194. package/lib/typescript/components/Annotation.d.ts.map +1 -1
  195. package/lib/typescript/components/Atmosphere.d.ts.map +1 -1
  196. package/lib/typescript/components/BackgroundLayer.d.ts.map +1 -1
  197. package/lib/typescript/components/Callout.d.ts.map +1 -1
  198. package/lib/typescript/components/Camera.d.ts +2 -1
  199. package/lib/typescript/components/Camera.d.ts.map +1 -1
  200. package/lib/typescript/components/CircleLayer.d.ts.map +1 -1
  201. package/lib/typescript/components/FillExtrusionLayer.d.ts.map +1 -1
  202. package/lib/typescript/components/FillLayer.d.ts.map +1 -1
  203. package/lib/typescript/components/HeadingIndicator.d.ts.map +1 -1
  204. package/lib/typescript/components/HeatmapLayer.d.ts.map +1 -1
  205. package/lib/typescript/components/Image.d.ts.map +1 -1
  206. package/lib/typescript/components/ImageSource.d.ts.map +1 -1
  207. package/lib/typescript/components/Images.d.ts.map +1 -1
  208. package/lib/typescript/components/Light.d.ts.map +1 -1
  209. package/lib/typescript/components/LineLayer.d.ts.map +1 -1
  210. package/lib/typescript/components/MapView.d.ts +19 -10
  211. package/lib/typescript/components/MapView.d.ts.map +1 -1
  212. package/lib/typescript/components/MarkerView.d.ts.map +1 -1
  213. package/lib/typescript/components/NativeBridgeComponent.d.ts.map +1 -1
  214. package/lib/typescript/components/NativeUserLocation.d.ts.map +1 -1
  215. package/lib/typescript/components/PointAnnotation.d.ts.map +1 -1
  216. package/lib/typescript/components/RasterDemSource.d.ts.map +1 -1
  217. package/lib/typescript/components/RasterLayer.d.ts.map +1 -1
  218. package/lib/typescript/components/RasterSource.d.ts.map +1 -1
  219. package/lib/typescript/components/ShapeSource.d.ts.map +1 -1
  220. package/lib/typescript/components/SkyLayer.d.ts.map +1 -1
  221. package/lib/typescript/components/Style.d.ts.map +1 -1
  222. package/lib/typescript/components/SymbolLayer.d.ts.map +1 -1
  223. package/lib/typescript/components/Terrain.d.ts.map +1 -1
  224. package/lib/typescript/components/UserLocation.d.ts +1 -1
  225. package/lib/typescript/components/UserLocation.d.ts.map +1 -1
  226. package/lib/typescript/components/VectorSource.d.ts.map +1 -1
  227. package/lib/typescript/index.d.ts.map +1 -1
  228. package/lib/typescript/modules/location/locationManager.d.ts.map +1 -1
  229. package/lib/typescript/modules/offline/OfflineCreatePackOptions.d.ts.map +1 -1
  230. package/lib/typescript/modules/offline/OfflinePack.d.ts.map +1 -1
  231. package/lib/typescript/modules/offline/offlineManager.d.ts.map +1 -1
  232. package/lib/typescript/modules/snapshot/SnapshotOptions.d.ts.map +1 -1
  233. package/lib/typescript/modules/snapshot/snapshotManager.d.ts.map +1 -1
  234. package/lib/typescript/requestAndroidLocationPermissions.d.ts.map +1 -1
  235. package/lib/typescript/types/BaseProps.d.ts.map +1 -1
  236. package/lib/typescript/types/OnPressEvent.d.ts.map +1 -1
  237. package/lib/typescript/types/Position.d.ts.map +1 -1
  238. package/lib/typescript/types/index.d.ts.map +1 -1
  239. package/lib/typescript/utils/BridgeValue.d.ts.map +1 -1
  240. package/lib/typescript/utils/Logger.d.ts.map +1 -1
  241. package/lib/typescript/utils/StyleValue.d.ts.map +1 -1
  242. package/lib/typescript/utils/animated/Animated.d.ts.map +1 -1
  243. package/lib/typescript/utils/checkRequiredProps.d.ts +8 -0
  244. package/lib/typescript/utils/checkRequiredProps.d.ts.map +1 -0
  245. package/lib/typescript/utils/deprecation.d.ts.map +1 -1
  246. package/lib/typescript/utils/filterUtils.d.ts.map +1 -1
  247. package/lib/typescript/utils/geoUtils.d.ts.map +1 -1
  248. package/lib/typescript/utils/getAnnotationsLayerID.d.ts.map +1 -1
  249. package/lib/typescript/utils/index.d.ts.map +1 -1
  250. package/lib/typescript/utils/nativeRef.d.ts.map +1 -1
  251. package/lib/typescript/utils/styleMap.d.ts.map +1 -1
  252. package/lib/typescript/web/MapContext.d.ts.map +1 -1
  253. package/lib/typescript/web/components/Camera.d.ts.map +1 -1
  254. package/lib/typescript/web/components/MapView.d.ts.map +1 -1
  255. package/lib/typescript/web/utils/Logger.d.ts.map +1 -1
  256. package/package.json +9 -8
  257. package/plugin/build/withMapbox.js +8 -5
  258. package/plugin/src/withMapbox.ts +10 -5
  259. package/rnmapbox-maps.podspec +3 -0
  260. package/{javascript → src}/components/Camera.tsx +2 -1
  261. package/{javascript → src}/components/MapView.tsx +70 -41
  262. package/{javascript → src}/components/PointAnnotation.tsx +2 -0
  263. package/{javascript → src}/components/UserLocation.tsx +1 -1
  264. package/src/utils/checkRequiredProps.ts +17 -0
  265. /package/{javascript → src}/MGLModule.ts +0 -0
  266. /package/{javascript → src}/Mapbox.ts +0 -0
  267. /package/{javascript → src}/assets/heading.png +0 -0
  268. /package/{javascript → src}/assets/heading@2x.png +0 -0
  269. /package/{javascript → src}/assets/heading@3x.png +0 -0
  270. /package/{javascript → src}/classes/AnimatedCoordinatesArray.js +0 -0
  271. /package/{javascript → src}/classes/AnimatedExtractCoordinateFromArray.js +0 -0
  272. /package/{javascript → src}/classes/AnimatedPoint.js +0 -0
  273. /package/{javascript → src}/classes/AnimatedRouteCoordinatesArray.js +0 -0
  274. /package/{javascript → src}/classes/AnimatedShape.js +0 -0
  275. /package/{javascript → src}/classes/index.d.ts +0 -0
  276. /package/{javascript → src}/classes/index.js +0 -0
  277. /package/{javascript → src}/components/AbstractLayer.tsx +0 -0
  278. /package/{javascript → src}/components/AbstractSource.tsx +0 -0
  279. /package/{javascript → src}/components/Annotation.tsx +0 -0
  280. /package/{javascript → src}/components/Atmosphere.tsx +0 -0
  281. /package/{javascript → src}/components/BackgroundLayer.tsx +0 -0
  282. /package/{javascript → src}/components/Callout.tsx +0 -0
  283. /package/{javascript → src}/components/CircleLayer.tsx +0 -0
  284. /package/{javascript → src}/components/FillExtrusionLayer.tsx +0 -0
  285. /package/{javascript → src}/components/FillLayer.tsx +0 -0
  286. /package/{javascript → src}/components/HeadingIndicator.tsx +0 -0
  287. /package/{javascript → src}/components/HeatmapLayer.tsx +0 -0
  288. /package/{javascript → src}/components/Image.tsx +0 -0
  289. /package/{javascript → src}/components/ImageSource.tsx +0 -0
  290. /package/{javascript → src}/components/Images.tsx +0 -0
  291. /package/{javascript → src}/components/Light.tsx +0 -0
  292. /package/{javascript → src}/components/LineLayer.tsx +0 -0
  293. /package/{javascript → src}/components/MarkerView.tsx +0 -0
  294. /package/{javascript → src}/components/NativeBridgeComponent.tsx +0 -0
  295. /package/{javascript → src}/components/NativeUserLocation.tsx +0 -0
  296. /package/{javascript → src}/components/RasterDemSource.tsx +0 -0
  297. /package/{javascript → src}/components/RasterLayer.tsx +0 -0
  298. /package/{javascript → src}/components/RasterSource.tsx +0 -0
  299. /package/{javascript → src}/components/ShapeSource.tsx +0 -0
  300. /package/{javascript → src}/components/SkyLayer.tsx +0 -0
  301. /package/{javascript → src}/components/Style.tsx +0 -0
  302. /package/{javascript → src}/components/SymbolLayer.tsx +0 -0
  303. /package/{javascript → src}/components/Terrain.tsx +0 -0
  304. /package/{javascript → src}/components/VectorSource.tsx +0 -0
  305. /package/{javascript → src}/global.d.ts +0 -0
  306. /package/{javascript → src}/index.ts +0 -0
  307. /package/{javascript → src}/index.web.js +0 -0
  308. /package/{javascript → src}/modules/location/locationManager.ts +0 -0
  309. /package/{javascript → src}/modules/offline/OfflineCreatePackOptions.ts +0 -0
  310. /package/{javascript → src}/modules/offline/OfflinePack.ts +0 -0
  311. /package/{javascript → src}/modules/offline/offlineManager.ts +0 -0
  312. /package/{javascript → src}/modules/snapshot/SnapshotOptions.ts +0 -0
  313. /package/{javascript → src}/modules/snapshot/snapshotManager.ts +0 -0
  314. /package/{javascript → src}/requestAndroidLocationPermissions.ts +0 -0
  315. /package/{javascript → src}/types/BaseProps.ts +0 -0
  316. /package/{javascript → src}/types/OnPressEvent.ts +0 -0
  317. /package/{javascript → src}/types/Position.ts +0 -0
  318. /package/{javascript → src}/types/index.ts +0 -0
  319. /package/{javascript → src}/utils/BridgeValue.ts +0 -0
  320. /package/{javascript → src}/utils/Logger.ts +0 -0
  321. /package/{javascript → src}/utils/MapboxStyles.d.ts +0 -0
  322. /package/{javascript → src}/utils/StyleValue.ts +0 -0
  323. /package/{javascript → src}/utils/animated/Animated.ts +0 -0
  324. /package/{javascript → src}/utils/deprecation.ts +0 -0
  325. /package/{javascript → src}/utils/filterUtils.ts +0 -0
  326. /package/{javascript → src}/utils/geoUtils.ts +0 -0
  327. /package/{javascript → src}/utils/getAnnotationsLayerID.ts +0 -0
  328. /package/{javascript → src}/utils/index.ts +0 -0
  329. /package/{javascript → src}/utils/nativeRef.ts +0 -0
  330. /package/{javascript → src}/utils/styleMap.ts +0 -0
  331. /package/{javascript → src}/web/MapContext.ts +0 -0
  332. /package/{javascript → src}/web/MapboxModule.js +0 -0
  333. /package/{javascript → src}/web/UnimplementedComponent.js +0 -0
  334. /package/{javascript → src}/web/components/Camera.tsx +0 -0
  335. /package/{javascript → src}/web/components/MapView.tsx +0 -0
  336. /package/{javascript → src}/web/index.js +0 -0
  337. /package/{javascript → src}/web/install.md +0 -0
  338. /package/{javascript → src}/web/utils/Logger.ts +0 -0
@@ -1,4 +1,5 @@
1
1
  def defaultMapboxMapsImpl = "maplibre"
2
+ def defaultMapboxMapsVersion = "10.11.2"
2
3
 
3
4
  def safeExtGet(prop, fallback) {
4
5
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
@@ -8,6 +9,10 @@ def safeExtGet(prop, fallback) {
8
9
  if (rootProject.ext.has('expoRNMapboxMapsImpl')) {
9
10
  rootProject.ext.set('RNMapboxMapsImpl', rootProject.ext.get('expoRNMapboxMapsImpl'))
10
11
  }
12
+ if (rootProject.ext.has('expoRNMapboxMapsVersion')) {
13
+ rootProject.ext.set('RNMapboxMapsVersion', rootProject.ext.get('expoRNMapboxMapsVersion'))
14
+ }
15
+
11
16
 
12
17
  buildscript {
13
18
  repositories {
@@ -28,6 +33,7 @@ if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "mapbox") {
28
33
 
29
34
  android {
30
35
  if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "maplibre") {
36
+ logger.warn('@rnmapbox/maps: Maplibre implementation is DEPRECATED and will be removed, set RNMapboxMapsImpl to mapbox- see https://github.com/rnmapbox/maps/wiki/Deprecated-RNMapboxImpl-Maplibre#android')
31
37
  sourceSets {
32
38
  main {
33
39
  java.srcDirs = ['src/main/java-mapboxgl/common','src/main/java-mapboxgl/maplibre']
@@ -35,6 +41,7 @@ android {
35
41
  }
36
42
  }
37
43
  else if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "mapbox-gl") {
44
+ logger.warn('@rnmapbox/maps: Maplibre implementation is DEPRECATED and will be removed, set RNMapboxMapsImpl to mapbox - see https://github.com/rnmapbox/maps/wiki/Deprecated-RNMapboxImpl-Maplibre#android')
38
45
  sourceSets {
39
46
  main {
40
47
  java.srcDirs = ['src/main/java-mapboxgl/common','src/main/java-mapboxgl/mapbox']
@@ -130,7 +137,7 @@ dependencies {
130
137
  implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:5.1.0'
131
138
  }
132
139
  else if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "mapbox") {
133
- implementation 'com.mapbox.maps:android:10.11.1'
140
+ implementation "com.mapbox.maps:android:${safeExtGet("RNMapboxMapsVersion", defaultMapboxMapsVersion)}"
134
141
  implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:6.10.0'
135
142
  implementation 'androidx.asynclayoutinflater:asynclayoutinflater:1.0.0'
136
143
  }
@@ -4,6 +4,13 @@ import android.content.Context
4
4
  import com.facebook.react.views.view.ReactViewGroup
5
5
  import com.mapbox.rctmgl.components.mapview.RCTMGLMapView
6
6
 
7
+ enum class RemovalReason {
8
+ VIEW_REMOVAL,
9
+ STYLE_CHANGE,
10
+ ON_DESTROY,
11
+ REORDER
12
+ }
13
+
7
14
  abstract class AbstractMapFeature(context: Context?) : ReactViewGroup(context) {
8
15
  protected var mMapView: RCTMGLMapView? = null;
9
16
  private var mWithMapViewCallbacks: Array<((RCTMGLMapView) -> Unit)>? = null;
@@ -14,8 +21,10 @@ abstract class AbstractMapFeature(context: Context?) : ReactViewGroup(context) {
14
21
  mWithMapViewCallbacks = null;
15
22
  }
16
23
 
17
- open fun removeFromMap(mapView: RCTMGLMapView) {
24
+ // return false if you don not want to remove this feature based on reason
25
+ open fun removeFromMap(mapView: RCTMGLMapView,reason: RemovalReason) : Boolean {
18
26
  mMapView = null;
27
+ return true;
19
28
  }
20
29
 
21
30
  internal fun withMapView(callback: (mapView: RCTMGLMapView) -> Unit) {
@@ -12,6 +12,7 @@ import com.mapbox.maps.ViewAnnotationAnchor
12
12
  import com.mapbox.maps.ViewAnnotationOptions
13
13
  import com.mapbox.maps.viewannotation.viewAnnotationOptions
14
14
  import com.mapbox.rctmgl.components.AbstractMapFeature
15
+ import com.mapbox.rctmgl.components.RemovalReason
15
16
  import com.mapbox.rctmgl.components.mapview.RCTMGLMapView
16
17
  import com.mapbox.rctmgl.utils.Logger
17
18
  import java.util.Vector
@@ -77,9 +78,10 @@ class RCTMGLMarkerView(context: Context?, private val mManager: RCTMGLMarkerView
77
78
  add()
78
79
  }
79
80
 
80
- override fun removeFromMap(mapView: RCTMGLMapView) {
81
- super.removeFromMap(mapView)
81
+ override fun removeFromMap(mapView: RCTMGLMapView, reason: RemovalReason): Boolean {
82
+ super.removeFromMap(mapView, reason)
82
83
  remove(mapView)
84
+ return true
83
85
  }
84
86
 
85
87
  // endregion
@@ -19,6 +19,7 @@ import android.view.View
19
19
  import com.mapbox.geojson.Point
20
20
  import com.mapbox.maps.ScreenCoordinate
21
21
  import com.mapbox.maps.Style
22
+ import com.mapbox.rctmgl.components.RemovalReason
22
23
  import com.mapbox.rctmgl.events.PointAnnotationDragEvent
23
24
  import com.mapbox.rctmgl.utils.BitmapUtils
24
25
  import com.mapbox.rctmgl.utils.LatLng
@@ -90,8 +91,8 @@ class RCTMGLPointAnnotation(private val mContext: Context, private val mManager:
90
91
  }
91
92
  }
92
93
 
93
- override fun removeFromMap(mapView: RCTMGLMapView) {
94
- val map = (if (mMapView != null) mMapView else mapView) ?: return
94
+ override fun removeFromMap(mapView: RCTMGLMapView, reason: RemovalReason): Boolean {
95
+ val map = (if (mMapView != null) mMapView else mapView) ?: return true
95
96
  if (marker != null) {
96
97
  map.pointAnnotationManager?.delete(marker!!)
97
98
  }
@@ -101,7 +102,7 @@ class RCTMGLPointAnnotation(private val mContext: Context, private val mManager:
101
102
  if (calloutView != null) {
102
103
  map.offscreenAnnotationViewContainer?.removeView(calloutView)
103
104
  }
104
- super.removeFromMap(mapView)
105
+ return super.removeFromMap(mapView, reason)
105
106
  }
106
107
 
107
108
  override fun onLayoutChange(v: View, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int,
@@ -55,9 +55,7 @@ class CameraUpdateQueue {
55
55
 
56
56
  fun execute(map: RCTMGLMapView?) {
57
57
  if (mQueue.isEmpty()) {
58
- if (mCompleteListener != null) {
59
- mCompleteListener!!.onCompleteAll()
60
- }
58
+ mCompleteListener?.let { it.onCompleteAll() }
61
59
  return
62
60
  }
63
61
  val stop = mQueue.poll() ?: return
@@ -25,6 +25,7 @@ import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateBearing
25
25
  import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateOptions
26
26
  import com.mapbox.maps.plugin.viewport.data.ViewportStatusChangeReason
27
27
  import com.mapbox.maps.plugin.viewport.viewport
28
+ import com.mapbox.rctmgl.components.RemovalReason
28
29
  import com.mapbox.rctmgl.components.camera.constants.CameraMode
29
30
  import com.mapbox.rctmgl.components.location.*
30
31
  import com.mapbox.rctmgl.events.MapUserTrackingModeEvent
@@ -39,7 +40,7 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
39
40
  private var hasSentFirstRegion = false
40
41
  private var mDefaultStop: CameraStop? = null
41
42
  private var mCameraStop: CameraStop? = null
42
- private val mCameraUpdateQueue: CameraUpdateQueue
43
+ private val mCameraUpdateQueue = CameraUpdateQueue()
43
44
 
44
45
  /*
45
46
  // private LocationComponent mLocationComponent;
@@ -66,17 +67,6 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
66
67
  private var mMaxBounds: LatLngBounds? = null
67
68
 
68
69
 
69
- private val mLocationBearingChangedListener = OnIndicatorBearingChangedListener { v ->
70
- if (mFollowUserLocation) {
71
- mMapView!!.getMapboxMap().setCamera(CameraOptions.Builder().bearing(v).build())
72
- }
73
- }
74
- private val mLocationPositionChangeListener = OnIndicatorPositionChangedListener { point ->
75
- if (mFollowUserLocation) {
76
- mMapView!!.getMapboxMap().setCamera(CameraOptions.Builder().center(point).build())
77
- mMapView!!.gestures.focalPoint = mMapView!!.getMapboxMap().pixelForCoordinate(point)
78
- }
79
- }
80
70
  private val mCameraCallback: Animator.AnimatorListener = object : Animator.AnimatorListener {
81
71
  override fun onAnimationStart(animator: Animator) {}
82
72
  override fun onAnimationEnd(animator: Animator) {
@@ -88,7 +78,7 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
88
78
 
89
79
  override fun onAnimationCancel(animator: Animator) {
90
80
  if (!hasSentFirstRegion) {
91
- mMapView!!.sendRegionChangeEvent(false)
81
+ mMapView?.sendRegionChangeEvent(false)
92
82
  hasSentFirstRegion = true
93
83
  }
94
84
  }
@@ -105,14 +95,18 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
105
95
  _updateViewportState()
106
96
  }
107
97
 
108
- override fun removeFromMap(mapView: RCTMGLMapView) {
109
- super.removeFromMap(mapView)
98
+ override fun removeFromMap(mapView: RCTMGLMapView, reason: RemovalReason) : Boolean {
99
+ if (reason == RemovalReason.STYLE_CHANGE) {
100
+ return false
101
+ } else {
102
+ return super.removeFromMap(mapView, reason);
103
+ }
110
104
  }
111
105
  fun setStop(stop: CameraStop) {
112
106
  mCameraStop = stop
113
- mCameraStop!!.setCallback(mCameraCallback)
107
+ stop.setCallback(mCameraCallback)
114
108
  if (mMapView != null) {
115
- mCameraStop?.let { updateCamera(it) }
109
+ stop.let { updateCamera(it) }
116
110
  }
117
111
  }
118
112
 
@@ -181,11 +175,13 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
181
175
  }
182
176
 
183
177
  private fun setInitialCamera() {
184
- val map = mMapView!!.getMapboxMap()
185
- if (mDefaultStop != null) {
186
- mDefaultStop!!.setDuration(0)
187
- mDefaultStop!!.setMode(CameraMode.NONE)
188
- val item = mDefaultStop!!.toCameraUpdate(mMapView!!)
178
+ mDefaultStop?.let {
179
+ val mapView = mMapView!!
180
+ val map = mapView.getMapboxMap()
181
+
182
+ it.setDuration(0)
183
+ it.setMode(CameraMode.NONE)
184
+ val item = it.toCameraUpdate(mapView)
189
185
  item.run()
190
186
  }
191
187
  }
@@ -221,7 +217,6 @@ class RCTMGLCamera(private val mContext: Context, private val mManager: RCTMGLCa
221
217
  }
222
218
 
223
219
  init {
224
- mCameraUpdateQueue = CameraUpdateQueue()
225
220
  mLocationManager = getInstance(mContext)
226
221
  }
227
222
 
@@ -15,6 +15,7 @@ import com.mapbox.maps.ImageStretches
15
15
  import com.mapbox.maps.MapboxMap
16
16
  import com.mapbox.maps.Style
17
17
  import com.mapbox.rctmgl.R
18
+ import com.mapbox.rctmgl.components.RemovalReason
18
19
  import com.mapbox.rctmgl.components.mapview.RCTMGLMapView
19
20
  import com.mapbox.rctmgl.components.images.RCTMGLImages
20
21
  import com.mapbox.rctmgl.events.ImageMissingEvent
@@ -92,13 +93,13 @@ class RCTMGLImages(context: Context, private val mManager: RCTMGLImagesManager)
92
93
  mSendMissingImageEvents = value
93
94
  }
94
95
 
95
- override fun removeFromMap(mapView: RCTMGLMapView) {
96
+ override fun removeFromMap(mapView: RCTMGLMapView, reason: RemovalReason): Boolean {
96
97
  removeImages(mapView)
97
98
  mMap = null
98
99
  mNativeImages = mutableMapOf()
99
100
  mImages = HashMap()
100
101
  mCurrentImages = HashSet()
101
- super.removeFromMap(mapView)
102
+ return super.removeFromMap(mapView, reason)
102
103
  }
103
104
 
104
105
  private fun removeImages(mapView: RCTMGLMapView) {
@@ -10,6 +10,7 @@ import com.mapbox.maps.Style
10
10
  import com.mapbox.maps.plugin.PuckBearingSource
11
11
  import com.mapbox.rctmgl.R
12
12
  import com.mapbox.rctmgl.components.AbstractMapFeature
13
+ import com.mapbox.rctmgl.components.RemovalReason
13
14
  import com.mapbox.rctmgl.components.mapview.RCTMGLMapView
14
15
 
15
16
  enum class RenderMode {
@@ -31,11 +32,11 @@ class RCTMGLNativeUserLocation(context: Context) : AbstractMapFeature(context),
31
32
  applyChanges()
32
33
  }
33
34
 
34
- override fun removeFromMap(mapView: RCTMGLMapView) {
35
+ override fun removeFromMap(mapView: RCTMGLMapView, reason: RemovalReason): Boolean {
35
36
  mEnabled = false
36
37
  mMapView?.locationComponentManager?.showNativeUserLocation(false)
37
38
  mMap?.getStyle(this)
38
- super.removeFromMap(mapView)
39
+ return super.removeFromMap(mapView, reason)
39
40
  }
40
41
 
41
42
  @SuppressLint("MissingPermission")
@@ -21,6 +21,7 @@ import com.mapbox.geojson.Feature
21
21
  import com.mapbox.geojson.FeatureCollection
22
22
  import com.mapbox.geojson.Point
23
23
  import com.mapbox.maps.*
24
+ import com.mapbox.maps.extension.localization.localizeLabels
24
25
  import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData
25
26
  import com.mapbox.maps.extension.style.expressions.generated.Expression
26
27
  import com.mapbox.maps.extension.style.layers.Layer
@@ -46,6 +47,7 @@ import com.mapbox.maps.plugin.scalebar.generated.ScaleBarSettings
46
47
  import com.mapbox.maps.plugin.scalebar.scalebar
47
48
  import com.mapbox.rctmgl.R
48
49
  import com.mapbox.rctmgl.components.AbstractMapFeature
50
+ import com.mapbox.rctmgl.components.RemovalReason
49
51
  import com.mapbox.rctmgl.components.annotation.RCTMGLMarkerView
50
52
  import com.mapbox.rctmgl.components.annotation.RCTMGLMarkerViewManager
51
53
  import com.mapbox.rctmgl.components.annotation.RCTMGLPointAnnotation
@@ -64,10 +66,7 @@ import com.mapbox.rctmgl.events.IEvent
64
66
  import com.mapbox.rctmgl.events.MapChangeEvent
65
67
  import com.mapbox.rctmgl.events.MapClickEvent
66
68
  import com.mapbox.rctmgl.events.constants.EventTypes
67
- import com.mapbox.rctmgl.utils.BitmapUtils
68
- import com.mapbox.rctmgl.utils.GeoJSONUtils
69
- import com.mapbox.rctmgl.utils.LatLng
70
- import com.mapbox.rctmgl.utils.Logger
69
+ import com.mapbox.rctmgl.utils.*
71
70
  import com.mapbox.rctmgl.utils.extensions.toReadableArray
72
71
  import org.json.JSONException
73
72
  import org.json.JSONObject
@@ -142,6 +141,10 @@ class RCTMGLLifeCycle {
142
141
  }
143
142
  }
144
143
 
144
+ data class FeatureEntry(val feature: AbstractMapFeature?, val view: View?, var addedToMap: Boolean = false) {
145
+
146
+ }
147
+
145
148
  open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapViewManager /*, MapboxMapOptions options*/) : MapView(mContext), OnMapClickListener, OnMapLongClickListener {
146
149
  /**
147
150
  * `PointAnnotations` are rendered to a canvas, but the React Native `Image` component is
@@ -156,19 +159,23 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
156
159
  private var mPointAnnotationManager: PointAnnotationManager? = null
157
160
  private var mActiveMarkerID: Long = -1
158
161
  private var mProjection: ProjectionName = ProjectionName.MERCATOR
162
+ private var mLocaleString: String? = null
163
+ private var mLocaleLayerIds: List<String>? = null
159
164
  private var mStyleURL: String? = null
160
165
  val isDestroyed = false
161
166
  private var mCamera: RCTMGLCamera? = null
162
- private val mFeatures: MutableList<AbstractMapFeature> = ArrayList()
167
+ private val mFeatures = mutableListOf<FeatureEntry>()
163
168
  private var mQueuedFeatures: MutableList<AbstractMapFeature>? = ArrayList()
164
169
  private val mPointAnnotations: MutableMap<String, RCTMGLPointAnnotation>
165
170
  private val mCameraChangeTracker = CameraChangeTracker()
166
171
  private val mMap: MapboxMap?
167
172
 
168
- // v10todo, style gets null if we add anyhing
169
173
  var savedStyle: Style? = null
170
174
  private set
171
- private val mHandledMapChangedEvents: HashSet<String>? = null
175
+
176
+ private var styleLoaded = false
177
+
178
+ private var mHandledMapChangedEvents: HashSet<String>? = null
172
179
  private var mAnnotationClicked = false
173
180
  private var mAnnotationDragged = false
174
181
  private var mLocationComponentManager: LocationComponentManager? = null
@@ -238,23 +245,31 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
238
245
  return mPointAnnotationManager
239
246
  }
240
247
 
248
+ private fun styleLoaded(style: Style) {
249
+ savedStyle = style
250
+ styleLoaded = true
251
+ setUpImage(style)
252
+ addFeaturesToMap()
253
+ applyLocalizeLabels()
254
+ style.setProjection(Projection(mProjection))
255
+ }
256
+
241
257
  private fun onMapReady(map: MapboxMap) {
242
258
  map.getStyle(object : Style.OnStyleLoaded {
243
259
  override fun onStyleLoaded(style: Style) {
244
- savedStyle = style
245
- setUpImage(style)
246
- addQueuedFeaturesToMap()
247
- setupLocalization(style)
260
+ styleLoaded(style)
248
261
  }
249
262
  })
250
263
  val _this = this
251
264
 
252
265
  map.addOnCameraChangeListener(OnCameraChangeListener { cameraChangedEventData ->
253
266
  handleMapChangedEvent(EventTypes.REGION_IS_CHANGING)
267
+ handleMapChangedEvent(EventTypes.CAMERA_CHANGED)
254
268
  })
255
269
 
256
270
  map.addOnMapIdleListener(OnMapIdleListener { mapIdleEventData ->
257
271
  sendRegionDidChangeEvent()
272
+ handleMapChangedEvent(EventTypes.MAP_IDLE);
258
273
  })
259
274
 
260
275
  val gesturesPlugin: GesturesPlugin = this.gestures
@@ -325,7 +340,7 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
325
340
  mMap.getStyle(onStyleLoaded)
326
341
  }
327
342
 
328
- // region features
343
+ // region Features
329
344
  fun addFeature(childView: View?, childPosition: Int) {
330
345
  var feature: AbstractMapFeature? = null
331
346
  if (childView is RCTSource<*>) {
@@ -354,23 +369,26 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
354
369
  feature = childView as AbstractMapFeature?
355
370
  } else if (childView is ViewGroup) {
356
371
  val children = childView
372
+ Logger.w(LOG_TAG, "Adding non map components as a child of a map is deprecated!")
357
373
  for (i in 0 until children.childCount) {
358
- addFeature(children.getChildAt(i), childPosition)
374
+ addView(children.getChildAt(i), childPosition)
359
375
  }
360
376
  }
361
- if (feature != null) {
362
- if (mQueuedFeatures == null) {
363
- feature.addToMap(this)
364
- mFeatures.add(childPosition, feature)
365
- } else {
366
- mQueuedFeatures?.add(childPosition, feature)
367
- }
377
+
378
+ val addToMap = styleLoaded
379
+
380
+
381
+ var entry = FeatureEntry(feature, childView, false)
382
+ if (addToMap) {
383
+ feature?.addToMap(this)
384
+ entry.addedToMap = true
368
385
  }
386
+ mFeatures.add(childPosition, entry);
369
387
  }
370
388
 
371
- fun removeFeature(childPosition: Int) {
372
- val feature = features()[childPosition]
373
- ?: return
389
+ fun removeFeatureAt(childPosition: Int) {
390
+ val entry = mFeatures[childPosition]
391
+ val feature = entry.feature
374
392
  if (feature is RCTSource<*>) {
375
393
  mSources.remove(feature.iD)
376
394
  } else if (feature is RCTMGLPointAnnotation) {
@@ -382,67 +400,54 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
382
400
  } else if (feature is RCTMGLImages) {
383
401
  mImages.remove(feature)
384
402
  }
385
- feature.removeFromMap(this)
386
- features().remove(feature)
387
- }
388
-
389
- private fun features(): MutableList<AbstractMapFeature> {
390
- return if (mQueuedFeatures != null && mQueuedFeatures!!.size > 0) (
391
- mQueuedFeatures!!
392
- )
393
- else {
394
- mFeatures
403
+ if (entry.addedToMap) {
404
+ if (feature?.removeFromMap(this, RemovalReason.VIEW_REMOVAL) == true) {
405
+ entry.addedToMap = false
406
+ }
395
407
  }
408
+ mFeatures.removeAt(childPosition)
396
409
  }
397
410
 
398
411
  val featureCount: Int
399
- get() = features().size
412
+ get() = mFeatures.size
400
413
 
401
- fun getFeatureAt(i: Int): AbstractMapFeature {
402
- return features()[i]
414
+ fun getFeatureAt(i: Int): View? {
415
+ return mFeatures[i].view
403
416
  }
404
417
 
405
- fun removeAllFeatures() {
418
+ fun removeAllFeatureFromMap(reason: RemovalReason) {
406
419
  mFeatures.forEach {
407
- it.removeFromMap(this)
408
- }
409
- mFeatures.clear()
410
- val queuedFeatures = mQueuedFeatures
411
- if (queuedFeatures != null) {
412
- queuedFeatures.clear()
420
+ if (it.feature?.removeFromMap(this, reason) == true) {
421
+ it.addedToMap = false
422
+ }
413
423
  }
414
424
  }
415
425
  // endregion
416
426
 
417
427
  fun sendRegionChangeEvent(isAnimated: Boolean) {
418
- val event: IEvent = MapChangeEvent(this, EventTypes.REGION_DID_CHANGE,
428
+ val didChangeEvent = MapChangeEvent(this, EventTypes.REGION_DID_CHANGE,
419
429
  makeRegionPayload(isAnimated))
420
- mManager.handleEvent(event)
430
+ mManager.handleEvent(didChangeEvent)
421
431
  mCameraChangeTracker.setReason(CameraChangeReason.NONE)
422
432
  }
423
433
 
424
- private fun removeAllFeaturesFromMap() {
425
- mFeatures.forEach { it -> it.removeFromMap(this) }
426
- }
427
-
428
- private fun addQueuedFeaturesToMap() {
429
- mQueuedFeatures?.let { queuedFeatures ->
430
- queuedFeatures.forEach {
431
- it.addToMap(this)
432
- mFeatures.add(it)
434
+ private fun removeAllFeaturesFromMap(reason: RemovalReason) {
435
+ mFeatures.forEach { it ->
436
+ if (it.feature?.removeFromMap(this, reason) == true) {
437
+ it.addedToMap = false
433
438
  }
434
- queuedFeatures.clear()
435
439
  }
436
- mQueuedFeatures = null;
437
440
  }
438
441
 
439
- private fun addAllFeaturesToMap() {
440
- mQueuedFeatures?.also {
441
- this.addQueuedFeaturesToMap()
442
- } ?: run {
443
- mFeatures.forEach { it.addToMap(this) }
442
+ private fun addFeaturesToMap() {
443
+ mFeatures.forEach {
444
+ if (!it.addedToMap) {
445
+ it.feature?.addToMap(this)
446
+ it.addedToMap = true
447
+ }
444
448
  }
445
449
  }
450
+
446
451
 
447
452
  private val allTouchableSources: List<RCTSource<*>>
448
453
  private get() {
@@ -507,23 +512,37 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
507
512
  }
508
513
  }
509
514
 
515
+ fun applyLocalizeLabels() {
516
+ val localeStr = mLocaleString
517
+ if (localeStr != null) {
518
+ val locale = if (localeStr == "current") Locale.getDefault() else Locale(localeStr)
519
+ savedStyle?.localizeLabels(locale, mLocaleLayerIds)
520
+ }
521
+ }
522
+ fun setReactLocalizeLabels(localeStr: String?, layerIds: List<String>?) {
523
+ if (localeStr != null) {
524
+ mLocaleString = localeStr
525
+ mLocaleLayerIds = layerIds
526
+ }
527
+ applyLocalizeLabels()
528
+ }
529
+
510
530
  fun setReactStyleURL(styleURL: String) {
511
531
  mStyleURL = styleURL
512
532
  if (mMap != null) {
513
- removeAllFeaturesFromMap()
533
+ removeAllFeatureFromMap(RemovalReason.STYLE_CHANGE)
514
534
  if (isJSONValid(mStyleURL)) {
535
+ styleLoaded = false
515
536
  mMap.loadStyleJson(styleURL, object : Style.OnStyleLoaded {
516
537
  override fun onStyleLoaded(style: Style) {
517
- style.setProjection(Projection(mProjection))
518
- addAllFeaturesToMap()
538
+ styleLoaded(style)
519
539
  }
520
540
  })
521
541
  } else {
542
+ styleLoaded = false
522
543
  mMap.loadStyleUri(styleURL, object : Style.OnStyleLoaded {
523
544
  override fun onStyleLoaded(style: Style) {
524
- savedStyle = style
525
- style.setProjection(Projection(mProjection))
526
- addAllFeaturesToMap()
545
+ styleLoaded(style)
527
546
  }
528
547
  },
529
548
  object : OnMapLoadErrorListener {
@@ -699,6 +718,8 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
699
718
  waiters.add(callback)
700
719
  }
701
720
 
721
+ // region Events
722
+
702
723
  fun sendRegionDidChangeEvent() {
703
724
  handleMapChangedEvent(EventTypes.REGION_DID_CHANGE)
704
725
  mCameraChangeTracker.setReason(CameraChangeReason.NONE)
@@ -706,16 +727,52 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
706
727
 
707
728
  private fun handleMapChangedEvent(eventType: String) {
708
729
  if (!canHandleEvent(eventType)) return
730
+
709
731
  val event: IEvent
710
732
  event = when (eventType) {
711
733
  EventTypes.REGION_WILL_CHANGE, EventTypes.REGION_DID_CHANGE, EventTypes.REGION_IS_CHANGING -> MapChangeEvent(this, eventType, makeRegionPayload(null))
734
+ EventTypes.CAMERA_CHANGED, EventTypes.MAP_IDLE -> MapChangeEvent(this, eventType, makeCameraPayload())
712
735
  else -> MapChangeEvent(this, eventType)
713
736
  }
714
737
  mManager.handleEvent(event)
715
738
  }
716
739
 
740
+ fun setHandledMapChangedEvents(events: Array<String>) {
741
+ mHandledMapChangedEvents = HashSet<String>(events.asList())
742
+ }
743
+
717
744
  private fun canHandleEvent(event: String): Boolean {
718
- return mHandledMapChangedEvents == null || mHandledMapChangedEvents.contains(event)
745
+ val changedEvents = mHandledMapChangedEvents
746
+ return changedEvents == null || changedEvents.contains(event)
747
+ }
748
+
749
+ private fun makeCameraPayload(): WritableMap {
750
+ val position = mMap?.cameraState ?: return WritableNativeMap()
751
+ val properties = WritableNativeMap()
752
+ properties.putDouble("zoom", position.zoom)
753
+ properties.putDouble("heading", position.bearing)
754
+ properties.putDouble("pitch", position.pitch)
755
+ properties.putArray("center", position.center.toReadableArray())
756
+ try {
757
+ val bounds = mMap.coordinateBoundsForCamera(position.toCameraOptions())
758
+
759
+ val boundsMap = WritableNativeMap()
760
+ boundsMap.putArray("ne", bounds.northeast.toReadableArray())
761
+ boundsMap.putArray("sw", bounds.southwest.toReadableArray())
762
+
763
+ properties.putMap("bounds", boundsMap)
764
+ } catch (ex: Exception) {
765
+ Logger.e(LOG_TAG, "An error occurred while attempting to make the region", ex)
766
+ }
767
+ val gestures = WritableNativeMap()
768
+ gestures.putBoolean("isGestureActive", mCameraChangeTracker.isUserInteraction)
769
+ // gestures.putBoolean("isAnimatingFromGesture", if (null == isAnimated) mCameraChangeTracker.isAnimated else isAnimated)
770
+
771
+ val state: WritableMap = WritableNativeMap()
772
+ state.putMap("properties", properties)
773
+ state.putMap("gestures", gestures)
774
+
775
+ return state
719
776
  }
720
777
 
721
778
  private fun makeRegionPayload(isAnimated: Boolean?): WritableMap {
@@ -737,18 +794,7 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
737
794
  return GeoJSONUtils.toPointFeature(latLng, properties)
738
795
  }
739
796
 
740
- private fun setupLocalization(style: Style) {
741
- /*
742
- mLocalizationPlugin = new LocalizationPlugin(RCTMGLMapView.this, mMap, style);
743
- if (mLocalizeLabels) {
744
- try {
745
- mLocalizationPlugin.matchMapLanguageWithDeviceDefault();
746
- } catch (Exception e) {
747
- final String localeString = Locale.getDefault().toString();
748
- Logger.w(LOG_TAG, String.format("Could not find matching locale for %s", localeString));
749
- }
750
- }*/
751
- }
797
+ // endregion
752
798
 
753
799
  /**
754
800
  * Adds the marker image to the map for use as a SymbolLayer icon
@@ -1245,7 +1291,7 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
1245
1291
  }
1246
1292
 
1247
1293
  override fun onDestroy() {
1248
- removeAllFeatures()
1294
+ removeAllFeaturesFromMap(RemovalReason.ON_DESTROY)
1249
1295
  viewAnnotationManager.removeAllViewAnnotations()
1250
1296
  mLocationComponentManager?.onDestroy();
1251
1297
 
@@ -1254,7 +1300,7 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
1254
1300
  }
1255
1301
 
1256
1302
  fun onDropViewInstance() {
1257
- removeAllFeatures()
1303
+ removeAllFeaturesFromMap(RemovalReason.ON_DESTROY)
1258
1304
  viewAnnotationManager.removeAllViewAnnotations()
1259
1305
  lifecycle.onDestroy()
1260
1306
  }
@@ -1264,6 +1310,7 @@ open class RCTMGLMapView(private val mContext: Context, var mManager: RCTMGLMapV
1264
1310
  super.onAttachedToWindow()
1265
1311
  }
1266
1312
 
1313
+
1267
1314
  // endregion
1268
1315
  }
1269
1316