react-native-maps 1.21.0-alpha.14 → 1.21.0-alpha.140

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 (256) hide show
  1. package/android/build.gradle +73 -53
  2. package/android/gradlew +1 -2
  3. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  9. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  29. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  30. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  31. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  32. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +624 -0
  33. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  34. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  35. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  36. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  37. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  38. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  39. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +55 -3
  67. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  68. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  69. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  70. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  71. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  72. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  73. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  74. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  75. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  76. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  77. package/android/src/main/java/com/rnmaps/maps/MapUrlTile.java +18 -18
  78. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +10 -14
  79. package/android/src/main/java/com/rnmaps/maps/MapView.java +1649 -1336
  80. package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +3 -3
  81. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +10 -10
  82. package/android/src/main/jni/CMakeLists.txt +36 -0
  83. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  84. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  85. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  86. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  87. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  88. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  89. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  90. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1263 -0
  91. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  92. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  93. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  94. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  95. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  96. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  97. package/ios/AirGoogleMaps/AIRGoogleMap.h +10 -11
  98. package/ios/AirGoogleMaps/AIRGoogleMap.m +104 -71
  99. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  100. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +1 -0
  101. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +254 -250
  102. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +6 -3
  103. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  104. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +3 -0
  105. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  106. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  107. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  108. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  109. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  110. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +1 -1
  111. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +123 -43
  112. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  113. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  114. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  115. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  116. package/ios/AirMaps/AIRMap.h +8 -9
  117. package/ios/AirMaps/AIRMap.m +222 -239
  118. package/ios/AirMaps/AIRMapManager.m +10 -7
  119. package/ios/AirMaps/AIRMapMarker.h +1 -0
  120. package/ios/AirMaps/AIRMapMarker.m +142 -67
  121. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  122. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  123. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  124. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  125. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  126. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  127. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  128. package/ios/AirMaps/RNMapsDefines.h +1 -0
  129. package/ios/AirMaps/RNMapsMapView.h +1 -1
  130. package/ios/AirMaps/RNMapsMapView.mm +119 -95
  131. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  132. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  133. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  134. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  135. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  136. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  137. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  138. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  139. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  140. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  141. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  142. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +2 -2
  143. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  144. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  145. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  146. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  147. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  148. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  149. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  150. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  151. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  152. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  153. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  154. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  155. package/ios/generated/RNMapsSpecs/States.h +113 -0
  156. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  157. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  158. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  159. package/package.json +26 -19
  160. package/react-native-google-maps.podspec +26 -0
  161. package/react-native-maps-generated.podspec +31 -0
  162. package/react-native-maps.podspec +55 -15
  163. package/react-native.config.js +16 -0
  164. package/src/AnimatedRegion.ts +169 -0
  165. package/src/Geojson.tsx +541 -0
  166. package/src/MapCallout.tsx +77 -0
  167. package/src/MapCalloutSubview.tsx +64 -0
  168. package/src/MapCircle.tsx +162 -0
  169. package/src/MapHeatmap.tsx +125 -0
  170. package/src/MapLocalTile.tsx +60 -0
  171. package/src/MapMarker.tsx +531 -0
  172. package/src/MapMarkerNativeComponent.ts +51 -0
  173. package/src/MapOverlay.tsx +156 -0
  174. package/src/MapPolygon.tsx +188 -0
  175. package/src/MapPolygon.types.ts +25 -0
  176. package/src/MapPolyline.tsx +215 -0
  177. package/src/MapUrlTile.tsx +169 -0
  178. package/src/MapView.tsx +1230 -0
  179. package/src/MapView.types.ts +212 -0
  180. package/src/MapView.web.ts +2 -0
  181. package/src/MapViewNativeComponent.ts +86 -0
  182. package/src/MapWMSTile.tsx +148 -0
  183. package/src/ProviderConstants.ts +2 -0
  184. package/src/createFabricMap.tsx +253 -0
  185. package/src/decorateMapComponent.ts +227 -0
  186. package/src/fixImageProp.ts +17 -0
  187. package/src/index.ts +52 -0
  188. package/src/sharedTypes.ts +101 -0
  189. package/src/specs/NativeAirMapsModule.ts +36 -0
  190. package/src/specs/NativeComponentCallout.ts +63 -0
  191. package/src/specs/NativeComponentCircle.ts +93 -0
  192. package/src/specs/NativeComponentGoogleMapView.ts +922 -0
  193. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  194. package/src/specs/NativeComponentMapView.ts +1100 -0
  195. package/src/specs/NativeComponentMarker.ts +326 -0
  196. package/src/specs/NativeComponentOverlay.ts +89 -0
  197. package/src/specs/NativeComponentPolyline.ts +124 -0
  198. package/src/specs/NativeComponentUrlTile.ts +128 -0
  199. package/src/specs/NativeComponentWMSTile.ts +107 -0
  200. package/lib/AnimatedRegion.d.ts +0 -19
  201. package/lib/AnimatedRegion.js +0 -134
  202. package/lib/Geojson.d.ts +0 -204
  203. package/lib/Geojson.js +0 -166
  204. package/lib/MapCallout.d.ts +0 -40
  205. package/lib/MapCallout.js +0 -51
  206. package/lib/MapCalloutSubview.d.ts +0 -34
  207. package/lib/MapCalloutSubview.js +0 -48
  208. package/lib/MapCircle.d.ts +0 -117
  209. package/lib/MapCircle.js +0 -53
  210. package/lib/MapHeatmap.d.ts +0 -78
  211. package/lib/MapHeatmap.js +0 -59
  212. package/lib/MapLocalTile.d.ts +0 -35
  213. package/lib/MapLocalTile.js +0 -44
  214. package/lib/MapMarker.d.ts +0 -309
  215. package/lib/MapMarker.js +0 -116
  216. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  217. package/lib/MapMarkerNativeComponent.js +0 -17
  218. package/lib/MapOverlay.d.ts +0 -87
  219. package/lib/MapOverlay.js +0 -63
  220. package/lib/MapPolygon.d.ts +0 -140
  221. package/lib/MapPolygon.js +0 -53
  222. package/lib/MapPolygon.types.d.ts +0 -18
  223. package/lib/MapPolygon.types.js +0 -2
  224. package/lib/MapPolyline.d.ts +0 -156
  225. package/lib/MapPolyline.js +0 -53
  226. package/lib/MapUrlTile.d.ts +0 -134
  227. package/lib/MapUrlTile.js +0 -44
  228. package/lib/MapView.d.ts +0 -715
  229. package/lib/MapView.js +0 -447
  230. package/lib/MapView.types.d.ts +0 -161
  231. package/lib/MapView.types.js +0 -2
  232. package/lib/MapView.web.d.ts +0 -1
  233. package/lib/MapView.web.js +0 -9
  234. package/lib/MapViewNativeComponent.d.ts +0 -18
  235. package/lib/MapViewNativeComponent.js +0 -19
  236. package/lib/MapWMSTile.d.ts +0 -116
  237. package/lib/MapWMSTile.js +0 -44
  238. package/lib/ProviderConstants.d.ts +0 -2
  239. package/lib/ProviderConstants.js +0 -5
  240. package/lib/createFabricMap.d.ts +0 -23
  241. package/lib/createFabricMap.js +0 -175
  242. package/lib/decorateMapComponent.d.ts +0 -36
  243. package/lib/decorateMapComponent.js +0 -80
  244. package/lib/index.d.ts +0 -38
  245. package/lib/index.js +0 -81
  246. package/lib/sharedTypes.d.ts +0 -81
  247. package/lib/sharedTypes.js +0 -2
  248. package/lib/sharedTypesInternal.js +0 -2
  249. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  250. package/lib/specs/NativeAirMapsModule.js +0 -4
  251. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  252. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  253. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  254. package/lib/specs/NativeComponentMapView.js +0 -21
  255. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  256. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -0,0 +1,217 @@
