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
@@ -29,8 +29,8 @@ CGRect unionRect(CGRect a, CGRect b) {
29
29
  @implementation AIRGoogleMapMarker {
30
30
  RCTImageLoaderCancellationBlock _reloadImageCancellationBlock;
31
31
  RCTBubblingEventBlock _onPress;
32
- RCTBubblingEventBlock _onSelect;
33
- RCTBubblingEventBlock _onDeselect;
32
+ RCTDirectEventBlock _onSelect;
33
+ RCTDirectEventBlock _onDeselect;
34
34
  __weak UIImageView *_iconImageView;
35
35
  UIView *_iconView;
36
36
  UIColor *_pinColor;
@@ -140,6 +140,9 @@ CGRect unionRect(CGRect a, CGRect b) {
140
140
  if (_onPress){
141
141
  [_realMarker setOnPress:_onPress];
142
142
  }
143
+ if (_zIndex){
144
+ [_realMarker setZIndex:_zIndex];
145
+ }
143
146
  [_realMarker setMap:map];
144
147
  }
145
148
 
@@ -373,7 +376,7 @@ CGRect unionRect(CGRect a, CGRect b) {
373
376
  // TODO(lmr): do something with the error?
374
377
  NSLog(@"%@", error);
375
378
  }
376
-
379
+
377
380
  dispatch_async(dispatch_get_main_queue(), ^{
378
381
  __strong AIRGoogleMapMarker* strongSelf = weakSelf;
379
382
 
@@ -86,7 +86,7 @@ RCT_EXPORT_METHOD(redrawCallout:(nonnull NSNumber *)reactTag)
86
86
  RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
87
87
  } else {
88
88
  AIRGoogleMapMarker* marker = (AIRGoogleMapMarker *) view;
89
-
89
+
90
90
  [NSTimer scheduledTimerWithTimeInterval:0.0
91
91
  target:[NSBlockOperation blockOperationWithBlock:^{
92
92
  [marker hideCalloutView];
@@ -66,6 +66,9 @@
66
66
  if (_holes){
67
67
  [self setHoles:_holes];
68
68
  }
69
+ if (_zIndex){
70
+ _polygon.zIndex = _zIndex;
71
+ }
69
72
  [_polygon setMap:map];
70
73
  }
71
74
 
@@ -25,7 +25,6 @@
25
25
  @property (nonatomic, strong) UIColor *strokeColor;
26
26
  @property (nonatomic, strong) NSArray<UIColor *> *strokeColors;
27
27
  @property (nonatomic, assign) double strokeWidth;
28
- @property (nonatomic, assign) UIColor *fillColor;
29
28
  @property (nonatomic, strong) NSArray<NSNumber *> *lineDashPattern;
30
29
  @property (nonatomic, assign) BOOL geodesic;
31
30
  @property (nonatomic, assign) NSString *title;
@@ -19,7 +19,6 @@
19
19
  {
20
20
  if (self = [super init]) {
21
21
  _polyline = [[AIRGMSPolyline alloc] init];
22
- _polyline.spans = @[[GMSStyleSpan spanWithColor:_strokeColor]];
23
22
  _polyline.strokeColor = _strokeColor;
24
23
  }
25
24
  return self;
@@ -79,12 +78,6 @@
79
78
  _polyline.strokeWidth = strokeWidth;
80
79
  }
81
80
 
82
- -(void)setFillColor:(UIColor *)fillColor
83
- {
84
- _fillColor = fillColor;
85
- _polyline.spans = @[[GMSStyleSpan spanWithColor:fillColor]];
86
- }
87
-
88
81
  - (void)setLineDashPattern:(NSArray<NSNumber *> *)lineDashPattern {
89
82
  _lineDashPattern = lineDashPattern;
90
83
  [self configureStyleSpansIfNeeded];
@@ -28,11 +28,11 @@
28
28
  NSInteger *maximumZ = self.maximumZ;
29
29
  NSInteger *minimumZ = self.minimumZ;
30
30
  GMSTileURLConstructor urls = ^NSURL* _Nullable (NSUInteger x, NSUInteger y, NSUInteger zoom) {
31
-
31
+
32
32
  if (self.flipY == YES) {
33
33
  y = (1 << zoom) - y - 1;
34
34
  }
35
-
35
+
36
36
  NSString *url = urlTemplate;
37
37
  url = [url stringByReplacingOccurrencesOfString:@"{x}" withString:[NSString stringWithFormat: @"%ld", (long)x]];
38
38
  url = [url stringByReplacingOccurrencesOfString:@"{y}" withString:[NSString stringWithFormat: @"%ld", (long)y]];
@@ -13,7 +13,7 @@
13
13
 
14
14
  @interface WMSTileOverlay : GMSSyncTileLayer
15
15
  @property (nonatomic) double MapX,MapY,FULL;
16
- @property (nonatomic, strong) NSString *template;
16
+ @property (nonatomic, assign) NSString *urlTemplate;
17
17
  @property (nonatomic, assign) NSInteger maximumZ;
18
18
  @property (nonatomic, assign) NSInteger minimumZ;
19
19
  @end
@@ -62,7 +62,7 @@
62
62
  {
63
63
  _urlTemplate = urlTemplate;
64
64
  WMSTileOverlay *tile = [[WMSTileOverlay alloc] init];
65
- [tile setTemplate:urlTemplate];
65
+ [tile setUrlTemplate:urlTemplate];
66
66
  [tile setMaximumZ: _maximumZ];
67
67
  [tile setMinimumZ: _minimumZ];
68
68
  [tile setOpacity: _opacity];
@@ -91,9 +91,9 @@
91
91
  [NSNumber numberWithDouble:_MapX + (double)(x+1) * tile ],
92
92
  [NSNumber numberWithDouble:_MapY - (double)y * tile ],
93
93
  nil];
94
-
94
+
95
95
  return result;
96
-
96
+
97
97
  }
98
98
 
99
99
  - (UIImage *)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom
@@ -107,7 +107,7 @@
107
107
  return nil;
108
108
  }
109
109
  NSArray *bb = [self getBoundBox:x yAxis:y zoom:zoom];
110
- NSMutableString *url = [self.template mutableCopy];
110
+ NSMutableString *url = [self.urlTemplate mutableCopy];
111
111
  [url replaceOccurrencesOfString: @"{minX}" withString:[NSString stringWithFormat:@"%@", bb[0]] options:0 range:NSMakeRange(0, url.length)];
112
112
  [url replaceOccurrencesOfString: @"{minY}" withString:[NSString stringWithFormat:@"%@", bb[1]] options:0 range:NSMakeRange(0, url.length)];
113
113
  [url replaceOccurrencesOfString: @"{maxX}" withString:[NSString stringWithFormat:@"%@", bb[2]] options:0 range:NSMakeRange(0, url.length)];
@@ -10,7 +10,7 @@
10
10
 
11
11
  #import <React/RCTViewComponentView.h>
12
12
  #import <UIKit/UIKit.h>
13
- #import "RNMapsHostVewDelegate.h"
13
+ #import <react-native-maps-generated/RNMapsHostVewDelegate.h>
14
14
 
15
15
  @class AIRGoogleMap;
16
16
 
@@ -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);
@@ -428,6 +497,12 @@ using namespace facebook::react;
428
497
  _legacyMapManager.googleMapId = mapID;
429
498
  }
430
499
  }
500
+ if (oldViewProps.customMapStyleString != newViewProps.customMapStyleString) {
501
+ NSString* customStyle = RCTNSStringFromString(newViewProps.customMapStyleString);
502
+ if (customStyle && [customStyle length]){
503
+ _legacyMapManager.customMapStyle = customStyle;
504
+ }
505
+ }
431
506
  if (!newViewProps.zoomTapEnabled) {
432
507
  _legacyMapManager.zoomTapEnabled = newViewProps.zoomTapEnabled;
433
508
  } else {
@@ -452,7 +527,7 @@ using namespace facebook::react;
452
527
  _legacyMapManager.camera = camera;
453
528
  }
454
529
 
455
-
530
+
456
531
 
457
532
  if (!_view){
458
533
  [self prepareContentView];
@@ -500,16 +575,18 @@ using namespace facebook::react;
500
575
 
501
576
 
502
577
  REMAP_MAPVIEW_PROP(pitchEnabled)
503
-
504
578
  REMAP_MAPVIEW_PROP(zoomTapEnabled)
505
-
506
579
  REMAP_MAPVIEW_PROP(scrollEnabled)
507
-
580
+
581
+ REMAP_MAPVIEW_STRING_PROP(kmlSrc)
582
+ REMAP_MAPVIEW_STRING_PROP(customMapStyleString)
583
+
584
+
508
585
  if (newViewProps.minZoom != oldViewProps.minZoom || newViewProps.maxZoom != oldViewProps.maxZoom){
509
586
  [_view setMinZoom:newViewProps.minZoom maxZoom:newViewProps.maxZoom];
510
587
  }
511
588
 
512
- REMAP_MAPVIEW_PROP(showsCompass)
589
+ [_view setShowsCompass:newViewProps.showsCompass];
513
590
  REMAP_MAPVIEW_PROP(showsTraffic)
514
591
  REMAP_MAPVIEW_PROP(showsUserLocation)
515
592
  REMAP_MAPVIEW_PROP(zoomEnabled)
@@ -530,8 +607,8 @@ using namespace facebook::react;
530
607
  viewingAngle:newViewProps.camera.pitch];
531
608
  _view.cameraProp = camera;
532
609
  }
533
-
534
-
610
+
611
+
535
612
  REMAP_MAPVIEW_EDGEINSETS_PROP(mapPadding)
536
613
 
537
614
 
@@ -549,12 +626,15 @@ using namespace facebook::react;
549
626
  case RNMapsGoogleMapViewMapType::Hybrid:
550
627
  _view.mapType = kGMSTypeHybrid;
551
628
  break;
629
+ case RNMapsGoogleMapViewMapType::None:
630
+ _view.mapType = kGMSTypeNone;
631
+ break;
552
632
  default:
553
633
  _view.mapType = kGMSTypeNormal;
554
634
  break;
555
635
  }
556
636
  }
557
-
637
+
558
638
  if (oldViewProps.userInterfaceStyle != newViewProps.userInterfaceStyle){
559
639
  switch (newViewProps.userInterfaceStyle) {
560
640
  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