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
@@ -246,6 +246,11 @@ id regionAsJSON(MKCoordinateRegion region) {
246
246
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
247
247
  [polygon didInsertInMap:self];
248
248
  [self.polygons addObject:polygon];
249
+
250
+ } else if ([NSStringFromClass([subview class]) isEqualToString:@"RNMapsGooglePolygonView"]){
251
+ // RNMapsGooglePolygonView *polygon = (RNMapsGooglePolygonView*)subview;
252
+ // [polygon didInsertInMap:self];
253
+ [self.polygons addObject:subview];
249
254
  } else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
250
255
  AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
251
256
  polyline.polyline.map = self;
@@ -290,7 +295,9 @@ id regionAsJSON(MKCoordinateRegion region) {
290
295
  AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
291
296
  marker.realMarker.map = nil;
292
297
  [self.markers removeObject:marker];
293
- } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
298
+ } else if ([NSStringFromClass([subview class]) isEqualToString:@"RNMapsGooglePolygonView"]) {
299
+ [self.polygons removeObject:subview];
300
+ } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
294
301
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
295
302
  polygon.polygon.map = nil;
296
303
  [self.polygons removeObject:polygon];
@@ -355,6 +362,19 @@ id regionAsJSON(MKCoordinateRegion region) {
355
362
  ];
356
363
  }
357
364
 
365
+ - (NSDictionary *) getCameraDic {
366
+ GMSCameraPosition *camera = [self camera];
367
+ return @{
368
+ @"center": @{
369
+ @"latitude": @(camera.target.latitude),
370
+ @"longitude": @(camera.target.longitude),
371
+ },
372
+ @"pitch": @(camera.viewingAngle),
373
+ @"heading": @(camera.bearing),
374
+ @"zoom": @(camera.zoom),
375
+ };
376
+ }
377
+
358
378
  - (void)layoutSubviews {
359
379
  [super layoutSubviews];
360
380
  if(_didLayoutSubviews) return;
@@ -504,7 +524,7 @@ id regionAsJSON(MKCoordinateRegion region) {
504
524
  @"isGesture": [NSNumber numberWithBool:isGesture],
505
525
  };
506
526
 
507
- if (self.onChange) self.onChange(event);
527
+ if (self.onRegionChange) self.onRegionChange(event);
508
528
  }
509
529
 
510
530
  - (void)didTapPOIWithPlaceID:(NSString *)placeID
@@ -526,7 +546,7 @@ id regionAsJSON(MKCoordinateRegion region) {
526
546
  @"region": regionAsJSON([AIRGoogleMap makeGMSCameraPositionFromMap:self andGMSCameraPosition:position]),
527
547
  @"isGesture": [NSNumber numberWithBool:isGesture],
528
548
  };
529
- if (self.onChange) self.onChange(event); // complete
549
+ if (self.onRegionChangeComplete) self.onRegionChangeComplete(event); // complete
530
550
  _isAnimating = NO;
531
551
  }
532
552
 
@@ -646,8 +666,7 @@ id regionAsJSON(MKCoordinateRegion region) {
646
666
  if (!style) {
647
667
  NSLog(@"The style definition could not be loaded: %@", error);
648
668
  }
649
-
650
- self.mapStyle = style;
669
+ [self setMapStyle:style];
651
670
  }
652
671
 
653
672
  - (BOOL)showsCompass {
@@ -776,8 +795,7 @@ id regionAsJSON(MKCoordinateRegion region) {
776
795
  };
777
796
  }
778
797
 
