react-native-maps 1.21.0-alpha.9 → 1.21.0-alpha.91

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 (179) hide show
  1. package/android/build.gradle +45 -14
  2. package/android/generated/RCTAppDependencyProvider.h +25 -0
  3. package/android/generated/RCTAppDependencyProvider.mm +55 -0
  4. package/android/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  5. package/android/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  6. package/android/generated/RCTThirdPartyComponentsProvider.h +16 -0
  7. package/android/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  8. package/android/generated/ReactAppDependencyProvider.podspec +34 -0
  9. package/android/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  10. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  11. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +18 -0
  12. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  13. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +24 -0
  14. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  15. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +24 -0
  16. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
  17. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  18. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  19. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +40 -0
  20. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  21. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +24 -0
  22. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  23. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +27 -0
  24. package/android/generated/jni/CMakeLists.txt +36 -0
  25. package/android/generated/jni/RNMapsSpecs-generated.cpp +68 -0
  26. package/android/generated/jni/RNMapsSpecs.h +31 -0
  27. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  28. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  29. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +984 -0
  30. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +853 -0
  31. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  32. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  33. package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  34. package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  35. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  36. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  37. package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  38. package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  39. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  40. package/android/gradlew +1 -2
  41. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  42. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  43. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  44. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  45. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  46. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  47. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  48. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  49. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  70. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  71. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  72. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  73. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  74. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  75. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  76. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +38 -2
  77. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  78. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  79. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  80. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +79 -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 +1653 -1337
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +1 -0
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +106 -58
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +3 -1
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +2 -0
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +347 -243
  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/AIRGoogleMapWMSTile.h +1 -1
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  99. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  100. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +197 -61
  101. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  102. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +215 -0
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +25 -0
  104. package/ios/AirMaps/AIRMap.h +2 -1
  105. package/ios/AirMaps/AIRMap.m +227 -236
  106. package/ios/AirMaps/AIRMapManager.m +6 -0
  107. package/ios/AirMaps/AIRMapMarker.h +1 -0
  108. package/ios/AirMaps/AIRMapMarker.m +165 -103
  109. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  110. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  111. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  112. package/ios/AirMaps/RNMapsAirModuleDelegate.h +24 -0
  113. package/ios/AirMaps/RNMapsHostVewDelegate.h +17 -0
  114. package/ios/AirMaps/RNMapsMapView.mm +336 -307
  115. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  116. package/ios/AirMaps/RNMapsMarkerView.mm +427 -0
  117. package/ios/AirMaps/RNMapsMarkerViewManager.mm +21 -0
  118. package/ios/AirMaps/UIView +AirMap.m +20 -0
  119. package/ios/AirMaps/UIView+AirMap.h +11 -0
  120. package/ios/AirMaps.xcodeproj/project.pbxproj +60 -0
  121. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  122. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  123. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  124. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  125. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  126. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  127. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  128. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  129. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +984 -0
  130. package/ios/generated/RNMapsSpecs/EventEmitters.h +853 -0
  131. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  132. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  133. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +603 -0
  134. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  135. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  136. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  137. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  138. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  139. package/ios/generated/RNMapsSpecs/States.h +113 -0
  140. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  141. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  142. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  143. package/ios/generated/module.modulemap +4 -0
  144. package/ios/generated/react-native-maps-generated-umbrella.h +14 -0
  145. package/lib/MapCircle.d.ts +1 -1
  146. package/lib/MapHeatmap.d.ts +2 -2
  147. package/lib/MapHeatmap.js +1 -1
  148. package/lib/MapMarker.d.ts +16 -3
  149. package/lib/MapMarker.js +58 -9
  150. package/lib/MapMarkerNativeComponent.js +0 -2
  151. package/lib/MapOverlay.d.ts +1 -0
  152. package/lib/MapOverlay.js +21 -9
  153. package/lib/MapPolygon.d.ts +1 -1
  154. package/lib/MapPolyline.d.ts +7 -7
  155. package/lib/MapView.d.ts +15 -27
  156. package/lib/MapView.js +109 -124
  157. package/lib/MapView.types.d.ts +1 -1
  158. package/lib/createFabricMap.d.ts +1 -0
  159. package/lib/createFabricMap.js +17 -4
  160. package/lib/decorateMapComponent.js +40 -0
  161. package/lib/specs/NativeAirMapsModule.d.ts +2 -2
  162. package/lib/specs/NativeComponentCallout.d.ts +46 -0
  163. package/lib/specs/NativeComponentCallout.js +9 -0
  164. package/lib/specs/NativeComponentCircle.d.ts +74 -0
  165. package/lib/specs/NativeComponentCircle.js +7 -0
  166. package/lib/specs/NativeComponentGoogleMapView.d.ts +15 -15
  167. package/lib/specs/NativeComponentGoogleMapView.js +1 -0
  168. package/lib/specs/NativeComponentGooglePolygon.d.ts +75 -0
  169. package/lib/specs/NativeComponentGooglePolygon.js +7 -0
  170. package/lib/specs/NativeComponentMapView.d.ts +28 -36
  171. package/lib/specs/NativeComponentMapView.js +2 -3
  172. package/lib/specs/NativeComponentMarker.d.ts +258 -0
  173. package/lib/specs/NativeComponentMarker.js +19 -0
  174. package/lib/specs/NativeComponentOverlay.d.ts +67 -0
  175. package/lib/specs/NativeComponentOverlay.js +7 -0
  176. package/lib/specs/NativeComponentPolyline.d.ts +101 -0
  177. package/lib/specs/NativeComponentPolyline.js +7 -0
  178. package/package.json +27 -21
  179. package/react-native-maps.podspec +61 -16