1
+ //
2
+ // RNMapsGoogleMapView.mm
3
+ //
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+ #ifdef HAVE_GOOGLE_MAPS
9
+
10
+ #import "RNMapsGooglePolygonView.h"
11
+ #import "AIRGMSPolygon.h"
12
+ #import "AIRGoogleMap.h"
13
+ #import <react-native-maps-generated/RNMapsSpecs.h>
14
+ #import <react-native-maps-generated/ComponentDescriptors.h>
15
+ #import <react-native-maps-generated/EventEmitters.h>
16
+ #import <react-native-maps-generated/Props.h>
17
+ #import <react-native-maps-generated/RCTComponentViewHelpers.h>
18
+
19
+ #import "RCTFabricComponentsPlugins.h"
20
+ #import <React/RCTConversions.h>
21
+ #import "RCTConvert+GMSMapViewType.h"
22
+ #import "RCTConvert+AirMap.h"
23
+ #import "UIView+AirMap.h"
24
+
25
+ using namespace facebook::react;
26
+
27
+ bool areHolesEqual(const std::vector<std::vector<RNMapsGooglePolygonHolesStruct>>& newHoles, const std::vector<std::vector<RNMapsGooglePolygonHolesStruct>>& oldHoles) {
28
+ // First-level check: compare the sizes of the top-level vectors
29
+ if (newHoles.size() != oldHoles.size()) {
30
+ return false;
31
+ }
32
+
33
+ // Second-level check: compare the contents of each child vector
34
+ for (size_t i = 0; i < newHoles.size(); ++i) {
35
+ const auto& newHole = newHoles.at(i);
36
+ const auto& oldHole = oldHoles.at(i);
37
+
38
+ // Compare sizes of the child vectors
39
+ if (newHole.size() != oldHole.size()) {
40
+ return false;
41
+ }
42
+
43
+ }
44
+
45
+ return true;
46
+ }
47
+
48
+ @interface RNMapsGooglePolygonView () <RCTRNMapsGooglePolygonViewProtocol>
49
+ @end
50
+
51
+ @implementation RNMapsGooglePolygonView {
52
+ AIRGMSPolygon *_view;
53
+ }
54
+
55
+
56
+ - (AIRGMSPolygon*) polygon {
57
+ return _view;
58
+ }
59
+
60
+ + (ComponentDescriptorProvider)componentDescriptorProvider
61
+ {
62
+ return concreteComponentDescriptorProvider<RNMapsGooglePolygonComponentDescriptor>();
63
+ }
64
+
65
+ - (void) didInsertInMap:(AIRGoogleMap*) map
66
+ {
67
+ _view.map = map;
68
+ }
69
+
70
+ -(void) didRemoveFromMap
71
+ {
72
+ _view.map = nil;
73
+ _view = nil;
74
+ }
75
+
76
+ - (void) prepareContentView {
77
+
78
+ _view = [AIRGMSPolygon new];
79
+ _view.onPress = [self](NSDictionary* dictionary) {
80
+ if (_eventEmitter) {
81
+ // Extract values from the NSDictionary
82
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
83
+ NSDictionary* positionDict = dictionary[@"position"];
84
+
85
+ // Populate the OnMapPressCoordinate struct
86
+ facebook::react::RNMapsGooglePolygonEventEmitter::OnPressCoordinate coordinate = {
87
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
88
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
89
+ };
90
+
91
+ // Populate the OnMapPressPosition struct
92
+ facebook::react::RNMapsGooglePolygonEventEmitter::OnPressPosition position = {
93
+ .x = [positionDict[@"x"] doubleValue],
94
+ .y = [positionDict[@"y"] doubleValue],
95
+ };
96
+
97
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGooglePolygonEventEmitter const>(_eventEmitter);
98
+ facebook::react::RNMapsGooglePolygonEventEmitter::OnPress data = {
99
+ .action = std::string([@"press" UTF8String]),
100
+ .position = position,
101
+ .coordinate = coordinate
102
+ };
103
+ mapViewEventEmitter->onPress(data);
104
+ }
105
+ };
106
+
107
+ }
108
+
109
+ - (instancetype)initWithFrame:(CGRect)frame
110
+ {
111
+ if (self = [super initWithFrame:frame]) {
112
+ static const auto defaultProps = std::make_shared<const RNMapsGooglePolygonProps>();
113
+ _props = defaultProps;
114
+ [self prepareContentView];
115
+
116
+ }
117
+
118
+ return self;
119
+ }
120
+
121
+
122
+
123
+ - (void) prepareForRecycle
124
+ {
125
+ [super prepareForRecycle];
126
+ static const auto defaultProps = std::make_shared<const RNMapsGooglePolygonProps>();
127
+ _props = defaultProps;
128
+ _view = nil;
129
+ }
130
+
131
+
132
+ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
133
+ {
134
+ const auto &oldViewProps = *std::static_pointer_cast<RNMapsGooglePolygonProps const>(_props);
135
+ const auto &newViewProps = *std::static_pointer_cast<RNMapsGooglePolygonProps const>(props);
136
+
137
+
138
+ if (!_view){
139
+ [self prepareContentView];
140
+ }
141
+
142
+ #define REMAP_MAPVIEW_PROP(name) \
143
+ if (oldViewProps.name != newViewProps.name) { \
144
+ _view.name = newViewProps.name; \
145
+ }
146
+
147
+ #define REMAP_MAPVIEW_STRING_PROP(name) \
148
+ if (oldViewProps.name != newViewProps.name) { \
149
+ _view.name = RCTNSStringFromString(newViewProps.name); \
150
+ }
151
+
152
+ #define REMAP_MAPVIEW_POINT_PROP(name) \
153
+ if (newViewProps.name.x != oldViewProps.name.x || \
154
+ newViewProps.name.y != oldViewProps.name.y) { \
155
+ _view.name = CGPointMake(newViewProps.name.x, newViewProps.name.y); \
156
+ }
157
+
158
+
159
+ if(newViewProps.zIndex.has_value()){
160
+ _view.zIndex = newViewProps.zIndex.value();
161
+ }
162
+ if (newViewProps.coordinates.size() != oldViewProps.coordinates.size()){
163
+ GMSMutablePath *path = [GMSMutablePath path];
164
+ for(int i = 0; i < newViewProps.coordinates.size(); i++)
165
+ {
166
+ CLLocationCoordinate2D coordinates = CLLocationCoordinate2DMake(
167
+ newViewProps.coordinates.at(i).latitude,newViewProps.coordinates.at(i).longitude);
168
+ [path addCoordinate:coordinates];
169
+ }
170
+ _view.path = path;
171
+ }
172
+
173
+ if (!areHolesEqual(newViewProps.holes, oldViewProps.holes)){
174
+ NSMutableArray<GMSMutablePath *> *interiorPolygons = [NSMutableArray array];
175
+ for(int h = 0; h < newViewProps.holes.size(); h++)
176
+ {
177
+ GMSMutablePath *path = [GMSMutablePath path];
178
+ for(int i = 0; i < newViewProps.holes[h].size(); i++)
179
+ {
180
+ CLLocationCoordinate2D coordinates = CLLocationCoordinate2DMake(
181
+ newViewProps.holes.at(h).at(i).latitude,
182
+ newViewProps.holes.at(h).at(i).longitude);
183
+ [path addCoordinate:coordinates];
184
+ }
185
+ [interiorPolygons addObject:path];
186
+ }
187
+ _view.holes = interiorPolygons;
188
+ }
189
+
190
+
191
+ REMAP_MAPVIEW_PROP(tappable)
192
+
193
+ if (newViewProps.fillColor){
194
+ _view.fillColor = RCTUIColorFromSharedColor(newViewProps.fillColor);
195
+ }
196
+
197
+ if (newViewProps.strokeColor){
198
+ _view.strokeColor = RCTUIColorFromSharedColor(newViewProps.strokeColor);
199
+ }
200
+
201
+
202
+
203
+
204
+ [super updateProps:props oldProps:oldProps];
205
+ }
206
+ - (void) didMoveToSuperview {
207
+ [super didMoveToSuperview];
208
+ NSLog(@"SuperView ? %@", self.superview);
209
+ }
210
+ @end
211
+
212
+ Class<RCTComponentViewProtocol> RNMapsGooglePolygonCls(void)
213
+ {
214
+ return RNMapsGooglePolygonView.class;
215
+ }
216
+
217
+ #endif
@@ -0,0 +1,26 @@
1
+ //
2
+ // RNMapsMapViewManager.mm
3
+ // AirMaps
4
+ //
5
+ // Created by Salah Ghanim on 23.11.24.
6
+ // Copyright © 2024 react-native-maps. All rights reserved.
7
+ //
8
+ #ifdef HAVE_GOOGLE_MAPS
9
+
10
+ #import <React/RCTLog.h>
11
+ #import <React/RCTUIManager.h>
12
+ #import <React/RCTViewManager.h>
13
+
14
+ @interface RNMapsGooglePolygonViewManager : RCTViewManager
15
+ @end
16
+
17
+ @implementation RNMapsGooglePolygonViewManager
18
+
19
+ RCT_EXPORT_MODULE(RNMapsGooglePolygonViewManager)
20
+
21
+ RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
22
+
23
+
24
+ @end
25
+
26
+ #endif
@@ -14,7 +14,7 @@
14
14
  #import "SMCalloutView.h"
