react-native-maps 1.21.0-alpha.13 → 1.21.0-alpha.131

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 (243) 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 +206 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -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/rnmaps/fabric/CalloutManager.java +77 -0
  26. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  27. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  28. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  29. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  30. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  31. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  32. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  33. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  34. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  35. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  36. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  37. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  38. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  39. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +40 -4
  61. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  62. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  63. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  64. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  65. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  66. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  67. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  68. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  69. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  70. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  71. package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
  72. package/android/src/main/jni/CMakeLists.txt +36 -0
  73. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  74. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  75. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  76. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  77. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
  78. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
  79. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  80. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  81. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  82. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  83. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  84. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  85. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  86. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +10 -11
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +103 -69
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +6 -3
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  93. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +3 -0
  94. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  95. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  96. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  97. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  99. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +1 -1
  100. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +112 -43
  101. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  102. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  104. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  105. package/ios/AirMaps/AIRMap.h +8 -9
  106. package/ios/AirMaps/AIRMap.m +222 -239
  107. package/ios/AirMaps/AIRMapManager.m +10 -7
  108. package/ios/AirMaps/AIRMapMarker.h +1 -0
  109. package/ios/AirMaps/AIRMapMarker.m +165 -103
  110. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  111. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  112. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  113. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  114. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  115. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  116. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  117. package/ios/AirMaps/RNMapsDefines.h +0 -0
  118. package/ios/AirMaps/RNMapsMapView.h +1 -1
  119. package/ios/AirMaps/RNMapsMapView.mm +119 -95
  120. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  121. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  122. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  123. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  124. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  125. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  126. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  127. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  129. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  131. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +2 -2
  132. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  133. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  134. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  135. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  136. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  137. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  138. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  139. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  140. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  141. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  142. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  143. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  144. package/ios/generated/RNMapsSpecs/States.h +113 -0
  145. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  146. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  147. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  148. package/package.json +25 -18
  149. package/react-native-google-maps.podspec +26 -0
  150. package/react-native-maps-generated.podspec +31 -0
  151. package/react-native-maps.podspec +55 -15
  152. package/react-native.config.js +16 -0
  153. package/src/AnimatedRegion.ts +169 -0
  154. package/src/Geojson.tsx +541 -0
  155. package/src/MapCallout.tsx +77 -0
  156. package/src/MapCalloutSubview.tsx +64 -0
  157. package/src/MapCircle.tsx +162 -0
  158. package/src/MapHeatmap.tsx +125 -0
  159. package/src/MapLocalTile.tsx +60 -0
  160. package/src/MapMarker.tsx +531 -0
  161. package/src/MapMarkerNativeComponent.ts +51 -0
  162. package/src/MapOverlay.tsx +156 -0
  163. package/src/MapPolygon.tsx +188 -0
  164. package/src/MapPolygon.types.ts +25 -0
  165. package/src/MapPolyline.tsx +215 -0
  166. package/src/MapUrlTile.tsx +169 -0
  167. package/src/MapView.tsx +1223 -0
  168. package/src/MapView.types.ts +212 -0
  169. package/src/MapView.web.ts +2 -0
  170. package/src/MapViewNativeComponent.ts +86 -0
  171. package/src/MapWMSTile.tsx +148 -0
  172. package/src/ProviderConstants.ts +2 -0
  173. package/src/createFabricMap.tsx +253 -0
  174. package/src/decorateMapComponent.ts +219 -0
  175. package/src/fixImageProp.ts +17 -0
  176. package/src/index.ts +52 -0
  177. package/src/sharedTypes.ts +101 -0
  178. package/src/specs/NativeAirMapsModule.ts +36 -0
  179. package/src/specs/NativeComponentCallout.ts +63 -0
  180. package/src/specs/NativeComponentCircle.ts +93 -0
  181. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  182. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  183. package/src/specs/NativeComponentMapView.ts +1091 -0
  184. package/src/specs/NativeComponentMarker.ts +326 -0
  185. package/src/specs/NativeComponentOverlay.ts +89 -0
  186. package/src/specs/NativeComponentPolyline.ts +124 -0
  187. package/lib/AnimatedRegion.d.ts +0 -19
  188. package/lib/AnimatedRegion.js +0 -134
  189. package/lib/Geojson.d.ts +0 -204
  190. package/lib/Geojson.js +0 -166
  191. package/lib/MapCallout.d.ts +0 -40
  192. package/lib/MapCallout.js +0 -51
  193. package/lib/MapCalloutSubview.d.ts +0 -34
  194. package/lib/MapCalloutSubview.js +0 -48
  195. package/lib/MapCircle.d.ts +0 -117
  196. package/lib/MapCircle.js +0 -53
  197. package/lib/MapHeatmap.d.ts +0 -78
  198. package/lib/MapHeatmap.js +0 -59
  199. package/lib/MapLocalTile.d.ts +0 -35
  200. package/lib/MapLocalTile.js +0 -44
  201. package/lib/MapMarker.d.ts +0 -309
  202. package/lib/MapMarker.js +0 -116
  203. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  204. package/lib/MapMarkerNativeComponent.js +0 -17
  205. package/lib/MapOverlay.d.ts +0 -87
  206. package/lib/MapOverlay.js +0 -63
  207. package/lib/MapPolygon.d.ts +0 -140
  208. package/lib/MapPolygon.js +0 -53
  209. package/lib/MapPolygon.types.d.ts +0 -18
  210. package/lib/MapPolygon.types.js +0 -2
  211. package/lib/MapPolyline.d.ts +0 -156
  212. package/lib/MapPolyline.js +0 -53
  213. package/lib/MapUrlTile.d.ts +0 -134
  214. package/lib/MapUrlTile.js +0 -44
  215. package/lib/MapView.d.ts +0 -715
  216. package/lib/MapView.js +0 -447
  217. package/lib/MapView.types.d.ts +0 -161
  218. package/lib/MapView.types.js +0 -2
  219. package/lib/MapView.web.d.ts +0 -1
  220. package/lib/MapView.web.js +0 -9
  221. package/lib/MapViewNativeComponent.d.ts +0 -18
  222. package/lib/MapViewNativeComponent.js +0 -19
  223. package/lib/MapWMSTile.d.ts +0 -116
  224. package/lib/MapWMSTile.js +0 -44
  225. package/lib/ProviderConstants.d.ts +0 -2
  226. package/lib/ProviderConstants.js +0 -5
  227. package/lib/createFabricMap.d.ts +0 -23
  228. package/lib/createFabricMap.js +0 -175
  229. package/lib/decorateMapComponent.d.ts +0 -36
  230. package/lib/decorateMapComponent.js +0 -80
  231. package/lib/index.d.ts +0 -38
  232. package/lib/index.js +0 -81
  233. package/lib/sharedTypes.d.ts +0 -81
  234. package/lib/sharedTypes.js +0 -2
  235. package/lib/sharedTypesInternal.js +0 -2
  236. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  237. package/lib/specs/NativeAirMapsModule.js +0 -4
  238. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  239. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  240. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  241. package/lib/specs/NativeComponentMapView.js +0 -21
  242. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  243. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  //
