react-native-maps 1.21.0-alpha.10 → 1.21.0-alpha.100

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 (128) hide show
  1. package/android/build.gradle +77 -57
  2. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  3. package/android/gradlew +1 -2
  4. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  5. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  6. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  7. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  8. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  9. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  10. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  11. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  12. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  13. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  14. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  15. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  16. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  17. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  18. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  19. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  20. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  21. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  22. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  23. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  24. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  25. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  26. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  27. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  28. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  29. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  30. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  31. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  32. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  33. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  34. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  35. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  36. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  37. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  38. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  39. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +39 -3
  40. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  41. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  42. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  43. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +79 -3
  44. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  45. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  46. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  47. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  48. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  49. package/android/src/main/java/com/rnmaps/maps/MapView.java +1654 -1337
  50. package/ios/AirGoogleMaps/AIRGoogleMap.m +102 -58
  51. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  52. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +3 -1
  53. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +2 -0
  54. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +347 -243
  55. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
  56. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
  57. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  58. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  59. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  60. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  61. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  62. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +143 -54
  63. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  64. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  65. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +25 -0
  66. package/ios/AirMaps/AIRMap.h +2 -1
  67. package/ios/AirMaps/AIRMap.m +227 -236
  68. package/ios/AirMaps/AIRMapManager.m +6 -0
  69. package/ios/AirMaps/AIRMapMarker.h +1 -0
  70. package/ios/AirMaps/AIRMapMarker.m +165 -103
  71. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  72. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  73. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  74. package/ios/AirMaps/RNMapsAirModuleDelegate.h +24 -0
  75. package/ios/AirMaps/RNMapsHostVewDelegate.h +17 -0
  76. package/ios/AirMaps/RNMapsMapView.mm +335 -303
  77. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  78. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  79. package/ios/AirMaps/RNMapsMarkerViewManager.mm +21 -0
  80. package/ios/AirMaps/UIView +AirMap.m +20 -0
  81. package/ios/AirMaps/UIView+AirMap.h +11 -0
  82. package/ios/AirMaps.xcodeproj/project.pbxproj +60 -0
  83. package/lib/MapCircle.d.ts +1 -1
  84. package/lib/MapHeatmap.d.ts +2 -2
  85. package/lib/MapHeatmap.js +1 -1
  86. package/lib/MapMarker.d.ts +16 -3
  87. package/lib/MapMarker.js +55 -13
  88. package/lib/MapMarkerNativeComponent.js +0 -2
  89. package/lib/MapOverlay.d.ts +1 -0
  90. package/lib/MapOverlay.js +11 -9
  91. package/lib/MapPolygon.d.ts +1 -1
  92. package/lib/MapPolyline.d.ts +7 -7
  93. package/lib/MapView.d.ts +15 -27
  94. package/lib/MapView.js +109 -124
  95. package/lib/MapView.types.d.ts +1 -1
  96. package/lib/createFabricMap.d.ts +1 -0
  97. package/lib/createFabricMap.js +17 -4
  98. package/lib/decorateMapComponent.js +40 -0
  99. package/lib/fixImageProp.d.ts +4 -0
  100. package/lib/fixImageProp.js +16 -0
  101. package/lib/specs/NativeAirMapsModule.d.ts +2 -2
  102. package/lib/specs/NativeComponentCallout.d.ts +46 -0
  103. package/lib/specs/NativeComponentCallout.js +9 -0
  104. package/lib/specs/NativeComponentCircle.d.ts +74 -0
  105. package/lib/specs/NativeComponentCircle.js +7 -0
  106. package/lib/specs/NativeComponentGoogleMapView.d.ts +15 -15
  107. package/lib/specs/NativeComponentGoogleMapView.js +1 -0
  108. package/lib/specs/NativeComponentGooglePolygon.d.ts +75 -0
  109. package/lib/specs/NativeComponentGooglePolygon.js +7 -0
  110. package/lib/specs/NativeComponentMapView.d.ts +28 -36
  111. package/lib/specs/NativeComponentMapView.js +2 -3
  112. package/lib/specs/NativeComponentMarker.d.ts +258 -0
  113. package/lib/specs/NativeComponentMarker.js +19 -0
  114. package/lib/specs/NativeComponentOverlay.d.ts +67 -0
  115. package/lib/specs/NativeComponentOverlay.js +7 -0
  116. package/lib/specs/NativeComponentPolyline.d.ts +101 -0
  117. package/lib/specs/NativeComponentPolyline.js +7 -0
  118. package/package.json +24 -22
  119. package/react-native-maps.podspec +61 -16
  120. package/specs/NativeAirMapsModule.ts +36 -0
  121. package/specs/NativeComponentCallout.ts +63 -0
  122. package/specs/NativeComponentCircle.ts +94 -0
  123. package/specs/NativeComponentGoogleMapView.ts +916 -0
  124. package/specs/NativeComponentGooglePolygon.ts +94 -0
  125. package/specs/NativeComponentMapView.ts +1071 -0
  126. package/specs/NativeComponentMarker.ts +326 -0
  127. package/specs/NativeComponentOverlay.ts +89 -0
  128. package/specs/NativeComponentPolyline.ts +124 -0
