react-native-maps 1.21.0-alpha.12 → 1.21.0-alpha.121

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 (241) hide show
  1. package/android/build.gradle +77 -57
  2. package/android/gradlew +1 -2
  3. package/android/src/generated/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/generated/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/generated/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  9. package/android/src/generated/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
  18. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -0
  19. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/generated/jni/CMakeLists.txt +36 -0
  26. package/android/src/generated/jni/RNMapsSpecs-generated.cpp +68 -0
  27. package/android/src/generated/jni/RNMapsSpecs.h +31 -0
  28. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  29. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  30. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
  31. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
  32. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  33. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  34. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  35. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  36. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  37. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  38. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  39. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  40. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  41. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  42. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  43. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  44. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  45. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  46. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  47. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  48. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  70. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  71. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  72. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  73. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  74. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  75. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +39 -3
  76. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  78. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  79. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  80. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  81. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  82. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  83. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  84. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  85. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  86. package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +9 -10
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +109 -71
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +14 -6
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  93. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
  94. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
  95. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  96. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  97. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  99. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  100. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  101. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +126 -61
  102. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  104. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  105. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  106. package/ios/AirMaps/AIRMap.h +7 -7
  107. package/ios/AirMaps/AIRMap.m +227 -236
  108. package/ios/AirMaps/AIRMapManager.m +13 -7
  109. package/ios/AirMaps/AIRMapMarker.h +1 -0
  110. package/ios/AirMaps/AIRMapMarker.m +165 -103
  111. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  112. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  113. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  114. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  115. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  116. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  117. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  118. package/ios/AirMaps/RNMapsAirModuleDelegate.h +2 -2
  119. package/ios/AirMaps/RNMapsDefines.h +0 -0
  120. package/ios/AirMaps/RNMapsMapView.mm +336 -299
  121. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  122. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  123. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  124. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  125. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  126. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  127. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  129. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  131. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  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 +24 -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 +44 -15
  152. package/src/AnimatedRegion.ts +169 -0
  153. package/src/Geojson.tsx +541 -0
  154. package/src/MapCallout.tsx +77 -0
  155. package/src/MapCalloutSubview.tsx +64 -0
  156. package/src/MapCircle.tsx +162 -0
  157. package/src/MapHeatmap.tsx +125 -0
  158. package/src/MapLocalTile.tsx +60 -0
  159. package/src/MapMarker.tsx +531 -0
  160. package/src/MapMarkerNativeComponent.ts +51 -0
  161. package/src/MapOverlay.tsx +156 -0
  162. package/src/MapPolygon.tsx +188 -0
  163. package/src/MapPolygon.types.ts +25 -0
  164. package/src/MapPolyline.tsx +215 -0
  165. package/src/MapUrlTile.tsx +169 -0
  166. package/src/MapView.tsx +1223 -0
  167. package/src/MapView.types.ts +212 -0
  168. package/src/MapView.web.ts +2 -0
  169. package/src/MapViewNativeComponent.ts +86 -0
  170. package/src/MapWMSTile.tsx +148 -0
  171. package/src/ProviderConstants.ts +2 -0
  172. package/src/createFabricMap.tsx +253 -0
  173. package/src/decorateMapComponent.ts +219 -0
  174. package/src/fixImageProp.ts +17 -0
  175. package/src/index.ts +52 -0
  176. package/src/sharedTypes.ts +101 -0
  177. package/src/specs/NativeAirMapsModule.ts +36 -0
  178. package/src/specs/NativeComponentCallout.ts +63 -0
  179. package/src/specs/NativeComponentCircle.ts +93 -0
  180. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  181. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  182. package/src/specs/NativeComponentMapView.ts +1091 -0
  183. package/src/specs/NativeComponentMarker.ts +326 -0
  184. package/src/specs/NativeComponentOverlay.ts +89 -0
  185. package/src/specs/NativeComponentPolyline.ts +124 -0
  186. package/lib/AnimatedRegion.d.ts +0 -19
  187. package/lib/AnimatedRegion.js +0 -134
  188. package/lib/Geojson.d.ts +0 -204
  189. package/lib/Geojson.js +0 -166
  190. package/lib/MapCallout.d.ts +0 -40
  191. package/lib/MapCallout.js +0 -51
  192. package/lib/MapCalloutSubview.d.ts +0 -34
  193. package/lib/MapCalloutSubview.js +0 -48
  194. package/lib/MapCircle.d.ts +0 -117
  195. package/lib/MapCircle.js +0 -53
  196. package/lib/MapHeatmap.d.ts +0 -78
  197. package/lib/MapHeatmap.js +0 -59
  198. package/lib/MapLocalTile.d.ts +0 -35
  199. package/lib/MapLocalTile.js +0 -44
  200. package/lib/MapMarker.d.ts +0 -309
  201. package/lib/MapMarker.js +0 -116
  202. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  203. package/lib/MapMarkerNativeComponent.js +0 -17
  204. package/lib/MapOverlay.d.ts +0 -87
  205. package/lib/MapOverlay.js +0 -63
  206. package/lib/MapPolygon.d.ts +0 -140
  207. package/lib/MapPolygon.js +0 -53
  208. package/lib/MapPolygon.types.d.ts +0 -18
  209. package/lib/MapPolygon.types.js +0 -2
  210. package/lib/MapPolyline.d.ts +0 -156
  211. package/lib/MapPolyline.js +0 -53
  212. package/lib/MapUrlTile.d.ts +0 -134
  213. package/lib/MapUrlTile.js +0 -44
  214. package/lib/MapView.d.ts +0 -715
  215. package/lib/MapView.js +0 -447
  216. package/lib/MapView.types.d.ts +0 -161
  217. package/lib/MapView.types.js +0 -2
  218. package/lib/MapView.web.d.ts +0 -1
  219. package/lib/MapView.web.js +0 -9
  220. package/lib/MapViewNativeComponent.d.ts +0 -18
  221. package/lib/MapViewNativeComponent.js +0 -19
  222. package/lib/MapWMSTile.d.ts +0 -116
  223. package/lib/MapWMSTile.js +0 -44
  224. package/lib/ProviderConstants.d.ts +0 -2
  225. package/lib/ProviderConstants.js +0 -5
  226. package/lib/createFabricMap.d.ts +0 -23
  227. package/lib/createFabricMap.js +0 -175
  228. package/lib/decorateMapComponent.d.ts +0 -36
  229. package/lib/decorateMapComponent.js +0 -80
  230. package/lib/index.d.ts +0 -38
  231. package/lib/index.js +0 -81
  232. package/lib/sharedTypes.d.ts +0 -81
  233. package/lib/sharedTypes.js +0 -2
  234. package/lib/sharedTypesInternal.js +0 -2
  235. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  236. package/lib/specs/NativeAirMapsModule.js +0 -4
  237. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  238. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  239. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  240. package/lib/specs/NativeComponentMapView.js +0 -21
  241. /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
 