2
2
  // RNMapsGoogleMapView.mm
3
- //
3
+ //
4
4
  //
5
5
  // Created by Salah Ghanim on 23.11.24.
6
6
  // Copyright © 2024 react-native-maps. All rights reserved.
@@ -8,17 +8,17 @@
8
8
  #ifdef HAVE_GOOGLE_MAPS
9
9
 
10
10
  #import "RNMapsGoogleMapView.h"
11
- #import "AirGoogleMap.h"
11
+ #import "RNMapsGooglePolygonView.h"
12
+ #import "AIRGoogleMap.h"
12
13
  #import "AIRMapMarker.h"
13
- #import "AirGoogleMapManager.h"
14
-
15
- #import <react/renderer/components/RNMapsSpecs/ComponentDescriptors.h>
16
- #import <react/renderer/components/RNMapsSpecs/EventEmitters.h>
17
- #import <react/renderer/components/RNMapsSpecs/Props.h>
18
- #import <react/renderer/components/RNMapsSpecs/RCTComponentViewHelpers.h>
19
-
14
+ #import "AIRGoogleMapManager.h"
15
+ #import <react-native-maps-generated/ComponentDescriptors.h>
16
+ #import <react-native-maps-generated/EventEmitters.h>
17
+ #import <react-native-maps-generated/Props.h>
18
+ #import <react-native-maps-generated/RCTComponentViewHelpers.h>
20
19
  #import "RCTFabricComponentsPlugins.h"
21
20
  #import <React/RCTConversions.h>
21
+ #import <React/RCTUtils.h>
22
22
  #import "RCTConvert+GMSMapViewType.h"
23
23
  #import "RCTConvert+AirMap.h"
24
24
  #import "UIView+AirMap.h"
@@ -32,6 +32,7 @@ using namespace facebook::react;
32
32
  AIRGoogleMap *_view;
33
33
  AIRGoogleMapManager* _legacyMapManager;
34
34
  NSMutableDictionary<NSNumber*, UIView*>* _pendingInsertsSubviews;