@@ -67,6 +67,7 @@
67
67
  @property (nonatomic, assign) BOOL showsIndoorLevelPicker;
68
68
  @property (nonatomic, assign) NSString *kmlSrc;
69
69
 
70
+ - (BOOL) isReady;
70
71
  - (void)didPrepareMap;
71
72
  - (void)mapViewDidFinishTileRendering;
72
73
  - (BOOL)didTapMarker:(GMSMarker *)marker;
@@ -69,6 +69,7 @@ id regionAsJSON(MKCoordinateRegion region) {
69
69
  BOOL _didPrepareMap;
70
70
  BOOL _didCallOnMapReady;
71
71
  BOOL _zoomTapEnabled;
72
+ BOOL _isAnimating;
72
73
  NSString* _googleMapId;
73
74
  }
74
75
 
@@ -146,6 +147,10 @@ id regionAsJSON(MKCoordinateRegion region) {
146
147
  };
147
148
  }
148
149
 
150
+ - (BOOL) isReady {
151
+ return _didPrepareMap;
152
+ }
153
+
149
154
  -(void) fitToCoordinates:(NSArray<AIRGoogleMapCoordinate *> *) coordinates withEdgePadding:(NSDictionary*) edgePadding animated:(BOOL)animated
150
155
  {
151
156
  CLLocationCoordinate2D myLocation = coordinates.firstObject.coordinate;
@@ -235,12 +240,17 @@ id regionAsJSON(MKCoordinateRegion region) {
235
240
  // This is where we intercept them and do the appropriate underlying mapview action.
236
241
  if ([subview isKindOfClass:[AIRGoogleMapMarker class]]) {
237
242
  AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
238
- marker.realMarker.map = self;
243
+ [marker didInsertInMap:self];
239
244
  [self.markers addObject:marker];
240
245
  } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
241
246
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
242
- polygon.polygon.map = self;
247
+ [polygon didInsertInMap:self];
243
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];
244
254
  } else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
245
255
  AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
246
256
  polyline.polyline.map = self;
@@ -285,7 +295,9 @@ id regionAsJSON(MKCoordinateRegion region) {
285
295
  AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
286
296
  marker.realMarker.map = nil;
287
297
  [self.markers removeObject:marker];
288
- } 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]]) {
289
301
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
290
302
  polygon.polygon.map = nil;
291
303
  [self.polygons removeObject:polygon];
@@ -350,6 +362,19 @@ id regionAsJSON(MKCoordinateRegion region) {
350
362
  ];
351
363
  }