@@ -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
 
@@ -239,12 +240,17 @@ id regionAsJSON(MKCoordinateRegion region) {
239
240
  // This is where we intercept them and do the appropriate underlying mapview action.
240
241
  if ([subview isKindOfClass:[AIRGoogleMapMarker class]]) {
241
242
  AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
242
- marker.realMarker.map = self;
243
+ [marker didInsertInMap:self];
243
244
  [self.markers addObject:marker];
244
245
  } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
245
246
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
246
- polygon.polygon.map = self;
247
+ [polygon didInsertInMap:self];
247
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];
248
254
  } else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
249
255
  AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
250
256
  polyline.polyline.map = self;
@@ -289,7 +295,9 @@ id regionAsJSON(MKCoordinateRegion region) {
289
295
  AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
290
296
  marker.realMarker.map = nil;
291
297
  [self.markers removeObject:marker];
292
- } 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]]) {
293
301
  AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
294
302
  polygon.polygon.map = nil;
295
303
  [self.polygons removeObject:polygon];
@@ -354,6 +362,19 @@ id regionAsJSON(MKCoordinateRegion region) {
354
362
  ];
355
363
  }
356
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
+
357
378
  - (void)layoutSubviews {
358
379
  [super layoutSubviews];
359
380
  if(_didLayoutSubviews) return;
@@ -390,7 +411,7 @@ id regionAsJSON(MKCoordinateRegion region) {
390
411
  }
391
412
 
392
413
  - (void)setRegion:(MKCoordinateRegion)region {
393
- // 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;
394
415
  _region = region;
395
416
  if(_didLayoutSubviews) {
396
417
  self.camera = [AIRGoogleMap makeGMSCameraPositionFromMap:self andMKCoordinateRegion:region];
@@ -410,6 +431,7 @@ id regionAsJSON(MKCoordinateRegion region) {
410
431
  }
411
432
 
412
433
  - (void)setCameraProp:(GMSCameraPosition*)camera {
434
+ if (_isAnimating || !CLLocationCoordinate2DIsValid([camera target])) return;
413
435
  _initialCamera = camera;
414
436
  if(_didLayoutSubviews) {
415
437
  self.camera = camera;
@@ -491,6 +513,7 @@ id regionAsJSON(MKCoordinateRegion region) {
491
513
  }
492
514
 
493
515
  - (void)willMove:(BOOL)gesture {
516
+ _isAnimating = YES;
494
517
  id event = @{@"isGesture": [NSNumber numberWithBool:gesture]};
495
518
  if (self.onRegionChangeStart) self.onRegionChangeStart(event);
496
519
  }
@@ -524,6 +547,7 @@ id regionAsJSON(MKCoordinateRegion region) {
524
547
  @"isGesture": [NSNumber numberWithBool:isGesture],
525
548
  };
526
549
  if (self.onChange) self.onChange(event); // complete
550
+ _isAnimating = NO;
527
551
  }
528
552
 
529
553
  - (void)setMapPadding:(UIEdgeInsets)mapPadding {
@@ -772,8 +796,7 @@ id regionAsJSON(MKCoordinateRegion region) {
772
796
  };
773
797
  }
774
798
 
775
- -(void) takeSnapshotWithConfig:(NSDictionary *)config callback:(RCTPromiseResolveBlock) callback
776
- {
799
+ -(void) takeSnapshotWithConfig:(NSDictionary *)config success:(RCTPromiseResolveBlock)success error:(RCTPromiseRejectBlock)error {
777
800
  /* unused
778
801
  NSNumber *width = [config objectForKey:@"width"];
779
802
  NSNumber *height = [config objectForKey:@"height"];
@@ -782,9 +805,10 @@ id regionAsJSON(MKCoordinateRegion region) {
782
805
 
783
806
  NSString *format = [config objectForKey:@"format"];
784
807
  NSString *result = [config objectForKey:@"result"];
785
- 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];
786
811
 
787
-
788
812
  // TODO: currently we are ignoring width, height, region
789
813
 
790
814
  UIGraphicsBeginImageContextWithOptions(self.frame.size, YES, 0.0f);
@@ -798,14 +822,14 @@ id regionAsJSON(MKCoordinateRegion region) {
798
822
  } else if([format isEqualToString:@"jpg"]) {
799
823
  data = UIImageJPEGRepresentation(image, quality.floatValue);
800
824
  }
801
-
825
+
802
826
  if ([result isEqualToString:@"file"]) {
803
827
  [data writeToFile:filePath atomically:YES];
804
- callback(filePath);
828
+ success(filePath);
805
829
  } else if ([result isEqualToString:@"base64"]) {
806
- callback([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
830
+ success([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
807
831
  }
808
-
832
+
809
833
  UIGraphicsEndImageContext();
810
834
  }
811
835
 
@@ -1063,6 +1087,51 @@ id regionAsJSON(MKCoordinateRegion region) {
1063
1087
  return _kmlSrc;
1064
1088
  }
1065
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
+
1066
1135
  - (void)setKmlSrc:(NSString *)kmlUrl {
1067
1136
  #ifdef HAVE_GOOGLE_MAPS_UTILS
1068
1137
 
@@ -1072,53 +1141,28 @@ id regionAsJSON(MKCoordinateRegion region) {
1072
1141
  NSData *urlData = nil;
1073
1142
 
1074
1143
  if ([url isFileURL]) {
1075
- urlData = [NSData dataWithContentsOfURL:url];
1144
+ [self setKMLData:[NSData dataWithContentsOfURL:url]];
1076
1145
  } else {
1077
- 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];
1078
1163
  }
1079
1164
 
1080
- GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
1081
- [parser parse];
1082
-
1083
- NSUInteger index = 0;
1084
- NSMutableArray *markers = [[NSMutableArray alloc]init];
1085
-
1086
- for (GMUPlacemark *place in parser.placemarks) {
1087
1165
 
1088
- CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
1089
-
1090
- AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
1091
- if (!marker.bridge) {
1092
- marker.bridge = _bridge;
1093
- }
1094
- marker.identifier = place.title;
1095
- marker.coordinate = location;
1096
- marker.title = place.title;
1097
- marker.subtitle = place.snippet;
1098
- marker.pinColor = place.style.fillColor;
1099
- marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
1100
- marker.layer.backgroundColor = [UIColor clearColor].CGColor;
1101
- marker.layer.position = CGPointZero;
1102
-
1103
- [self insertReactSubview:(UIView *) marker atIndex:index];
1104
-
1105
- [markers addObject:@{@"id": marker.identifier,
1106
- @"title": marker.title,
1107
- @"description": marker.subtitle,
1108
- @"coordinate": @{
1109
- @"latitude": @(location.latitude),
1110
- @"longitude": @(location.longitude)
1111
- }
1112
- }];
1113
-
1114
- index++;
1115
- }
1116
-
1117
- id event = @{@"markers": markers};
1118
- if (self.onKmlReady) self.onKmlReady(event);
1119
- #else
1120
- REQUIRES_GOOGLE_MAPS_UTILS();
1121
- #endif
1122
1166
  }
1123
1167
 
1124
1168
 
@@ -1128,7 +1172,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1128
1172
  return;
1129
1173
  }
1130
1174
  self.onIndoorBuildingFocused(@{
1131
- @"IndoorBuilding": @{
1175
+ @"indoorBuilding": @{
1132
1176
  @"activeLevelIndex": @0,
1133
1177
  @"underground": @false,
1134
1178
  @"levels": [[NSMutableArray alloc]init]
@@ -1149,7 +1193,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1149
1193
  return;
1150
1194
  }
1151
1195
  self.onIndoorBuildingFocused(@{
1152
- @"IndoorBuilding": @{
1196
+ @"indoorBuilding": @{
1153
1197
  @"activeLevelIndex": @(building.defaultLevelIndex),
1154
1198
  @"underground": @(building.underground),
1155
1199
  @"levels": arrayLevels
@@ -1169,7 +1213,7 @@ id regionAsJSON(MKCoordinateRegion region) {
1169
1213
  i++;
1170
1214
  }
1171
1215
  self.onIndoorLevelActivated(@{
1172
- @"IndoorLevel": @{
1216
+ @"indoorLevel": @{
1173
1217
  @"activeLevelIndex": @(i),
1174
1218
  @"name": level.name,
1175
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