@@ -43,11 +44,12 @@ using namespace facebook::react;
43
44
  - (void)animateToRegion:(NSString *)regionJSON duration:(NSInteger)duration{
44
45
  NSDictionary* regionDic = [RCTConvert dictonaryFromString:regionJSON];
45
46
  MKCoordinateRegion region = [RCTConvert MKCoordinateRegion:regionDic];
46
- [CATransaction begin];
47
- [CATransaction setAnimationDuration:duration/1000];
48
47
  GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:_view andMKCoordinateRegion:region];
49
- [self->_view animateToCameraPosition:camera];
50
- [CATransaction commit];
48
+ if (duration == 0){
49
+ [_view setRegion:region];
50
+ } else {
51
+ [_view animateToCameraPosition:camera];
52
+ }
51
53
  }
52
54
  - (void)setCamera:(NSString *)cameraJSON{
53
55
  NSDictionary* cameraDic = [RCTConvert dictonaryFromString:cameraJSON];
@@ -80,9 +82,19 @@ using namespace facebook::react;
80
82
  }
81
83
 
82
84
  NSDictionary* edgePadding = [RCTConvert dictonaryFromString:edgePaddingJSON];
83
-
85
+
84
86
  [_view fitToCoordinates:coordinatesArray withEdgePadding:edgePadding animated:animated];
85
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
+ }
86
98
 
87
99
  #pragma mark - Native commands
88
100
 
@@ -111,9 +123,10 @@ using namespace facebook::react;
111
123
  }
112
124
 
113
125
  - (void) prepareContentView {
114
-
126
+
115
127
  _view = (AIRGoogleMap *)[_legacyMapManager view];
116
-
128
+ _polygons = [NSMutableArray new];
129
+
117
130
  self.contentView = _view;
118
131
 
119
132
  _view.onPress = [self](NSDictionary* dictionary) {
@@ -143,7 +156,7 @@ using namespace facebook::react;
143
156
  mapViewEventEmitter->onPress(data);
144
157
  }
145
158
  };
