From 66030603a1808ef2c055f0abe2ab02f5e47cdf4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20B=C4=99tka?= <37906388+mateki0@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:21:45 +0100 Subject: [PATCH] fix(iOS): removing polylines on iOS with googleProvider (#4973) * fix: removing polylines on ios with googleProvider * chore: code format --- ios/AirGoogleMaps/AIRGoogleMapPolyline.h | 1 + ios/AirGoogleMaps/AIRGoogleMapPolyline.m | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolyline.h b/ios/AirGoogleMaps/AIRGoogleMapPolyline.h index 83d8956942..7774bd4c17 100644 --- a/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +++ b/ios/AirGoogleMaps/AIRGoogleMapPolyline.h @@ -19,6 +19,7 @@ @property (nonatomic, strong) AIRGMSPolyline *polyline; @property (nonatomic, strong) NSArray *coordinates; @property (nonatomic, copy) RCTBubblingEventBlock onPress; +@property (nonatomic, strong) GMSMapView *originalMap; @property (nonatomic, strong) UIColor *strokeColor; @property (nonatomic, strong) NSArray *strokeColors; diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolyline.m b/ios/AirGoogleMaps/AIRGoogleMapPolyline.m index 904e2d215d..a03d871539 100644 --- a/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +++ b/ios/AirGoogleMaps/AIRGoogleMapPolyline.m @@ -29,11 +29,25 @@ -(void)setCoordinates:(NSArray *)coordinates _coordinates = coordinates; GMSMutablePath *path = [GMSMutablePath path]; - for(int i = 0; i < coordinates.count; i++) + + if (!coordinates || coordinates.count == 0) { + _polyline.map = nil; // Remove polyline from the map + return; + } + + for (int i = 0; i < coordinates.count; i++) { [path addCoordinate:coordinates[i].coordinate]; } + if (!_originalMap) { + _originalMap = _polyline.map; // Store the original map + } + + if (!_polyline.map) { + _polyline.map = _originalMap; + } + _polyline.path = path; [self configureStyleSpansIfNeeded];