35
+ NSMutableArray *_polygons;
35
36
  }
36
37
 
37
38
 
@@ -44,7 +45,11 @@ using namespace facebook::react;
44
45
  NSDictionary* regionDic = [RCTConvert dictonaryFromString:regionJSON];
45
46
  MKCoordinateRegion region = [RCTConvert MKCoordinateRegion:regionDic];
46
47
  GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:_view andMKCoordinateRegion:region];
47
- [_view animateToCameraPosition:camera];
48
+ if (duration == 0){
49
+ [_view setRegion:region];
50
+ } else {
51
+ [_view animateToCameraPosition:camera];
52
+ }
48
53
  }
49
54
  - (void)setCamera:(NSString *)cameraJSON{
50
55
  NSDictionary* cameraDic = [RCTConvert dictonaryFromString:cameraJSON];
@@ -77,9 +82,19 @@ using namespace facebook::react;
77
82
  }
78
83
 
79
84
  NSDictionary* edgePadding = [RCTConvert dictonaryFromString:edgePaddingJSON];
80
-
85
+
81
86
  [_view fitToCoordinates:coordinatesArray withEdgePadding:edgePadding animated:animated];
82
87
  }
88
+ - (void) setIndoorActiveLevelIndex:(NSInteger)activeLevelIndex
89
+ {
90
+ if (!_view.indoorDisplay) {
91
+ return;
92
+ }
93
+ if ( activeLevelIndex < [_view.indoorDisplay.activeBuilding.levels count]) {
94
+ _view.indoorDisplay.activeLevel = _view.indoorDisplay.activeBuilding.levels[activeLevelIndex];
95
+ }
96
+
97
+ }
83
98
 
84
99
  #pragma mark - Native commands
85
100
 
@@ -108,9 +123,10 @@ using namespace facebook::react;
108
123
  }
109
124
 
110
125
  - (void) prepareContentView {
111
-
126
+
112
127
  _view = (AIRGoogleMap *)[_legacyMapManager view];
113
-
128
+ _polygons = [NSMutableArray new];
129
+
114
130
  self.contentView = _view;
115
131
 
116
132
  _view.onPress = [self](NSDictionary* dictionary) {
@@ -140,7 +156,7 @@ using namespace facebook::react;
140
156
  mapViewEventEmitter->onPress(data);
141
157
  }
142
158
  };
143
-
159
+
144
160
  _view.onLongPress = [self](NSDictionary* dictionary) {
145
161
  if (_eventEmitter) {
146
162
  // Extract values from the NSDictionary
@@ -177,7 +193,37 @@ using namespace facebook::react;
177
193
  mapViewEventEmitter->onMapReady(data);
178
194
  }
179
195
  };
180
-
196
+
197
+ _view.onIndoorLevelActivated = [self](NSDictionary* dictionary) {
198
+ if (_eventEmitter) {
199
+
200
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
201
+
202
+ facebook::react::RNMapsGoogleMapViewEventEmitter::OnIndoorLevelActivated data = {
203
+ .activeLevelIndex= (int) [dictionary[@"activeLevelIndex"] integerValue],
204
+ .name = [dictionary[@"name"] UTF8String],
205
+ .shortName = [dictionary[@"shortName"] UTF8String],
206
+ };
207
+ mapViewEventEmitter->onIndoorLevelActivated(data);
208
+ }
209
+ };
210
+
211
+ _view.onIndoorBuildingFocused = [self](NSDictionary* dictionary) {
212
+ if (_eventEmitter) {
213
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
214
+
215
+ NSError *jsError = nil;
216
+ NSString *levelsStr = RCTJSONStringify(dictionary[@"levels"], &jsError);
217
+
218
+ facebook::react::RNMapsGoogleMapViewEventEmitter::OnIndoorBuildingFocused data = {
219
+ .underground = [dictionary[@"underground"] boolValue],
220
+ .activeLevelIndex = (int) [dictionary[@"activeLevelIndex"] integerValue],
221
+ .levels = [levelsStr UTF8String]
222
+ };
223
+ mapViewEventEmitter->onIndoorBuildingFocused(data);
224
+ }
225
+ };
226
+
181
227
  _view.onMapLoaded = [self](NSDictionary* dictionary) {
182
228
  if (_eventEmitter) {
183
229
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
@@ -185,7 +231,7 @@ using namespace facebook::react;
185
231
  mapViewEventEmitter->onMapLoaded(data);
186
232
  }
187
233
  };