146
-
159
+
147
160
  _view.onLongPress = [self](NSDictionary* dictionary) {
148
161
  if (_eventEmitter) {
149
162
  // Extract values from the NSDictionary
@@ -180,7 +193,37 @@ using namespace facebook::react;
180
193
  mapViewEventEmitter->onMapReady(data);
181
194
  }
182
195
  };
183
-
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
+
184
227
  _view.onMapLoaded = [self](NSDictionary* dictionary) {
185
228
  if (_eventEmitter) {
186
229
  auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
@@ -188,7 +231,7 @@ using namespace facebook::react;
188
231
  mapViewEventEmitter->onMapLoaded(data);
189
232
  }
190
233
  };
191
-
234
+
192
235
  _view.onKmlReady = [self](NSDictionary* dictionary) {
193
236
  if (_eventEmitter) {
194
237
 
@@ -197,7 +240,7 @@ using namespace facebook::react;
197
240
  mapViewEventEmitter->onKmlReady(data);
198
241
  }
199
242
  };
200
- _view.onChange = [self](NSDictionary* dictionary) {
243
+ _view.onRegionChange = [self](NSDictionary* dictionary) {
201
244
  if (_eventEmitter) {
202
245
 
203
246
  NSDictionary* regionDict = dictionary[@"region"];
@@ -256,7 +299,7 @@ using namespace facebook::react;
256
299
  if (errorDict){
257
300
  str = errorDict[@"message"];
258
301
  }
259
-
302
+
260
303
  facebook::react::RNMapsGoogleMapViewEventEmitter::OnUserLocationChangeError error = {
261
304
  .message = std::string([str UTF8String]),
262
305
  };
@@ -271,6 +314,35 @@ using namespace facebook::react;
271
314
  }
272
315
  };
273
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
+
274
346
 
275
347
 
276
348
  _view.onRegionChangeStart = [self](NSDictionary* dictionary) {
@@ -288,23 +360,7 @@ using namespace facebook::react;
288
360
  mapViewEventEmitter->onRegionChangeStart(data);
289
361
  }
290
362
  };
291
-
292
- _view.onRegionChange = [self](NSDictionary* dictionary) {
293
- if (_eventEmitter) {
294
363
 
295
- NSDictionary* regionDict = dictionary[@"region"];
296
- auto mapViewEventEmitter = std::static_pointer_cast<RNMapsGoogleMapViewEventEmitter const>(_eventEmitter);
297
- facebook::react::RNMapsGoogleMapViewEventEmitter::OnRegionChange data = {
298
- .region.latitude = [regionDict[@"latitude"] doubleValue],
299
- .region.longitude = [regionDict[@"longitude"] doubleValue],
300
- .region.latitudeDelta = [regionDict[@"latitudeDelta"] doubleValue],
301
- .region.longitudeDelta = [regionDict[@"longitudeDelta"] doubleValue],
302
- .continuous = [dictionary[@"continuous"] boolValue],
303
- };
304
- mapViewEventEmitter->onRegionChange(data);
305
- }
306
- };
307
-
308
364
  _view.onRegionChangeComplete = [self](NSDictionary* dictionary) {
309
365
  if (_eventEmitter) {
310
366
 
@@ -391,6 +447,11 @@ using namespace facebook::react;
391
447
  }
392
448
  } else {
393
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
+ }
394
455
  }
395
456
  }
396
457
 
@@ -405,6 +466,11 @@ using namespace facebook::react;
405
466
  }
406
467
  } else {
407
468
  [_view removeReactSubview:childComponentView];
469
+ if ([childComponentView isKindOfClass:[RNMapsGooglePolygonView class]]){
470
+ RNMapsGooglePolygonView* polygon = (RNMapsGooglePolygonView *) childComponentView;
471
+ [_polygons removeObject:childComponentView];
472
+ [polygon didRemoveFromMap];
473
+ }
408
474
  }
409
475
  }
410
476
  - (void) prepareForRecycle
