react-native-maps 0.31.0 → 1.0.0-alpha.1

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 (301) hide show
  1. package/android/build.gradle +89 -33
  2. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  3. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  4. package/android/gradlew +251 -0
  5. package/android/gradlew.bat +94 -0
  6. package/android/src/main/AndroidManifest.xml +1 -5
  7. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  8. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  9. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  10. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  11. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  12. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  13. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  14. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  29. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  30. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  31. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  32. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  33. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  34. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  35. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  36. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +623 -0
  37. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  38. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +284 -0
  39. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +101 -0
  40. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  41. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  42. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  43. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  70. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FileUtil.java +3 -6
  71. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FusedLocationSource.java +5 -2
  72. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReadable.java +1 -1
  73. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReader.java +5 -7
  74. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageUtil.java +1 -2
  75. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/LatLngBoundsUtils.java +1 -1
  76. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +98 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +41 -0
  78. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCalloutManager.java → rnmaps/maps/MapCalloutManager.java} +6 -6
  79. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircle.java → rnmaps/maps/MapCircle.java} +34 -8
  80. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircleManager.java → rnmaps/maps/MapCircleManager.java} +15 -20
  81. package/android/src/main/java/com/rnmaps/maps/MapFeature.java +17 -0
  82. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolyline.java → rnmaps/maps/MapGradientPolyline.java} +9 -12
  83. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolylineManager.java → rnmaps/maps/MapGradientPolylineManager.java} +13 -18
  84. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmap.java → rnmaps/maps/MapHeatmap.java} +8 -9
  85. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmapManager.java → rnmaps/maps/MapHeatmapManager.java} +8 -8
  86. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapLocalTile.java → rnmaps/maps/MapLocalTile.java} +19 -16
  87. package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +54 -0
  88. package/android/src/main/java/com/rnmaps/maps/MapManager.java +504 -0
  89. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +706 -0
  90. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +368 -0
  91. package/android/src/main/java/com/rnmaps/maps/MapModule.java +283 -0
  92. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +262 -0
  93. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +97 -0
  94. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygon.java → rnmaps/maps/MapPolygon.java} +73 -9
  95. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygonManager.java → rnmaps/maps/MapPolygonManager.java} +22 -22
  96. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +230 -0
  97. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolylineManager.java → rnmaps/maps/MapPolylineManager.java} +18 -38
  98. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileProvider.java → rnmaps/maps/MapTileProvider.java} +55 -76
  99. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileWorker.java → rnmaps/maps/MapTileWorker.java} +7 -14
  100. package/android/src/main/java/com/rnmaps/maps/MapUIBlock.java +64 -0
  101. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapUrlTile.java → rnmaps/maps/MapUrlTile.java} +29 -29
  102. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +87 -0
  103. package/android/src/main/java/com/rnmaps/maps/MapView.java +1844 -0
  104. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapWMSTile.java → rnmaps/maps/MapWMSTile.java} +11 -17
  105. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +81 -0
  106. package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +45 -0
  107. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/RegionChangeEvent.java +1 -1
  108. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/SizeReportingShadowNode.java +1 -1
  109. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewAttacherGroup.java +2 -7
  110. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewChangesTracker.java +12 -11
  111. package/android/src/main/jni/CMakeLists.txt +36 -0
  112. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  113. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  114. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  115. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  116. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  117. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  118. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  119. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
  120. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  121. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  122. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  123. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  124. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  125. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  126. package/app.plugin.js +1 -0
  127. package/ios/AirGoogleMaps/AIRGMSMarker.h +2 -0
  128. package/ios/AirGoogleMaps/AIRGoogleMap.h +22 -12
  129. package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +407 -130
  130. package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +2 -3
  131. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +42 -3
  132. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
  133. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
  134. package/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h +1 -1
  135. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +11 -0
  136. package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
  137. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +4 -0
  138. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +369 -237
  139. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +3 -2
  140. package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
  141. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +7 -6
  142. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +62 -5
  143. package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
  144. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +4 -3
  145. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +9 -9
  146. package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
  147. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  148. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  149. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  150. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
  151. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
  152. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +29 -0
  153. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +678 -0
  154. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +40 -0
  155. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  156. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +226 -0
  157. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  158. package/ios/AirGoogleMaps/Resources/GoogleMapsPrivacy.bundle/PrivacyInfo.xcprivacy +110 -0
  159. package/ios/AirMaps/AIRMap.h +19 -14
  160. package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +333 -120
  161. package/ios/AirMaps/AIRMapCircle.m +1 -53
  162. package/ios/AirMaps/AIRMapCoordinate.m +2 -4
  163. package/ios/AirMaps/AIRMapManager.m +64 -218
  164. package/ios/AirMaps/AIRMapMarker.h +5 -0
  165. package/ios/AirMaps/AIRMapMarker.m +180 -69
  166. package/ios/AirMaps/AIRMapMarkerManager.m +3 -0
  167. package/ios/AirMaps/AIRMapOverlay.m +2 -2
  168. package/ios/AirMaps/AIRMapPolygon.m +0 -52
  169. package/ios/AirMaps/AIRMapPolyline.m +3 -2
  170. package/ios/AirMaps/AIRMapWMSTile.m +8 -8
  171. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  172. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
  173. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
  174. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  175. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +52 -0
  176. package/ios/AirMaps/RCTComponentData+Maps.h +13 -0
  177. package/ios/AirMaps/RCTComponentData+Maps.m +55 -0
  178. package/ios/AirMaps/RCTConvert+AirMap.h +6 -1
  179. package/ios/AirMaps/RCTConvert+AirMap.m +18 -0
  180. package/ios/AirMaps/RNMapsAirModule.h +15 -0
  181. package/ios/AirMaps/RNMapsAirModule.mm +164 -0
  182. package/ios/AirMaps/RNMapsDefines.h +1 -0
  183. package/ios/AirMaps/RNMapsMapView.h +27 -0
  184. package/ios/AirMaps/RNMapsMapView.mm +577 -0
  185. package/ios/AirMaps/RNMapsMapViewManager.mm +42 -0
  186. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  187. package/ios/AirMaps/RNMapsMarkerView.mm +439 -0
  188. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  189. package/ios/AirMaps/UIView+AirMap.h +11 -0
  190. package/ios/AirMaps/UIView+AirMap.m +20 -0
  191. package/ios/AirMaps/module.modulemap +6 -0
  192. package/ios/AirMaps.xcodeproj/project.pbxproj +44 -4
  193. package/ios/PrivacyInfo.xcprivacy +37 -0
  194. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  195. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  196. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  197. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  198. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  199. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  200. package/ios/generated/RNMapsAirModuleDelegate.h +24 -0
  201. package/ios/generated/RNMapsHostVewDelegate.h +17 -0
  202. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  203. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  204. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  205. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  206. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  207. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  208. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  209. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  210. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  211. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  212. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  213. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  214. package/ios/generated/RNMapsSpecs/States.h +113 -0
  215. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  216. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  217. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  218. package/ios/generated/module.modulemap +15 -0
  219. package/package.json +57 -34
  220. package/plugin/build/android.js +58 -0
  221. package/plugin/build/index.js +10 -0
  222. package/plugin/build/ios.js +176 -0
  223. package/plugin/build/types.js +2 -0
  224. package/react-native-maps.podspec +114 -11
  225. package/react-native.config.js +15 -0
  226. package/src/{AnimatedRegion.js → AnimatedRegion.ts} +26 -21
  227. package/src/Geojson.tsx +541 -0
  228. package/src/MapCallout.tsx +77 -0
  229. package/src/MapCalloutSubview.tsx +64 -0
  230. package/src/MapCircle.tsx +162 -0
  231. package/src/MapHeatmap.tsx +125 -0
  232. package/src/MapLocalTile.tsx +60 -0
  233. package/src/MapMarker.tsx +531 -0
  234. package/src/MapMarkerNativeComponent.ts +51 -0
  235. package/src/MapOverlay.tsx +178 -0
  236. package/src/MapPolygon.tsx +188 -0
  237. package/src/MapPolygon.types.ts +25 -0
  238. package/src/MapPolyline.tsx +215 -0
  239. package/src/MapUrlTile.tsx +169 -0
  240. package/src/MapView.tsx +1235 -0
  241. package/src/MapView.types.ts +212 -0
  242. package/src/MapView.web.ts +2 -0
  243. package/src/MapViewNativeComponent.ts +86 -0
  244. package/src/MapWMSTile.tsx +148 -0
  245. package/src/ProviderConstants.ts +2 -0
  246. package/src/createFabricMap.tsx +253 -0
  247. package/src/decorateMapComponent.ts +230 -0
  248. package/src/fixImageProp.ts +17 -0
  249. package/src/index.ts +52 -0
  250. package/src/sharedTypes.ts +101 -0
  251. package/src/sharedTypesInternal.ts +1 -0
  252. package/src/specs/NativeAirMapsModule.ts +36 -0
  253. package/src/specs/NativeComponentCallout.ts +63 -0
  254. package/src/specs/NativeComponentCircle.ts +93 -0
  255. package/src/specs/NativeComponentGoogleMapView.ts +922 -0
  256. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  257. package/src/specs/NativeComponentMapView.ts +1100 -0
  258. package/src/specs/NativeComponentMarker.ts +326 -0
  259. package/src/specs/NativeComponentOverlay.ts +98 -0
  260. package/src/specs/NativeComponentPolyline.ts +124 -0
  261. package/src/specs/NativeComponentUrlTile.ts +128 -0
  262. package/src/specs/NativeComponentWMSTile.ts +107 -0
  263. package/LICENSE +0 -21
  264. package/README.md +0 -652
  265. package/android/src/main/assets/ula.kml +0 -1214
  266. package/android/src/main/java/com/airbnb/android/react/maps/AirMapCallout.java +0 -23
  267. package/android/src/main/java/com/airbnb/android/react/maps/AirMapFeature.java +0 -18
  268. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLiteManager.java +0 -20
  269. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLocalTileManager.java +0 -56
  270. package/android/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +0 -500
  271. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarker.java +0 -630
  272. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarkerManager.java +0 -370
  273. package/android/src/main/java/com/airbnb/android/react/maps/AirMapModule.java +0 -380
  274. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlay.java +0 -169
  275. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlayManager.java +0 -81
  276. package/android/src/main/java/com/airbnb/android/react/maps/AirMapPolyline.java +0 -162
  277. package/android/src/main/java/com/airbnb/android/react/maps/AirMapUrlTileManager.java +0 -97
  278. package/android/src/main/java/com/airbnb/android/react/maps/AirMapView.java +0 -1384
  279. package/android/src/main/java/com/airbnb/android/react/maps/AirMapWMSTileManager.java +0 -87
  280. package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +0 -65
  281. package/index.d.ts +0 -637
  282. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -690
  283. package/ios/User.xcconfig +0 -0
  284. package/react-native-google-maps.podspec +0 -22
  285. package/src/Geojson.js +0 -334
  286. package/src/MapCallout.js +0 -51
  287. package/src/MapCalloutSubview.js +0 -44
  288. package/src/MapCircle.js +0 -150
  289. package/src/MapHeatmap.js +0 -99
  290. package/src/MapLocalTile.js +0 -52
  291. package/src/MapMarker.js +0 -377
  292. package/src/MapOverlay.js +0 -86
  293. package/src/MapPolygon.js +0 -202
  294. package/src/MapPolyline.js +0 -168
  295. package/src/MapUrlTile.js +0 -131
  296. package/src/MapView.js +0 -1160
  297. package/src/MapView.web.js +0 -1
  298. package/src/MapWMSTile.js +0 -122
  299. package/src/ProviderConstants.js +0 -2
  300. package/src/decorateMapComponent.js +0 -112
  301. package/src/index.js +0 -31