15
15
  #import "RCTConvert+AirMap.h"
16
16
  #import "AIRMapCalloutSubview.h"
17
- #import "RNMapsAirModuleDelegate.h"
17
+ #import <react-native-maps-generated/RNMapsAirModuleDelegate.h>
18
18
 
19
19
  @class AIRMapCoordinate;
20
20
  @class AIRMapMarker;
@@ -35,6 +35,7 @@ extern const NSInteger AIRMapMaxZoomLevel;
35
35
  @property (nonatomic, assign) BOOL hasStartedRendering;
36
36
  @property (nonatomic, assign) BOOL cacheEnabled;
37
37
  @property (nonatomic, assign) BOOL loadingEnabled;
38
+ @property (nonatomic, assign) BOOL handlePanDrag;
38
39
  @property (nonatomic, assign) BOOL legacyZoomConstraintsEnabled;
39
40
  @property (nonatomic, strong) UIColor *loadingBackgroundColor;
40
41
  @property (nonatomic, strong) UIColor *loadingIndicatorColor;
@@ -43,7 +44,7 @@ extern const NSInteger AIRMapMaxZoomLevel;
43
44
  @property (nonatomic, assign) CGFloat maxDelta;
44
45
  @property (nonatomic, assign) UIEdgeInsets legalLabelInsets;