@@ -423,7 +489,7 @@ using namespace facebook::react;
423
489
  {
424
490
  const auto &oldViewProps = *std::static_pointer_cast<RNMapsGoogleMapViewProps const>(_props);
425
491
  const auto &newViewProps = *std::static_pointer_cast<RNMapsGoogleMapViewProps const>(props);
426
-
492
+
427
493
 
428
494
  if (oldViewProps.googleMapId != newViewProps.googleMapId) {
429
495
  NSString* mapID = RCTNSStringFromString(newViewProps.googleMapId);
@@ -455,7 +521,7 @@ using namespace facebook::react;
455
521
  _legacyMapManager.camera = camera;
456
522
  }
457
523
 
458
-
524
+
459
525
 
460
526
  if (!_view){
461
527
  [self prepareContentView];
@@ -489,20 +555,6 @@ using namespace facebook::react;
489
555
  _view.name = region; \
490
556
  }
491
557
 
492
- #define REMAP_GOOGLEMAPVIEW_CAMERA_PROP(name) \
493
- if (newViewProps.name.center.latitude != oldViewProps.name.center.latitude || \
494
- newViewProps.name.center.longitude != oldViewProps.name.center.longitude || \
495
- newViewProps.name.heading != oldViewProps.name.heading || \
496
- newViewProps.name.pitch != oldViewProps.name.pitch || \
497
- newViewProps.name.zoom != oldViewProps.name.zoom) { \
498
- GMSCameraPosition* camera = [GMSCameraPosition cameraWithLatitude:newViewProps.name.center.latitude \
499
- longitude:newViewProps.name.center.longitude \
500
- zoom:newViewProps.name.zoom \
501
- bearing:newViewProps.name.heading \
502
- viewingAngle:newViewProps.name.pitch]; \
503
- _view.name = camera; \
504
- }
505
-
506
558
 
507
559
  #define REMAP_MAPVIEW_EDGEINSETS_PROP(name) \
508
560
  if (newViewProps.name.top != oldViewProps.name.top || \
@@ -517,16 +569,16 @@ using namespace facebook::react;
517
569
 
518
570
 
519
571
  REMAP_MAPVIEW_PROP(pitchEnabled)
520
-
521
572
  REMAP_MAPVIEW_PROP(zoomTapEnabled)
522
-
523
573
  REMAP_MAPVIEW_PROP(scrollEnabled)
524
-
574
+
575
+ REMAP_MAPVIEW_STRING_PROP(kmlSrc)
576
+
525
577
  if (newViewProps.minZoom != oldViewProps.minZoom || newViewProps.maxZoom != oldViewProps.maxZoom){
526
578
  [_view setMinZoom:newViewProps.minZoom maxZoom:newViewProps.maxZoom];
527
579
  }
528
580
 
529
- REMAP_MAPVIEW_PROP(showsCompass)
581
+ [_view setShowsCompass:newViewProps.showsCompass];
530
582
  REMAP_MAPVIEW_PROP(showsTraffic)
531
583
  REMAP_MAPVIEW_PROP(showsUserLocation)
532
584
  REMAP_MAPVIEW_PROP(zoomEnabled)
@@ -535,9 +587,20 @@ using namespace facebook::react;
535
587
  REMAP_MAPVIEW_REGION_PROP(region)
536
588
  REMAP_MAPVIEW_REGION_PROP(initialRegion)
537
589
 
538
- REMAP_GOOGLEMAPVIEW_CAMERA_PROP(camera)
539
-
540
-
590
+ if (newViewProps.camera.center.latitude != oldViewProps.camera.center.latitude ||
591
+ newViewProps.camera.center.longitude != oldViewProps.camera.center.longitude ||
592
+ newViewProps.camera.heading != oldViewProps.camera.heading ||
593
+ newViewProps.camera.pitch != oldViewProps.camera.pitch ||
594
+ newViewProps.camera.zoom != oldViewProps.camera.zoom) {
595
+ GMSCameraPosition* camera = [GMSCameraPosition cameraWithLatitude:newViewProps.camera.center.latitude
596
+ longitude:newViewProps.camera.center.longitude
597
+ zoom:newViewProps.camera.zoom
598
+ bearing:newViewProps.camera.heading
599
+ viewingAngle:newViewProps.camera.pitch];
600
+ _view.cameraProp = camera;
601
+ }
602
+
603
+
541
604
  REMAP_MAPVIEW_EDGEINSETS_PROP(mapPadding)
542
605
 
543
606
 
@@ -551,14 +614,16 @@ using namespace facebook::react;
551
614
  break;
552
615
  case RNMapsGoogleMapViewMapType::Terrain:
553
616
  _view.mapType = kGMSTypeTerrain;
617
+ break;
554
618
  case RNMapsGoogleMapViewMapType::Hybrid:
555
619
  _view.mapType = kGMSTypeHybrid;
620
+ break;
556
621
  default:
557
622
  _view.mapType = kGMSTypeNormal;
558
623
  break;
559
624
  }
560
625
  }
561
-
626
+
562
627
  if (oldViewProps.userInterfaceStyle != newViewProps.userInterfaceStyle){
563
628
  switch (newViewProps.userInterfaceStyle) {
564
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
@@ -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,8 +71,7 @@ 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;