Swift 3: How to remove the tracked polyline in Google map

给你一囗甜甜゛ 提交于 2019-12-24 09:33:06

问题


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 working.

var polyline = GMSPolyline()
   polyline.map = nil 

this is working to remove tracked polyline, but when I'm maked the markers and tap it, marker can not sow the info window.

mapView.clear()

Thank you


回答1:


Solution:

  1. create polyline: teaching polyline by GoogleMapsAPIs
  2. create variable oldPolylineArr/oldPolyline type GMSPolyline/GMSPolyline_Array
  3. store the polyline to the oldPolyline
  4. remove the polyline

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



回答2:


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



回答3:


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


来源:https://stackoverflow.com/questions/44427897/swift-3-how-to-remove-the-tracked-polyline-in-google-map

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!