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.
- package/android/build.gradle +45 -14
- package/android/generated/RCTAppDependencyProvider.h +25 -0
- package/android/generated/RCTAppDependencyProvider.mm +55 -0
- package/android/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/android/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/android/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/android/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/android/generated/ReactAppDependencyProvider.podspec +34 -0
- package/android/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +18 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +24 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +24 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +40 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +24 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +27 -0
- package/android/generated/jni/CMakeLists.txt +36 -0
- package/android/generated/jni/RNMapsSpecs-generated.cpp +68 -0
- package/android/generated/jni/RNMapsSpecs.h +31 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +984 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +853 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
- package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradlew +1 -2
- package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
- package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
- package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
- package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
- package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
- package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
- package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
- package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
- package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +38 -2
- package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
- package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +79 -3
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
- package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
- package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
- package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
- package/android/src/main/java/com/rnmaps/maps/MapView.java +1653 -1337
- package/ios/AirGoogleMaps/AIRGoogleMap.h +1 -0
- package/ios/AirGoogleMaps/AIRGoogleMap.m +106 -58
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +3 -1
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +2 -0
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +347 -243
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +197 -61
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +215 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +25 -0
- package/ios/AirMaps/AIRMap.h +2 -1
- package/ios/AirMaps/AIRMap.m +227 -236
- package/ios/AirMaps/AIRMapManager.m +6 -0
- package/ios/AirMaps/AIRMapMarker.h +1 -0
- package/ios/AirMaps/AIRMapMarker.m +165 -103
- package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
- package/ios/AirMaps/RNMapsAirModule.h +1 -1
- package/ios/AirMaps/RNMapsAirModule.mm +4 -3
- package/ios/AirMaps/RNMapsAirModuleDelegate.h +24 -0
- package/ios/AirMaps/RNMapsHostVewDelegate.h +17 -0
- package/ios/AirMaps/RNMapsMapView.mm +336 -307
- package/ios/AirMaps/RNMapsMarkerView.h +24 -0
- package/ios/AirMaps/RNMapsMarkerView.mm +427 -0
- package/ios/AirMaps/RNMapsMarkerViewManager.mm +21 -0
- package/ios/AirMaps/UIView +AirMap.m +20 -0
- package/ios/AirMaps/UIView+AirMap.h +11 -0
- package/ios/AirMaps.xcodeproj/project.pbxproj +60 -0
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.cpp +984 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.h +853 -0
- package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
- package/ios/generated/RNMapsSpecs/Props.h +1223 -0
- package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +603 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
- package/ios/generated/RNMapsSpecs/States.cpp +16 -0
- package/ios/generated/RNMapsSpecs/States.h +113 -0
- package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
- package/ios/generated/RNMapsSpecsJSI.h +268 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/ios/generated/module.modulemap +4 -0
- package/ios/generated/react-native-maps-generated-umbrella.h +14 -0
- package/lib/MapCircle.d.ts +1 -1
- package/lib/MapHeatmap.d.ts +2 -2
- package/lib/MapHeatmap.js +1 -1
- package/lib/MapMarker.d.ts +16 -3
- package/lib/MapMarker.js +58 -9
- package/lib/MapMarkerNativeComponent.js +0 -2
- package/lib/MapOverlay.d.ts +1 -0
- package/lib/MapOverlay.js +21 -9
- package/lib/MapPolygon.d.ts +1 -1
- package/lib/MapPolyline.d.ts +7 -7
- package/lib/MapView.d.ts +15 -27
- package/lib/MapView.js +109 -124
- package/lib/MapView.types.d.ts +1 -1
- package/lib/createFabricMap.d.ts +1 -0
- package/lib/createFabricMap.js +17 -4
- package/lib/decorateMapComponent.js +40 -0
- package/lib/specs/NativeAirMapsModule.d.ts +2 -2
- package/lib/specs/NativeComponentCallout.d.ts +46 -0
- package/lib/specs/NativeComponentCallout.js +9 -0
- package/lib/specs/NativeComponentCircle.d.ts +74 -0
- package/lib/specs/NativeComponentCircle.js +7 -0
- package/lib/specs/NativeComponentGoogleMapView.d.ts +15 -15
- package/lib/specs/NativeComponentGoogleMapView.js +1 -0
- package/lib/specs/NativeComponentGooglePolygon.d.ts +75 -0
- package/lib/specs/NativeComponentGooglePolygon.js +7 -0
- package/lib/specs/NativeComponentMapView.d.ts +28 -36
- package/lib/specs/NativeComponentMapView.js +2 -3
- package/lib/specs/NativeComponentMarker.d.ts +258 -0
- package/lib/specs/NativeComponentMarker.js +19 -0
- package/lib/specs/NativeComponentOverlay.d.ts +67 -0
- package/lib/specs/NativeComponentOverlay.js +7 -0
- package/lib/specs/NativeComponentPolyline.d.ts +101 -0
- package/lib/specs/NativeComponentPolyline.js +7 -0
- package/package.json +27 -21
- package/react-native-maps.podspec +61 -16
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
828
|
+
success(filePath);
|
|
801
829
|
} else if ([result isEqualToString:@"base64"]) {
|
|
802
|
-
|
|
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
|
-
|
|
1144
|
+
[self setKMLData:[NSData dataWithContentsOfURL:url]];
|
|
1072
1145
|
} else {
|
|
1073
|
-
|
|
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
|
-
@"
|
|
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
|
-
@"
|
|
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
|
-
@"
|
|
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
|
-
|
|
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
|
|
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"];
|