I have draw the polylines, but I don\'t no that what coding can remove the tracked polyline in the google map. I\'m trying some coding in below.
this is no wor
Solution:
Sample Coding:
//Step 1:
var mapView = GMSMapView()
let path = GMSMutablePath()
path.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
path.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
path.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
path.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))
path.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
let rectangle = GMSPolyline(path: path)
//Step 2:
var oldPolylineArr = [GMSPolyline]()
Array
//Step 3:
oldPolyline.append(rectangle)
//Step 4:
for p in (0 ..< oldPolylineArr.count) {
oldPolylineArr[p].map = nil
}
is NOT Array
//Step 3:
oldPolyline = polyline
//Step 4:
oldPolyline.map = nil
Maybe a better solution: define your routePolyline as an optional variable then each time you want assign it a path, check it with if let... and set map to nil
if let routePolyline = routePolyline {
routePolyline.map = nil
}
// create new polyline
let path: GMSPath = GMSPath(fromEncodedPath: p)!
routePolyline = GMSPolyline(path: path)
routePolyline?.map = mapView
Below is the approach to remove travelled polyline from google map iOS Swift:
var oldPolyLines = [GMSPolyline]() /* Global Array Variable of your Class */
Put below code where you are parsing routes and getting new polyline from direction API.
if self.oldPolyLines.count > 0 {
for polyline in self.oldPolyLines {
polyline.map = nil
}
}
self.oldPolyLines.append(yourNewPolyline)
yourNewPolyLine.map = self.mapView