45
46
  @property (nonatomic, assign) MKCoordinateRegion initialRegion;
46
- @property (nonatomic, assign) MKMapCamera *initialCamera;
47
+ @property (nonatomic, retain) MKMapCamera *initialCamera;
47
48
  @property (nonatomic, assign) CGFloat minZoom;
48
49
  @property (nonatomic, assign) CGFloat maxZoom;
49
50
  @property (nonatomic, assign) CGPoint compassOffset;
@@ -55,12 +56,12 @@ extern const NSInteger AIRMapMaxZoomLevel;
55
56
 
56
57
  @property (nonatomic, assign) BOOL ignoreRegionChanges;
57
58
 
58
- @property (nonatomic, copy) RCTBubblingEventBlock onMapReady;
59
- @property (nonatomic, copy) RCTBubblingEventBlock onChange;
59
+ @property (nonatomic, copy) RCTDirectEventBlock onMapReady;
60
+ @property (nonatomic, copy) RCTDirectEventBlock onRegionChange;
60
61
  @property (nonatomic, copy) RCTBubblingEventBlock onPress;
61
- @property (nonatomic, copy) RCTBubblingEventBlock onPanDrag;
62
- @property (nonatomic, copy) RCTBubblingEventBlock onDoublePress;
63
62
  @property (nonatomic, copy) RCTBubblingEventBlock onLongPress;