@@ -0,0 +1,577 @@
1
+ //
2
+ // RNMapsMarker.m
3
+ // AirMaps
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+
9
+ #import "RNMapsMapView.h"
10
+ #import "AIRMap.h"
11
+ #import "AIRMapMarker.h"
12
+ #import "AIRMapManager.h"
13
+ #import "RNMapsMarkerView.h"
14
+ #if __has_include(<ReactNativeMaps/generated/RNMapsAirModuleDelegate.h>)
15
+ #import <ReactNativeMaps/generated/RNMapsSpecs.h>
16
+ #import <ReactNativeMaps/generated/RNMapsHostVewDelegate.h>
17
+ #import <ReactNativeMaps/generated/ComponentDescriptors.h>
18
+ #import <ReactNativeMaps/generated/EventEmitters.h>
19
+ #import <ReactNativeMaps/generated/Props.h>
20
+ #import <ReactNativeMaps/generated/RCTComponentViewHelpers.h>
21
+ #else
22
+ #import "../generated/RNMapsSpecs/RNMapsSpecs.h"
23
+ #import "../generated/RNMapsSpecs/ComponentDescriptors.h"
24
+ #import "../generated/RNMapsSpecs/EventEmitters.h"
25
+ #import "../generated/RNMapsSpecs/Props.h"
26
+ #import "../generated/RNMapsSpecs/RCTComponentViewHelpers.h"
27
+ #endif
28
+ #import "RCTFabricComponentsPlugins.h"
29
+ #import <React/RCTConversions.h>
30
+ #import "UIView+AirMap.h"
31
+
32
+ using namespace facebook::react;
33
+
34
+ @interface RNMapsMapView () <RCTRNMapsMapViewViewProtocol>
35
+ @end
36
+
37
+ @implementation RNMapsMapView {
38
+ AIRMap *_view;
39
+ AIRMapManager* _legacyMapManager;
40
+ }
41
+
42
+
43
+ - (id<RNMapsAirModuleDelegate>) mapView {
44
+ return nil;
45
+ }
46
+
47
+ - (void) prepareForRecycle
48
+ {
49
+ [super prepareForRecycle];
50
+ [_view removeFromSuperview];
51
+ _view = nil;
52
+ _legacyMapManager = nil;
53
+ self.contentView = nil;
54
+ }
55
+
56
+ #pragma mark - JS Commands
57
+ - (void)animateToRegion:(NSString *)regionJSON duration:(NSInteger)duration{
58
+ NSDictionary* regionDic = [RCTConvert dictonaryFromString:regionJSON];
59
+ MKCoordinateRegion region = [RCTConvert MKCoordinateRegion:regionDic];
60
+ Boolean animated = duration == 0 ? NO :YES;
61
+ _view.ignoreRegionChanges = animated;
62
+ [_view setRegion:region animated:animated];
63
+ }
64
+ - (void)setCamera:(NSString *)cameraJSON{
65
+ NSDictionary* cameraDic = [RCTConvert dictonaryFromString:cameraJSON];
66
+ MKMapCamera *camera = [RCTConvert MKMapCameraWithDefaults:cameraDic existingCamera:[_view camera]];
67
+ [_view setCamera:camera];
68
+ }
69
+
70
+ - (void)animateCamera:(NSString *)cameraJSON duration:(NSInteger)duration{
71
+ NSDictionary* cameraDic = [RCTConvert dictonaryFromString:cameraJSON];
72
+ MKMapCamera *camera = [RCTConvert MKMapCameraWithDefaults:cameraDic existingCamera:[_view camera]];
73
+ // don't emit region change events when we are setting the camera
74
+ _view.ignoreRegionChanges = YES;
75
+ [_view setCamera:camera animated:YES];
76
+ }
77
+
78
+ - (void)fitToElements:(NSString *)edgePaddingJSON animated:(BOOL)animated {
79
+ [_view showAnnotations:_view.annotations animated:animated];
80
+ }
81
+
82
+ - (void)fitToSuppliedMarkers:(NSString *)markersJSON edgePaddingJSON:(NSString *)edgePaddingJSON animated:(BOOL)animated {
83
+ NSArray* markers = [RCTConvert arrayFromString:markersJSON];
84
+ NSPredicate *filterMarkers = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
85
+ AIRMapMarker *marker = (AIRMapMarker *)evaluatedObject;
86
+ return [marker isKindOfClass:[AIRMapMarker class]] && [markers containsObject:marker.identifier];
87
+ }];
88
+ NSArray *filteredMarkers = [_view.annotations filteredArrayUsingPredicate:filterMarkers];
89
+ [_view showAnnotations:filteredMarkers animated:animated];
90
+ }
91
+ - (void)fitToCoordinates:(NSString *)coordinatesJSON edgePaddingJSON:(NSString *)edgePaddingJSON animated:(BOOL)animated {
92
+ NSArray* coordinatesArr = [RCTConvert arrayFromString:coordinatesJSON];
93
+ NSMutableArray<AIRMapCoordinate*>* mutableArray = [NSMutableArray new];
94
+ for (id json : coordinatesArr){
95
+ [mutableArray addObject:[RCTConvert AIRMapCoordinate:json]];
96
+ }
97
+
98
+ NSDictionary* edgePadding = [RCTConvert dictonaryFromString:edgePaddingJSON];
99
+
100
+ UIEdgeInsets edgeInsets = [RCTConvert UIEdgeInsets:edgePadding];
101
+ [_view fitToCoordinates:mutableArray edgePadding:edgeInsets animated:animated];
102
+
103
+ }
104
+
105
+ - (void) setIndoorActiveLevelIndex:(NSInteger) activeLevelIndex
106
+ {
107
+ // do nothing (google only)
108
+ }
109
+
110
+ #pragma mark - Native commands
111
+
112
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
113
+ {
114
+ RCTRNMapsMapViewHandleCommand(self, commandName, args);
115
+ }
116
+
117
+
118
+ + (ComponentDescriptorProvider)componentDescriptorProvider
119
+ {
120
+ return concreteComponentDescriptorProvider<RNMapsMapViewComponentDescriptor>();
121
+ }
122
+
123
+ - (void) prepareMapView
124
+ {
125
+ if (_legacyMapManager && _view) return;
126
+ static const auto defaultProps = std::make_shared<const RNMapsMapViewProps>();
127
+ _props = defaultProps;
128
+ _legacyMapManager = [[AIRMapManager alloc] init];
129
+ _view = (AIRMap *)[_legacyMapManager view];
130
+
131
+ self.contentView = _view;
132
+
133
+ _view.onPress = [self](NSDictionary* dictionary) {
134
+ if (_eventEmitter) {
135
+ // Extract values from the NSDictionary
136
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
137
+ NSDictionary* positionDict = dictionary[@"position"];
138
+
139
+ // Populate the OnMapPressCoordinate struct
140
+ facebook::react::RNMapsMapViewEventEmitter::OnPressCoordinate coordinate = {
141
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
142
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
143
+ };
144
+
145
+ // Populate the OnMapPressPosition struct
146
+ facebook::react::RNMapsMapViewEventEmitter::OnPressPosition position = {
147
+ .x = [positionDict[@"x"] doubleValue],
148
+ .y = [positionDict[@"y"] doubleValue],
149
+ };
150
+
151
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
152
+ facebook::react::RNMapsMapViewEventEmitter::OnPress data = {
153
+ .action = std::string([@"press" UTF8String]),
154
+ .position = position,
155
+ .coordinate = coordinate
156
+ };
157
+ mapViewEventEmitter->onPress(data);
158
+ }
159
+ };
160
+
161
+
162
+ _view.onMapReady = [self](NSDictionary* dictionary) {
163
+ if (_eventEmitter) {
164
+
165
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
166
+ facebook::react::RNMapsMapViewEventEmitter::OnMapReady data = {};
167
+ mapViewEventEmitter->onMapReady(data);
168
+ }
169
+ };
170
+ _view.onRegionChange = [self](NSDictionary* dictionary) {
171
+ if (_eventEmitter) {
172
+ NSDictionary* regionDict = dictionary[@"region"];
173
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
174
+ facebook::react::RNMapsMapViewEventEmitter::OnRegionChange data = {
175
+ .region.latitude = [regionDict[@"latitude"] doubleValue],
176
+ .region.longitude = [regionDict[@"longitude"] doubleValue],
177
+ .region.latitudeDelta = [regionDict[@"latitudeDelta"] doubleValue],
178
+ .region.longitudeDelta = [regionDict[@"longitudeDelta"] doubleValue],
179
+ .continuous = [dictionary[@"continuous"] boolValue],
180
+ };
181
+ mapViewEventEmitter->onRegionChange(data);
182
+ }
183
+ };
184
+ _view.onDoublePress = [self](NSDictionary* dictionary) {
185
+ if (_eventEmitter) {
186
+
187
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
188
+ NSDictionary* positionDict = dictionary[@"position"];
189
+
190
+ // Populate the OnMapPressCoordinate struct
191
+ facebook::react::RNMapsMapViewEventEmitter::OnDoublePressCoordinate coordinate = {
192
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
193
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
194
+ };
195
+
196
+ // Populate the OnMapDouplePressPosition struct
197
+ facebook::react::RNMapsMapViewEventEmitter::OnDoublePressPosition position = {
198
+ .x = [positionDict[@"x"] doubleValue],
199
+ .y = [positionDict[@"y"] doubleValue],
200
+ };
201
+
202
+
203
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
204
+ facebook::react::RNMapsMapViewEventEmitter::OnDoublePress data = {
205
+ .position = position,
206
+ .coordinate = coordinate
207
+ };
208
+ mapViewEventEmitter->onDoublePress(data);
209
+ }
210
+ };
211
+
212
+ _view.onPanDrag = [self](NSDictionary* dictionary) {
213
+ if (_eventEmitter) {
214
+
215
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
216
+ NSDictionary* positionDict = dictionary[@"position"];
217
+
218
+ // Populate the OnMapPressCoordinate struct
219
+ facebook::react::RNMapsMapViewEventEmitter::OnPanDragCoordinate coordinate = {
220
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
221
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
222
+ };
223
+
224
+ // Populate the OnMapDouplePressPosition struct
225
+ facebook::react::RNMapsMapViewEventEmitter::OnPanDragPosition position = {
226
+ .x = [positionDict[@"x"] doubleValue],
227
+ .y = [positionDict[@"y"] doubleValue],
228
+ };
229
+
230
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
231
+ facebook::react::RNMapsMapViewEventEmitter::OnPanDrag data = {
232
+ .position = position,
233
+ .coordinate = coordinate,
234
+ };
235
+ mapViewEventEmitter->onPanDrag(data);
236
+ }
237
+ };
238
+
239
+ _view.onUserLocationChange = [self](NSDictionary* dictionary) {
240
+ if (_eventEmitter) {
241
+
242
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
243
+ NSDictionary* errorDict = dictionary[@"error"];
244
+
245
+
246
+ // Populate the OnMapPressCoordinate struct
247
+ facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChangeCoordinate coordinate = {
248
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
249
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
250
+ };
251
+ NSString* str = @"";
252
+ if (errorDict){
253
+ str = errorDict[@"message"];
254
+ }
255
+
256
+ facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChangeError error = {
257
+ .message = std::string([str UTF8String]),
258
+ };
259
+
260
+
261
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
262
+ facebook::react::RNMapsMapViewEventEmitter::OnUserLocationChange data = {
263
+ .coordinate = coordinate,
264
+ .error = error,
265
+ };
266
+ mapViewEventEmitter->onUserLocationChange(data);
267
+ }
268
+ };
269
+
270
+ _view.onCalloutPress = [self](NSDictionary* dictionary) {
271
+ if (_eventEmitter) {
272
+
273
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
274
+ NSDictionary* positionDict = dictionary[@"position"];
275
+
276
+ // Populate the OnCalloutPressPoint struct
277
+ facebook::react::RNMapsMapViewEventEmitter::OnCalloutPressPoint point = {
278
+ .x = [coordinateDict[@"x"] doubleValue],
279
+ .y = [coordinateDict[@"y"] doubleValue],
280
+ };
281
+
282
+
283
+ facebook::react::RNMapsMapViewEventEmitter::OnCalloutPressFrame frame = {
284
+ .x = [positionDict[@"x"] doubleValue],
285
+ .y = [positionDict[@"y"] doubleValue],
286
+ .width = [positionDict[@"width"] doubleValue],
287
+ .height = [positionDict[@"height"] doubleValue],
288
+ };
289
+
290
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
291
+ facebook::react::RNMapsMapViewEventEmitter::OnCalloutPress data = {
292
+ .action = std::string([dictionary[@"action"] UTF8String]),
293
+ .id = std::string([dictionary[@"id"] UTF8String]),
294
+ .point = point,
295
+ .frame = frame,
296
+ };
297
+ mapViewEventEmitter->onCalloutPress(data);
298
+ }
299
+ };
300
+
301
+
302
+ _view.onRegionChangeStart = [self](NSDictionary* dictionary) {
303
+ if (_eventEmitter) {
304
+
305
+ NSDictionary* regionDict = dictionary[@"region"];
306
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter);
307
+ facebook::react::RNMapsMapViewEventEmitter::OnRegionChangeStart data = {
308
+ .region.latitude = [regionDict[@"latitude"] doubleValue],
309
+ .region.longitude = [regionDict[@"longitude"] doubleValue],
310
+ .region.latitudeDelta = [regionDict[@"latitudeDelta"] doubleValue],
311
+ .region.longitudeDelta = [regionDict[@"longitudeDelta"] doubleValue],
312
+ .continuous = [dictionary[@"continuous"] boolValue],
313
+ };
314
+ mapViewEventEmitter->onRegionChangeStart(data);
315
+ }
316
+ };
317
+
318
+
319
+ #define HANDLE_MARKER_DRAG_EVENT(eventName, emitterFunction) \
320
+ if (_eventEmitter) { \
321
+ NSDictionary* coordinateDict = dictionary[@"coordinate"]; \
322
+ auto mapViewEventEmitter = \
323
+ std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter); \
324
+ facebook::react::RNMapsMapViewEventEmitter::eventName data = { \
325
+ .coordinate.latitude = [coordinateDict[@"latitude"] doubleValue], \
326
+ .coordinate.longitude = [coordinateDict[@"longitude"] doubleValue], \
327
+ .id = std::string([[dictionary valueForKey:@"id"] UTF8String]), \
328
+ }; \
329
+ mapViewEventEmitter->emitterFunction(data); \
330
+ }
331
+
332
+
333
+
334
+ #define HANDLE_MARKER_EVENT(eventName, emitterFunction, actionName) \
335
+ if (_eventEmitter) { \
336
+ NSDictionary* coordinateDict = dictionary[@"coordinate"]; \
337
+ facebook::react::RNMapsMapViewEventEmitter::eventName##Coordinate coordinate = { \
338
+ .latitude = [coordinateDict[@"latitude"] doubleValue], \
339
+ .longitude = [coordinateDict[@"longitude"] doubleValue], \
340
+ }; \
341
+ \
342
+ auto mapViewEventEmitter = \
343
+ std::static_pointer_cast<RNMapsMapViewEventEmitter const>(_eventEmitter); \
344
+ facebook::react::RNMapsMapViewEventEmitter::eventName data = { \
345
+ .action = std::string([@actionName UTF8String]), \
346
+ .id = std::string([[dictionary valueForKey:@"id"] UTF8String]), \
347
+ .coordinate = coordinate \
348
+ }; \
349
+ mapViewEventEmitter->emitterFunction(data); \
350
+ }
351
+
352
+ _view.onMarkerDrag = [self](NSDictionary* dictionary) {
353
+ HANDLE_MARKER_DRAG_EVENT(OnMarkerDrag, onMarkerDrag);
354
+ };
355
+
356
+ _view.onMarkerDragStart = [self](NSDictionary* dictionary) {
357
+ HANDLE_MARKER_DRAG_EVENT(OnMarkerDragStart, onMarkerDragStart);
358
+ };
359
+
360
+ _view.onMarkerDragEnd = [self](NSDictionary* dictionary) {
361
+ HANDLE_MARKER_DRAG_EVENT(OnMarkerDragEnd, onMarkerDragEnd);
362
+ };
363
+
364
+ _view.onMarkerSelect = [self](NSDictionary* dictionary) {
365
+ HANDLE_MARKER_EVENT(OnMarkerSelect, onMarkerSelect, "marker-select");
366
+ };
367
+
368
+ _view.onMarkerDeselect = [self](NSDictionary* dictionary) {
369
+ HANDLE_MARKER_EVENT(OnMarkerDeselect, onMarkerDeselect, "marker-deselect");
370
+ };
371
+
372
+ _view.onMarkerPress = [self](NSDictionary* dictionary) {
373
+ HANDLE_MARKER_EVENT(OnMarkerPress, onMarkerPress, "marker-press");
374
+ };
375
+ }
376
+ - (instancetype)initWithFrame:(CGRect)frame
377
+ {
378
+ if (self = [super initWithFrame:frame]) {
379
+ [self prepareMapView];
380
+ }
381
+
382
+ return self;
383
+ }
384
+
385
+
386
+ - (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index{
387
+ id<RCTComponent> paperView = [childComponentView getPaperViewFromChildComponentView];
388
+ if (paperView){
389
+ [_view insertReactSubview:paperView atIndex:index];
390
+ } else if ([childComponentView isKindOfClass:[RNMapsMarkerView class]]){
391
+ RNMapsMarkerView* fabricMarker = (RNMapsMarkerView *) childComponentView;
392
+ [_view insertReactSubview:[fabricMarker marker] atIndex:index];
393
+ }
394
+ else {
395
+ [_view insertReactSubview:childComponentView atIndex:index];
396
+ }
397
+ }
398
+
399
+ - (void) unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
400
+ {
401
+ id<RCTComponent> paperView = [childComponentView getPaperViewFromChildComponentView];
402
+ if (paperView){
403
+ [_view removeReactSubview:paperView];
404
+ }
405
+ else if ([childComponentView isKindOfClass:[RNMapsMarkerView class]]){
406
+ RNMapsMarkerView* fabricMarker = (RNMapsMarkerView *) childComponentView;
407
+ [_view removeReactSubview:[fabricMarker marker]];
408
+ } else {
409
+ [_view removeReactSubview:childComponentView];
410
+ }
411
+ }
412
+
413
+ MKMapType mapRNTypeToMKMapType(RNMapsMapViewMapType rnMapType) {
414
+ switch (rnMapType) {
415
+ case RNMapsMapViewMapType::Standard: return MKMapTypeStandard;
416
+ case RNMapsMapViewMapType::Satellite: return MKMapTypeSatellite;
417
+ case RNMapsMapViewMapType::Hybrid: return MKMapTypeHybrid;
418
+ case RNMapsMapViewMapType::MutedStandard: return MKMapTypeMutedStandard;
419
+ case RNMapsMapViewMapType::SatelliteFlyover: return MKMapTypeSatelliteFlyover;
420
+ case RNMapsMapViewMapType::HybridFlyover: return MKMapTypeHybridFlyover;
421
+ default: return MKMapTypeStandard; // Default case
422
+ }
423
+ }
424
+
425
+
426
+ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
427
+ {
428
+ [self prepareMapView];
429
+ const auto &oldViewProps = *std::static_pointer_cast<RNMapsMapViewProps const>(_props);
430
+ const auto &newViewProps = *std::static_pointer_cast<RNMapsMapViewProps const>(props);
431
+
432
+ #define REMAP_MAPVIEW_PROP(name) \
433
+ if (oldViewProps.name != newViewProps.name) { \
434
+ _view.name = newViewProps.name; \
435
+ }
436
+
437
+ #define REMAP_MAPVIEW_STRING_PROP(name) \
438
+ if (oldViewProps.name != newViewProps.name) { \
439
+ _view.name = RCTNSStringFromString(newViewProps.name); \
440
+ }
441
+
442
+ #define REMAP_MAPVIEW_COLOR_PROP(name) \
443
+ if (oldViewProps.name != newViewProps.name) { \
444
+ _view.name = RCTUIColorFromSharedColor(newViewProps.name); \
445
+ }
446
+
447
+ #define REMAP_MAPVIEW_POINT_PROP(name) \
448
+ if (newViewProps.name.x != oldViewProps.name.x || \
449
+ newViewProps.name.y != oldViewProps.name.y) { \
450
+ _view.name = CGPointMake(newViewProps.name.x, newViewProps.name.y); \
451
+ }
452
+
453
+ #define REMAP_MAPVIEW_REGION_PROP(name) \
454
+ if (!(newViewProps.name.latitude == 0 && \
455
+ newViewProps.name.longitude == 0 && \
456
+ newViewProps.name.latitudeDelta == 0 && \
457
+ newViewProps.name.longitudeDelta == 0)) { \
458
+ if (newViewProps.name.latitude != oldViewProps.name.latitude || \
459
+ newViewProps.name.longitude != oldViewProps.name.longitude || \
460
+ newViewProps.name.latitudeDelta != oldViewProps.name.latitudeDelta ||\
461
+ newViewProps.name.longitudeDelta != oldViewProps.name.longitudeDelta) { \
462
+ MKCoordinateSpan span = MKCoordinateSpanMake(newViewProps.name.latitudeDelta, \
463
+ newViewProps.name.longitudeDelta); \
464
+ MKCoordinateRegion region = MKCoordinateRegionMake(CLLocationCoordinate2DMake( \
465
+ newViewProps.name.latitude, \
466
+ newViewProps.name.longitude), span); \
467
+ _view.name = region; \
468
+ } \
469
+ }
470
+
471
+
472
+ #define REMAP_MAPVIEW_CAMERA_PROP(name) \
473
+ if (newViewProps.name.center.latitude != oldViewProps.name.center.latitude || \
474
+ newViewProps.name.center.longitude != oldViewProps.name.center.longitude || \
475
+ newViewProps.name.heading != oldViewProps.name.heading || \
476
+ newViewProps.name.pitch != oldViewProps.name.pitch) { \
477
+ CLLocationCoordinate2D center = CLLocationCoordinate2DMake( \
478
+ newViewProps.name.center.latitude, \
479
+ newViewProps.name.center.longitude); \
480
+ MKMapCamera* camera = [[MKMapCamera alloc] init]; \
481
+ camera.centerCoordinate = center; \
482
+ camera.heading = newViewProps.name.heading; \
483
+ camera.pitch = newViewProps.name.pitch; \
484
+ camera.centerCoordinateDistance = newViewProps.name.altitude; \
485
+ _view.name = camera; \
486
+ }
487
+
488
+ #define REMAP_MAPVIEW_EDGEINSETS_PROP(name) \
489
+ if (newViewProps.name.top != oldViewProps.name.top || \
490
+ newViewProps.name.right != oldViewProps.name.right || \
491
+ newViewProps.name.bottom != oldViewProps.name.bottom || \
492
+ newViewProps.name.left != oldViewProps.name.left) { \
493
+ _view.name = UIEdgeInsetsMake(newViewProps.name.top, \
494
+ newViewProps.name.left, \
495
+ newViewProps.name.bottom, \
496
+ newViewProps.name.right); \
497
+ }
498
+
499
+ #define REMAP_MAPVIEW_MAPTYPE(rnMapType) MKMapType##rnMapType
500
+
501
+
502
+ REMAP_MAPVIEW_PROP(cacheEnabled)
503
+
504
+ REMAP_MAPVIEW_PROP(followsUserLocation)
505
+ REMAP_MAPVIEW_PROP(loadingEnabled)
506
+
507
+ REMAP_MAPVIEW_PROP(scrollEnabled)
508
+ REMAP_MAPVIEW_PROP(handlePanDrag)
509
+
510
+ REMAP_MAPVIEW_PROP(maxDelta)
511
+ REMAP_MAPVIEW_PROP(maxZoom)
512
+ REMAP_MAPVIEW_PROP(minDelta)
513
+ REMAP_MAPVIEW_PROP(minZoom)
514
+
515
+ REMAP_MAPVIEW_PROP(showsCompass)
516
+ REMAP_MAPVIEW_PROP(showsScale)
517
+ REMAP_MAPVIEW_PROP(showsUserLocation)
518
+ REMAP_MAPVIEW_PROP(userLocationCalloutEnabled)
519
+ REMAP_MAPVIEW_PROP(zoomEnabled)
520
+
521
+
522
+ REMAP_MAPVIEW_POINT_PROP(compassOffset)
523
+
524
+ if (![_view ignoreRegionChanges]){
525
+ _view.ignoreRegionChanges = YES;
526
+ REMAP_MAPVIEW_REGION_PROP(initialRegion)
527
+ REMAP_MAPVIEW_REGION_PROP(region)
528
+ _view.ignoreRegionChanges = NO;
529
+ }
530
+
531
+ REMAP_MAPVIEW_CAMERA_PROP(initialCamera)
532
+ REMAP_MAPVIEW_CAMERA_PROP(camera)
533
+
534
+ REMAP_MAPVIEW_EDGEINSETS_PROP(legalLabelInsets)
535
+ REMAP_MAPVIEW_EDGEINSETS_PROP(mapPadding)
536
+
537
+ REMAP_MAPVIEW_COLOR_PROP(loadingIndicatorColor)
538
+ REMAP_MAPVIEW_COLOR_PROP(loadingIndicatorColor)
539
+ REMAP_MAPVIEW_COLOR_PROP(tintColor)
540
+
541
+ REMAP_MAPVIEW_STRING_PROP(userLocationAnnotationTitle)
542
+
543
+ if (oldViewProps.mapType != newViewProps.mapType){
544
+ _view.mapType = mapRNTypeToMKMapType(newViewProps.mapType);
545
+ }
546
+ if (oldViewProps.userInterfaceStyle != newViewProps.userInterfaceStyle){
547
+ switch (newViewProps.userInterfaceStyle) {
548
+ case RNMapsMapViewUserInterfaceStyle::Light:
549
+ _view.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
550
+ break;
551
+ case RNMapsMapViewUserInterfaceStyle::Dark:
552
+ _view.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
553
+ break;
554
+ case RNMapsMapViewUserInterfaceStyle::System:
555
+ _view.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
556
+ break;
557
+ }
558
+ }
559
+
560
+ if (oldViewProps.cameraZoomRange.minCenterCoordinateDistance != newViewProps.cameraZoomRange.minCenterCoordinateDistance ||
561
+ oldViewProps.cameraZoomRange.maxCenterCoordinateDistance != newViewProps.cameraZoomRange.maxCenterCoordinateDistance ||
562
+ oldViewProps.cameraZoomRange.animated != newViewProps.cameraZoomRange.animated) {
563
+
564
+ MKMapCameraZoomRange* zoomRange = [[MKMapCameraZoomRange alloc] initWithMinCenterCoordinateDistance:newViewProps.cameraZoomRange.minCenterCoordinateDistance maxCenterCoordinateDistance:newViewProps.cameraZoomRange.maxCenterCoordinateDistance];
565
+ [_view setCameraZoomRange:zoomRange animated:newViewProps.cameraZoomRange.animated];
566
+ }
567
+
568
+
569
+ [super updateProps:props oldProps:oldProps];
570
+ }
571
+
572
+ @end
573
+
574
+ Class<RCTComponentViewProtocol> RNMapsMapViewCls(void)
575
+ {
576
+ return RNMapsMapView.class;
577
+ }
@@ -0,0 +1,42 @@
1
+ //
2
+ // RNMapsMarkerManager.m
3
+ // AirMaps
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+
9
+ #import <React/RCTLog.h>
10
+ #import <React/RCTUIManager.h>
11
+ #import <React/RCTViewManager.h>
12
+
13
+ @interface RNMapsMapViewManager : RCTViewManager
14
+ @end
15
+
16
+ @implementation RNMapsMapViewManager
17
+
18
+ RCT_EXPORT_MODULE(RNMapsMapViewManager)
19
+
20
+ RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
21
+ RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
22
+ RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
23
+ RCT_EXPORT_VIEW_PROPERTY(onCalloutPress, RCTDirectEventBlock)
24
+ RCT_EXPORT_VIEW_PROPERTY(onDoublePress, RCTDirectEventBlock)
25
+
26
+ RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
27
+
28
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
29
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
30
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
31
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDragStart, RCTDirectEventBlock)
32
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDrag, RCTDirectEventBlock)
33
+ RCT_EXPORT_VIEW_PROPERTY(onMarkerDragEnd, RCTDirectEventBlock)
34
+
35
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeStart, RCTDirectEventBlock)
36
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
37
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
38
+ RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
39
+
40
+
41
+
42
+ @end
@@ -0,0 +1,24 @@
1
+ //
2
+ // RNMapsMarker.h
3
+ // AirMaps
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+ #ifdef RCT_NEW_ARCH_ENABLED
9
+
10
+ #import <React/RCTViewComponentView.h>
11
+ #import <UIKit/UIKit.h>
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+
15
+ typedef void (^LoadCompletionHandler)(UIView *view);
16
+
17
+ @class AIRMapMarker;
18
+ @interface RNMapsMarkerView : RCTViewComponentView
19
+ - (AIRMapMarker*) marker;
20
+ @end
21
+
22
+ NS_ASSUME_NONNULL_END
23
+
24
+ #endif