Google Maps for iOS, swift – How to show entire polyline between markers?

I am trying to fit a polyline in the google map view. The polyline was acquired through overview_polyline in the google maps directions api.

Wondering how I would be able to convert an encoded polyline into something that can be worked with. I need to fit the polyline in the map view. All i have found out to do is fit the bounds to show all markers but not showcase the entire polyline.

  • Why reloadData is showing error for my tableView inside ViewController?
  • Query Available iOS Disk Space with Swift
  • Firebase removing observers
  • How to animate only x Axis in core plot?
  • Draw dotted (not dashed!) line, with IBDesignable in 2017
  • Got Unrecognized selector -replacementObjectForKeyedArchiver: crash when implementing NSCoding in Swift
  • func fitAllMarkers()
    {
    
        var bounds = GMSCoordinateBounds()
    
        for marker in markers
        {
            bounds = bounds.includingCoordinate(marker.position)
        }
    
        googleMapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds))
    
    }
    

    3 Solutions Collect From Internet About “Google Maps for iOS, swift – How to show entire polyline between markers?”

    For Swift 2.0 Google Maps, to make your map view fit the polyline of the route you are drawing:

    let path: GMSPath = GMSPath(fromEncodedPath: route)!
        routePolyline = GMSPolyline(path: path)
        routePolyline.map = mapView
    
    
        var bounds = GMSCoordinateBounds()
    
        for index in 1...path.count() {
            bounds = bounds.includingCoordinate(path.coordinateAtIndex(index))
        }
    
        mapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds))
    

    Thought the question has an accepted answer,

    Still one point which has not been discussed.

    GMSPolyLine has a property “.path” which can used to bound the map with the complete polyline itself.

    mapView.animate(with: GMSCameraUpdate.fit(GMSCoordinateBounds(path: self.polyLineObject.path!), withPadding: 10))
    
    • mapView is an instance of GMSMapView()
    • polyLineObject is an instance of GMSPolyLine()

    With this approach, It’ll do the job for sure.

    Coz it has Done for me..

    Hope it Helps..

    **For Swift 3.0 Google Maps, to make your map view fit the polyline of the route you are drawing:** 
    
    
    func fitAllMarkers(_path: GMSPath) {
            var bounds = GMSCoordinateBounds()
            for index in 1..._path.count() {
                bounds = bounds.includingCoordinate(_path.coordinate(at: index))
            }
            mapView.animate(with: GMSCameraUpdate.fit(bounds))
        }