63
+ @property (nonatomic, copy) RCTDirectEventBlock onPanDrag;
64
+ @property (nonatomic, copy) RCTDirectEventBlock onDoublePress;
64
65
  @property (nonatomic, copy) RCTDirectEventBlock onMarkerPress;
65
66
  @property (nonatomic, copy) RCTDirectEventBlock onMarkerSelect;
66
67
  @property (nonatomic, copy) RCTDirectEventBlock onMarkerDeselect;
@@ -70,12 +71,10 @@ extern const NSInteger AIRMapMaxZoomLevel;
70
71
 
71
72
  @property (nonatomic, copy) RCTDirectEventBlock onCalloutPress;
72
73
  @property (nonatomic, copy) RCTDirectEventBlock onRegionChangeStart;
73
- @property (nonatomic, copy) RCTDirectEventBlock onRegionChange;
74
- @property (nonatomic, copy) RCTBubblingEventBlock onUserLocationChange;
74
+ @property (nonatomic, copy) RCTDirectEventBlock onUserLocationChange;
75
75
 
76
76
  - (void)cacheViewIfNeeded;
77
77
  - (void)beginLoading;
78
- - (void)didSetRegion;
79
78
  - (void)finishLoading;
80
79
  - (double)getZoomLevel;
81
80
  - (NSArray *)getMapBoundaries;