779
- -(void) takeSnapshotWithConfig:(NSDictionary *)config callback:(RCTPromiseResolveBlock) callback
780
- {
798
+ -(void) takeSnapshotWithConfig:(NSDictionary *)config success:(RCTPromiseResolveBlock)success error:(RCTPromiseRejectBlock)error {
781
799
  /* unused
782
800
  NSNumber *width = [config objectForKey:@"width"];
783
801
  NSNumber *height = [config objectForKey:@"height"];
@@ -786,8 +804,9 @@ id regionAsJSON(MKCoordinateRegion region) {
786
804
 
787
805
  NSString *format = [config objectForKey:@"format"];
788
806
  NSString *result = [config objectForKey:@"result"];
789
- NSString *filePath = [config objectForKey:@"filePath"];
790
-
807
+ NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
808
+ NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
809
+ NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
791
810
 
792
811
  // TODO: currently we are ignoring width, height, region
793
812
 
@@ -805,9 +824,9 @@ id regionAsJSON(MKCoordinateRegion region) {
805
824
 
806
825
  if ([result isEqualToString:@"file"]) {
807
826
  [data writeToFile:filePath atomically:YES];
808
- callback(filePath);
827
+ success(filePath);
809
828
  } else if ([result isEqualToString:@"base64"]) {
810
- callback([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
829
+ success([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
811
830
  }
812
831
 
813
832
  UIGraphicsEndImageContext();
@@ -1048,7 +1067,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1048
1067
  }
1049
1068
 
1050
1069
  + (NSString *)GetIconUrl:(GMUPlacemark *) marker parser:(GMUKMLParser *) parser {
1051
- #ifdef HAVE_GOOGLE_MAPS_UTILS
1070
+ #if HAVE_GOOGLE_MAPS_UTILS
1052
1071
  if (marker.style.styleID != nil) {
1053
1072
  for (GMUStyle *style in parser.styles) {
1054
1073
  if (style.styleID == marker.style.styleID) {
@@ -1067,8 +1086,53 @@ id regionAsJSON(MKCoordinateRegion region) {
1067
1086
  return _kmlSrc;
1068
1087
  }
1069
1088
 
1089
+ - (void) setKMLData:(NSData *) urlData {
1090
+ GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
1091
+ [parser parse];
1092
+
1093
+ NSUInteger index = 0;
1094
+ NSMutableArray *markers = [[NSMutableArray alloc]init];
1095
+
1096
+ for (GMUPlacemark *place in parser.placemarks) {
1097
+
1098
+ CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
1099
+
1100
+ AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
1101
+ if (!marker.bridge) {
1102
+ marker.bridge = _bridge;
1103
+ }
1104
+ marker.identifier = place.title;
1105
+ marker.coordinate = location;
1106
+ marker.title = place.title;
1107
+ marker.subtitle = place.snippet;
1108
+ marker.pinColor = place.style.fillColor;
1109
+ marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
1110
+ marker.layer.backgroundColor = [UIColor clearColor].CGColor;
1111
+ marker.layer.position = CGPointZero;
1112
+
1113
+ [self insertReactSubview:(UIView *) marker atIndex:index];
1114
+
1115
+ [markers addObject:@{@"id": marker.identifier,
1116
+ @"title": marker.title,
1117
+ @"description": marker.subtitle,
1118
+ @"coordinate": @{
1119
+ @"latitude": @(location.latitude),
1120
+ @"longitude": @(location.longitude)
1121
+ }
1122
+ }];
1123
+
1124
+ index++;
1125
+ }
1126
+
1127
+ id event = @{@"markers": markers};
1128
+ if (self.onKmlReady) self.onKmlReady(event);
1129
+ #else
1130
+ REQUIRES_GOOGLE_MAPS_UTILS();
1131
+ #endif
1132
+ }
1133
+
1070
1134
  - (void)setKmlSrc:(NSString *)kmlUrl {
1071
- #ifdef HAVE_GOOGLE_MAPS_UTILS
1135
+ #if HAVE_GOOGLE_MAPS_UTILS
1072
1136
 
1073
1137
  _kmlSrc = kmlUrl;
1074
1138
 
@@ -1076,53 +1140,28 @@ id regionAsJSON(MKCoordinateRegion region) {
1076
1140
  NSData *urlData = nil;
1077
1141
 
1078
1142
  if ([url isFileURL]) {
1079
- urlData = [NSData dataWithContentsOfURL:url];
1143
+ [self setKMLData:[NSData dataWithContentsOfURL:url]];
1080
1144
  } else {
1081
- urlData = [[NSFileManager defaultManager] contentsAtPath:kmlUrl];
1145
+ __weak AIRGoogleMap *weakSelf = self;
1146
+
1147
+ NSURLSession *session = [NSURLSession sharedSession];
1148
+ NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url
1149
+ completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
1150
+ if (error) {
1151
+ NSLog(@"Error fetching data: %@", error.localizedDescription);
1152
+ return;
1153
+ } else {
1154
+ dispatch_async(dispatch_get_main_queue(), ^{
1155
+ AIRGoogleMap *strongSelf = weakSelf;
1156
+ [strongSelf setKMLData:data];
1157
+ });
1158
+
1159
+ }
1160
+ }];
1161
+ [dataTask resume];
1082
1162
  }
1083
1163
 
1084
- GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
1085
- [parser parse];
1086
1164
 
1087
- NSUInteger index = 0;
1088
- NSMutableArray *markers = [[NSMutableArray alloc]init];
1089
-
1090
- for (GMUPlacemark *place in parser.placemarks) {
1091
-
1092
- CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
1093
-
1094
- AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
1095
- if (!marker.bridge) {
1096
- marker.bridge = _bridge;
1097
- }
1098
- marker.identifier = place.title;
1099
- marker.coordinate = location;
1100
- marker.title = place.title;
1101
- marker.subtitle = place.snippet;
1102
- marker.pinColor = place.style.fillColor;
1103
- marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
1104
- marker.layer.backgroundColor = [UIColor clearColor].CGColor;
1105
- marker.layer.position = CGPointZero;
1106
-
1107
- [self insertReactSubview:(UIView *) marker atIndex:index];
1108
-
1109
- [markers addObject:@{@"id": marker.identifier,
1110
- @"title": marker.title,
1111
- @"description": marker.subtitle,
1112
- @"coordinate": @{
1113
- @"latitude": @(location.latitude),
1114
- @"longitude": @(location.longitude)
1115
- }
1116
- }];
1117
-
1118
- index++;
1119
- }
1120
-
1121
- id event = @{@"markers": markers};
1122
- if (self.onKmlReady) self.onKmlReady(event);
1123
- #else
1124
- REQUIRES_GOOGLE_MAPS_UTILS();
1125
- #endif
1126
1165
  }
1127
1166
 
1128
1167
 
@@ -1132,11 +1171,9 @@ id regionAsJSON(MKCoordinateRegion region) {
1132
1171
  return;
1133
1172
  }
1134
1173
  self.onIndoorBuildingFocused(@{
1135
- @"IndoorBuilding": @{
1136
- @"activeLevelIndex": @0,
1137
- @"underground": @false,
1138
- @"levels": [[NSMutableArray alloc]init]
1139
- }
1174
+ @"activeLevelIndex": @0,
1175
+ @"underground": @false,
1176
+ @"levels": [[NSMutableArray alloc]init]
1140
1177
  });
1141
1178
  }
1142
1179
  NSInteger i = 0;
@@ -1153,11 +1190,9 @@ id regionAsJSON(MKCoordinateRegion region) {
1153
1190
  return;
1154
1191
  }
1155
1192
  self.onIndoorBuildingFocused(@{
1156
- @"IndoorBuilding": @{
1157
- @"activeLevelIndex": @(building.defaultLevelIndex),
1158
- @"underground": @(building.underground),
1159
- @"levels": arrayLevels
1160
- }
1193
+ @"activeLevelIndex": @(building.defaultLevelIndex),
1194
+ @"underground": @(building.underground),
1195
+ @"levels": arrayLevels
1161
1196
  });
1162
1197
  }
1163
1198
 
@@ -1173,11 +1208,9 @@ id regionAsJSON(MKCoordinateRegion region) {
1173
1208
  i++;
1174
1209
  }
1175
1210
  self.onIndoorLevelActivated(@{
1176
- @"IndoorLevel": @{
1177
- @"activeLevelIndex": @(i),
1178
- @"name": level.name,
1179
- @"shortName": level.shortName
1180
- }
1211
+ @"activeLevelIndex": @(i),
1212
+ @"name": level.name,
1213
+ @"shortName": level.shortName
1181
1214
  });
1182
1215
  }
1183
1216
  // do nothing, passed as options on initialization
@@ -25,20 +25,32 @@
25
25
  }
26
26
  return self;
27
27
  }
28
+ - (void) prepare
29
+ {
30
+ if(_didMoveToWindow) return;
31
+ _didMoveToWindow = true;
32
+ if(_fillColor) {
33
+ _circle.fillColor = _fillColor;
34
+ }
35
+ if(_strokeColor) {
36
+ _circle.strokeColor = _strokeColor;
37
+ }
38
+ if(_strokeWidth) {
39
+ _circle.strokeWidth = _strokeWidth;
40
+ }
41
+ if (_zIndex) {
42
+ _circle.zIndex = _zIndex;
43
+ }
44
+ }
45
+ - (void) didMoveToSuperview
46
+ {
47
+ [super didMoveToSuperview];
48
+ [self prepare];
49
+ }
28
50
 
29
51
  - (void)didMoveToWindow {
30
52
  [super didMoveToWindow];
31
- if(_didMoveToWindow) return;
32
- _didMoveToWindow = true;
33
- if(_fillColor) {
34
- _circle.fillColor = _fillColor;
35
- }
36
- if(_strokeColor) {
37
- _circle.strokeColor = _strokeColor;
38
- }
39
- if(_strokeWidth) {
40
- _circle.strokeWidth = _strokeWidth;
41
- }
53
+ [self prepare];
42
54
  }
43
55
 
44
56
  - (void)setRadius:(double)radius
@@ -14,6 +14,7 @@
14
14
  @interface AIRGoogleMapManager : RCTViewManager
15
15
 
16
16
  @property (nonatomic, strong) NSString* googleMapId;
17
+ @property (nonatomic, strong) NSString* customMapStyle;
17
18
  @property (nonatomic) BOOL zoomTapEnabled;
18
19
  @property (nonatomic, strong) UIColor* backgroundColor;
19
20
  @property (nonatomic, strong) GMSCameraPosition* camera;