188
-
234
+
189
235
  _view.onKmlReady = [self](NSDictionary* dictionary) {
190
236
  if (_eventEmitter) {
191
237
 
@@ -194,7 +240,7 @@ using namespace facebook::react;
194
240
  mapViewEventEmitter->onKmlReady(data);
195
241
  }
196
242
  };
197
- _view.onChange = [self](NSDictionary* dictionary) {
243
+ _view.onRegionChange = [self](NSDictionary* dictionary) {
198
244
  if (_eventEmitter) {
199
245
 
200
246
  NSDictionary* regionDict = dictionary[@"region"];
@@ -253,7 +299,7 @@ using namespace facebook::react;
253
299
  if (errorDict){
254
300
  str = errorDict[@"message"];
255
301
  }
256
-
302
+
257
303
  facebook::react::RNMapsGoogleMapViewEventEmitter::OnUserLocationChangeError error = {
258
304
  .message = std::string([str UTF8String]),
259
305
  };
@@ -268,6 +314,35 @@ using namespace facebook::react;
268
314
  }
269
315
  };
270
316
 
317
+ _view.onPoiClick = [self](NSDictionary* dictionary) {
318
+ if (_eventEmitter) {
319
+
320
+ NSDictionary* coordinateDict = dictionary[@"coordinate"];
321
+ NSDictionary* positionDict = dictionary[@"position"];
322
+
323
+ // Populate the OnMapPressCoordinate struct
324
+ facebook::react::RNMapsGoogleMapViewEventEmitter::OnPoiClickCoordinate coordinate = {
325
+ .latitude = [coordinateDict[@"latitude"] doubleValue],
326
+ .longitude = [coordinateDict[@"longitude"] doubleValue],
327
+ };
328
+ // Populate the OnMapDouplePressPosition struct
329
+ facebook::react::RNMapsGoogleMapViewEventEmitter::OnPoiClickPosition position = {
330
+ .x = [positionDict[@"x"] doubleValue],
331
+ .y = [positionDict[@"y"] doubleValue],
332
+ };
333
+
334
+
335
+ auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
336
+ facebook::react::RNMapsGoogleMapViewEventEmitter::OnPoiClick data = {
337
+ .coordinate = coordinate,
338
+ .position = position,
339
+ .placeId = [dictionary[@"placeId"] UTF8String],
340
+ .name = [dictionary[@"name"] UTF8String],
341
+ };
342
+ mapViewEventEmitter->onPoiClick(data);
343
+ }
344
+ };
345
+
271
346
 
272
347
 
273
348
  _view.onRegionChangeStart = [self](NSDictionary* dictionary) {
@@ -285,23 +360,7 @@ using namespace facebook::react;
285
360
  mapViewEventEmitter->onRegionChangeStart(data);
286
361
  }
287
362
  };
288
-
289
- _view.onRegionChange = [self](NSDictionary* dictionary) {
290
- if (_eventEmitter) {
291
363
 
292
- NSDictionary* regionDict = dictionary[@"region"];
293
- auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
294
- facebook::react::RNMapsGoogleMapViewEventEmitter::OnRegionChange data = {
295
- .region.latitude = [regionDict[@"latitude"] doubleValue],
296
- .region.longitude = [regionDict[@"longitude"] doubleValue],
297
- .region.latitudeDelta = [regionDict[@"latitudeDelta"] doubleValue],
298
- .region.longitudeDelta = [regionDict[@"longitudeDelta"] doubleValue],
299
- .continuous = [dictionary[@"continuous"] boolValue],
300
- };
301
- mapViewEventEmitter->onRegionChange(data);
302
- }
303
- };
304
-
305
364
  _view.onRegionChangeComplete = [self](NSDictionary* dictionary) {
306
365
  if (_eventEmitter) {
307
366
 
@@ -388,6 +447,11 @@ using namespace facebook::react;
388
447
  }
389
448
  } else {
390
449
  [_view insertReactSubview:childComponentView atIndex:index];
450
+ if ([childComponentView isKindOfClass:[RNMapsGooglePolygonView class]]){
451
+ RNMapsGooglePolygonView* polygon = (RNMapsGooglePolygonView *) childComponentView;
452
+ [_polygons addObject:childComponentView];
453
+ [polygon didInsertInMap:_view];
454
+ }
391
455
  }
392
456
  }
393
457
 
@@ -402,6 +466,11 @@ using namespace facebook::react;
402
466
  }
403
467
  } else {
404
468
  [_view removeReactSubview:childComponentView];
469
+ if ([childComponentView isKindOfClass:[RNMapsGooglePolygonView class]]){
470
+ RNMapsGooglePolygonView* polygon = (RNMapsGooglePolygonView *) childComponentView;
471
+ [_polygons removeObject:childComponentView];
472
+ [polygon didRemoveFromMap];
473
+ }
405
474
  }