352
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
+
353
378
  - (void)layoutSubviews {
354
379
  [super layoutSubviews];
355
380
  if(_didLayoutSubviews) return;
@@ -386,7 +411,7 @@ id regionAsJSON(MKCoordinateRegion region) {
386
411
  }
387
412
 
388
413
  - (void)setRegion:(MKCoordinateRegion)region {
389
- // TODO: The JS component is repeatedly setting region unnecessarily. We might want to deal with that in here.
414
+ if (_isAnimating || !CLLocationCoordinate2DIsValid(region.center)) return;
390
415
  _region = region;
391
416
  if(_didLayoutSubviews) {
392
417
  self.camera = [AIRGoogleMap makeGMSCameraPositionFromMap:self andMKCoordinateRegion:region];
@@ -406,6 +431,7 @@ id regionAsJSON(MKCoordinateRegion region) {
406
431
  }
407
432
 
408
433
  - (void)setCameraProp:(GMSCameraPosition*)camera {
434
+ if (_isAnimating || !CLLocationCoordinate2DIsValid([camera target])) return;
409
435
  _initialCamera = camera;
410
436
  if(_didLayoutSubviews) {
411
437
  self.camera = camera;
@@ -487,6 +513,7 @@ id regionAsJSON(MKCoordinateRegion region) {
487
513
  }
488
514
 
489
515
  - (void)willMove:(BOOL)gesture {
516
+ _isAnimating = YES;
490
517
  id event = @{@"isGesture": [NSNumber numberWithBool:gesture]};
491
518
  if (self.onRegionChangeStart) self.onRegionChangeStart(event);
492
519
  }
@@ -520,6 +547,7 @@ id regionAsJSON(MKCoordinateRegion region) {
520
547
  @"isGesture": [NSNumber numberWithBool:isGesture],
521
548
  };
522
549
  if (self.onChange) self.onChange(event); // complete
550
+ _isAnimating = NO;
523
551
  }
524
552
 
525
553
  - (void)setMapPadding:(UIEdgeInsets)mapPadding {
@@ -768,8 +796,7 @@ id regionAsJSON(MKCoordinateRegion region) {
768
796
  };
769
797
  }
770
798
 
771
- -(void) takeSnapshotWithConfig:(NSDictionary *)config callback:(RCTPromiseResolveBlock) callback
772
- {
799
+ -(void) takeSnapshotWithConfig:(NSDictionary *)config success:(RCTPromiseResolveBlock)success error:(RCTPromiseRejectBlock)error {
773
800
  /* unused
774
801
  NSNumber *width = [config objectForKey:@"width"];
775
802
  NSNumber *height = [config objectForKey:@"height"];
@@ -778,9 +805,10 @@ id regionAsJSON(MKCoordinateRegion region) {
778
805
 
779
806
  NSString *format = [config objectForKey:@"format"];
780
807
  NSString *result = [config objectForKey:@"result"];
781
- NSString *filePath = [config objectForKey:@"filePath"];
808
+ NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
809
+ NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
810
+ NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
782
811
 
783
-
784
812
  // TODO: currently we are ignoring width, height, region
785
813
 
786
814
  UIGraphicsBeginImageContextWithOptions(self.frame.size, YES, 0.0f);
@@ -794,14 +822,14 @@ id regionAsJSON(MKCoordinateRegion region) {
794
822
  } else if([format isEqualToString:@"jpg"]) {
795
823
  data = UIImageJPEGRepresentation(image, quality.floatValue);
796
824
  }
797
-
825
+
798
826
  if ([result isEqualToString:@"file"]) {
799
827
  [data writeToFile:filePath atomically:YES];
800
- callback(filePath);
828
+ success(filePath);
801
829
  } else if ([result isEqualToString:@"base64"]) {
802
- callback([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
830
+ success([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
803
831
  }
804
-
832
+
805
833
  UIGraphicsEndImageContext();
806
834
  }
807
835
 
@@ -1059,6 +1087,51 @@ id regionAsJSON(MKCoordinateRegion region) {
1059
1087
  return _kmlSrc;
1060
1088
  }
1061
1089
 
1090
+ - (void) setKMLData:(NSData *) urlData {
1091
+ GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
1092
+ [parser parse];
1093
+
1094
+ NSUInteger index = 0;
1095
+ NSMutableArray *markers = [[NSMutableArray alloc]init];
1096
+
1097
+ for (GMUPlacemark *place in parser.placemarks) {
1098
+
1099
+ CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
1100
+
1101
+ AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
1102
+ if (!marker.bridge) {
1103
+ marker.bridge = _bridge;
1104
+ }
1105
+ marker.identifier = place.title;
1106
+ marker.coordinate = location;
1107
+ marker.title = place.title;
1108
+ marker.subtitle = place.snippet;
1109
+ marker.pinColor = place.style.fillColor;
1110
+ marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
1111
+ marker.layer.backgroundColor = [UIColor clearColor].CGColor;
1112
+ marker.layer.position = CGPointZero;
1113
+
1114
+ [self insertReactSubview:(UIView *) marker atIndex:index];
1115
+
1116
+ [markers addObject:@{@"id": marker.identifier,
1117
+ @"title": marker.title,
1118
+ @"description": marker.subtitle,
1119
+ @"coordinate": @{
1120
+ @"latitude": @(location.latitude),
1121
+ @"longitude": @(location.longitude)
1122
+ }
1123
+ }];
1124
+
1125
+ index++;
1126
+ }
1127
+
1128
+ id event = @{@"markers": markers};
1129
+ if (self.onKmlReady) self.onKmlReady(event);
1130
+ #else
1131
+ REQUIRES_GOOGLE_MAPS_UTILS();
1132
+ #endif
1133
+ }
1134
+
1062
1135
  - (void)setKmlSrc:(NSString *)kmlUrl {
1063
1136
  #ifdef HAVE_GOOGLE_MAPS_UTILS
1064
1137
 
@@ -1068,53 +1141,28 @@ id regionAsJSON(MKCoordinateRegion region) {
1068
1141
  NSData *urlData = nil;
1069
1142
 
1070
1143
  if ([url isFileURL]) {
1071
- urlData = [NSData dataWithContentsOfURL:url];
1144
+ [self setKMLData:[NSData dataWithContentsOfURL:url]];
1072
1145
  } else {
1073
- urlData = [[NSFileManager defaultManager] contentsAtPath:kmlUrl];
1146
+ __weak AIRGoogleMap *weakSelf = self;
1147
+
1148
+ NSURLSession *session = [NSURLSession sharedSession];
1149
+ NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url
1150
+ completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
1151
+ if (error) {
1152
+ NSLog(@"Error fetching data: %@", error.localizedDescription);
1153
+ return;
1154
+ } else {
1155
+ dispatch_async(dispatch_get_main_queue(), ^{
1156
+ AIRGoogleMap *strongSelf = weakSelf;
1157
+ [strongSelf setKMLData:data];
1158
+ });
1159
+
1160
+ }
1161
+ }];
1162
+ [dataTask resume];
1074
1163
  }
1075
1164
 
1076
- GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
1077
- [parser parse];
1078
-
1079
- NSUInteger index = 0;
1080
- NSMutableArray *markers = [[NSMutableArray alloc]init];
1081
1165
 
1082
- for (GMUPlacemark *place in parser.placemarks) {
1083
-
1084
- CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
1085
-
1086
- AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
1087
- if (!marker.bridge) {
1088
- marker.bridge = _bridge;
1089
- }
1090
- marker.identifier = place.title;
1091
- marker.coordinate = location;
1092
- marker.title = place.title;
1093
- marker.subtitle = place.snippet;
1094
- marker.pinColor = place.style.fillColor;
1095
- marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
1096
- marker.layer.backgroundColor = [UIColor clearColor].CGColor;
1097
- marker.layer.position = CGPointZero;
1098
-
1099
- [self insertReactSubview:(UIView *) marker atIndex:index];
1100
-
1101
- [markers addObject:@{@"id": marker.identifier,
1102
- @"title": marker.title,
1103
- @"description": marker.subtitle,
1104
- @"coordinate": @{
1105
- @"latitude": @(location.latitude),
1106
- @"longitude": @(location.longitude)
1107
- }
1108
- }];
1109
-
1110
- index++;
1111
- }
1112
-
1113
- id event = @{@"markers": markers};
1114
- if (self.onKmlReady) self.onKmlReady(event);
1115
- #else
1116
- REQUIRES_GOOGLE_MAPS_UTILS();
1117
- #endif
1118
1166
  }
1119
1167
 
1120
1168
 
@@ -1124,7 +1172,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1124
1172
  return;
1125
1173
  }
1126
1174
  self.onIndoorBuildingFocused(@{
1127
- @"IndoorBuilding": @{
1175
+ @"indoorBuilding": @{
1128
1176
  @"activeLevelIndex": @0,
1129
1177
  @"underground": @false,
1130
1178
  @"levels": [[NSMutableArray alloc]init]
@@ -1145,7 +1193,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1145
1193
  return;
1146
1194
  }
1147
1195
  self.onIndoorBuildingFocused(@{
1148
- @"IndoorBuilding": @{
1196
+ @"indoorBuilding": @{
1149
1197
  @"activeLevelIndex": @(building.defaultLevelIndex),
1150
1198
  @"underground": @(building.underground),
1151
1199
  @"levels": arrayLevels
@@ -1165,7 +1213,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1165
1213
  i++;
1166
1214
  }
1167
1215
  self.onIndoorLevelActivated(@{
1168
- @"IndoorLevel": @{
1216
+ @"indoorLevel": @{
1169
1217
  @"activeLevelIndex": @(i),
1170
1218
  @"name": level.name,
1171
1219
  @"shortName": level.shortName
@@ -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
@@ -267,7 +267,9 @@ RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
267
267
  AIRGoogleMap *mapView = (AIRGoogleMap *)view;
268
268
  NSMutableDictionary* config = [NSMutableDictionary new];
269
269
 
270
- [mapView takeSnapshotWithConfig:config callback:callback];
270
+ [mapView takeSnapshotWithConfig:config success:callback error:^(NSString *code, NSString *message, NSError *error) {
271
+ callback(@[error]);
272
+ }];
271
273
 
272
274
  [config setObject:width forKey:@"width"];
273
275
  [config setObject:height forKey:@"height"];
@@ -53,6 +53,8 @@
53
53
  - (void)didDragMarker:(AIRGMSMarker *)marker;
54
54
  - (id)makeEventData;
55
55
  - (id)makeEventData:(NSString *)action;
56
+ - (UIView *) iconView;
57
+ - (void) didInsertInMap:(AIRGoogleMap *) map;
56
58
  @end
57
59
 
58
60
  #endif