406
475
  }
407
476
  - (void) prepareForRecycle
@@ -420,7 +489,7 @@ using namespace facebook::react;
420
489
  {
421
490
  const auto &oldViewProps = *std::static_pointer_cast<RNMapsGoogleMapViewProps const>(_props);
422
491
  const auto &newViewProps = *std::static_pointer_cast<RNMapsGoogleMapViewProps const>(props);
423
-
492
+
424
493
 
425
494
  if (oldViewProps.googleMapId != newViewProps.googleMapId) {
426
495
  NSString* mapID = RCTNSStringFromString(newViewProps.googleMapId);
@@ -452,7 +521,7 @@ using namespace facebook::react;
452
521
  _legacyMapManager.camera = camera;
453
522
  }
454
523
 
455
-
524
+
456
525
 
457
526
  if (!_view){
458
527
  [self prepareContentView];
@@ -500,16 +569,16 @@ using namespace facebook::react;
500
569
 
501
570
 
502
571
  REMAP_MAPVIEW_PROP(pitchEnabled)
503
-
504
572
  REMAP_MAPVIEW_PROP(zoomTapEnabled)
505
-
506
573
  REMAP_MAPVIEW_PROP(scrollEnabled)
507
-
574
+
575
+ REMAP_MAPVIEW_STRING_PROP(kmlSrc)
576
+
508
577
  if (newViewProps.minZoom != oldViewProps.minZoom || newViewProps.maxZoom != oldViewProps.maxZoom){
509
578
  [_view setMinZoom:newViewProps.minZoom maxZoom:newViewProps.maxZoom];
510
579
  }
511
580
 
512
- REMAP_MAPVIEW_PROP(showsCompass)
581
+ [_view setShowsCompass:newViewProps.showsCompass];
513
582
  REMAP_MAPVIEW_PROP(showsTraffic)
514
583
  REMAP_MAPVIEW_PROP(showsUserLocation)
515
584
  REMAP_MAPVIEW_PROP(zoomEnabled)
@@ -530,8 +599,8 @@ using namespace facebook::react;
530
599
  viewingAngle:newViewProps.camera.pitch];
531
600
  _view.cameraProp = camera;
532
601
  }
533
-
534
-
602
+
603
+
535
604
  REMAP_MAPVIEW_EDGEINSETS_PROP(mapPadding)
536
605
 
537
606
 
@@ -554,7 +623,7 @@ using namespace facebook::react;
554
623
  break;
555
624
  }
556
625
  }
557
-
626
+
558
627
  if (oldViewProps.userInterfaceStyle != newViewProps.userInterfaceStyle){
559
628
  switch (newViewProps.userInterfaceStyle) {
560
629
  case RNMapsGoogleMapViewUserInterfaceStyle::Light:
@@ -18,7 +18,22 @@
18
18
 
19
19
  RCT_EXPORT_MODULE(RNMapsGoogleMapViewManager)
20
20
 
21
-
21
+ RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
22
+ RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTDirectEventBlock)
23
+ RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTDirectEventBlock)
24
+ RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
25
+ RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
26
+ RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
27
+ RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
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(onRegionChangeStart, RCTDirectEventBlock)
32
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
33
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
34
+ RCT_EXPORT_VIEW_PROPERTY(onPoiClick, RCTDirectEventBlock)
35
+ RCT_EXPORT_VIEW_PROPERTY(onIndoorLevelActivated, RCTDirectEventBlock)
36
+ RCT_EXPORT_VIEW_PROPERTY(onIndoorBuildingFocused, RCTDirectEventBlock)
22
37
 
23
38
  @end
24
39
 
@@ -0,0 +1,26 @@
1
+ //
2
+ // RNMapsGoogleMapView.h
3
+ //
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
+ #ifdef HAVE_GOOGLE_MAPS
10
+
11
+ #import <React/RCTViewComponentView.h>
12
+ #import <UIKit/UIKit.h>
13
+
14
+ @class AIRGoogleMap;
15
+ @class AIRGMSPolygon;
16
+
17
+ NS_ASSUME_NONNULL_BEGIN
18
+ @interface RNMapsGooglePolygonView : RCTViewComponentView
19
+ - (void) didInsertInMap:(AIRGoogleMap*) map;
20
+ - (void) didRemoveFromMap;
21
+ @end
22
+
23
+ NS_ASSUME_NONNULL_END
24
+
25
+ #endif
26
+ #endif
@@ -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;