Based from this blog, you need first to add the property let locationManager = CLLocationManager() that  will add and instantiate a CLLocationManager property named locationManager.
Next, find viewDidLoad() and add these two lines to the bottom that will make MapViewController the delegate of locationManager and request access to the user’s location.
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
From this related thread, you have to instantiate the CLLocationManager class in viewDidLoad() like this:
// Ask for Authorisation from the User.
self.locationManager.requestAlwaysAuthorization() 
// For use in foreground
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    locationManager.startUpdatingLocation()
}
Then in CLLocationManagerDelegate method you can get user's current location coordinates:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    var locValue:CLLocationCoordinate2D = manager.location.coordinate
    print("locations = \(locValue.latitude) \(locValue.longitude)")
}
Then to add a marker, create a GMSMarker object that includes a position and title, and set its map. The following example demonstrates how to add a marker to an existing GMSMapView object. The marker is created at coordinates 10,10, and displays the string "Hello world" in an info window when clicked.
let  position = CLLocationCoordinate2DMake(10, 10)
let marker = GMSMarker(position: position)
marker.title = "Hello World"
marker.map = mapView
Lastly, make a route between 2 points, you can check these links:
Now in createRoute method give that city name or what ever you want
  as origin like this:
@IBAction func createRoute(sender: AnyObject) {
    let addressAlert = UIAlertController(title: "Create Route", message: "Connect locations with a route:", preferredStyle:
UIAlertControllerStyle.Alert)
    addressAlert.addTextFieldWithConfigurationHandler { (textField) -> Void in
        //give a origin for route
        textField.text = self.currentLocationName
        textField.userInteractionEnabled = false
    }
    addressAlert.addTextFieldWithConfigurationHandler { (textField) -> Void in
        textField.placeholder = "Destination?"
    }
    let createRouteAction = UIAlertAction(title: "Create Route", style: UIAlertActionStyle.Default) { (alertAction) -> Void in
        let origin = (addressAlert.textFields![0] as! UITextField).text as String
        let destination = (addressAlert.textFields![1] as! UITextField).text as String
        self.mapTasks.getDirections(origin, destination: destination, waypoints: nil, travelMode: nil, completionHandler: {
(status, success) -> Void in
                  if success {
                      self.configureMapAndMarkersForRoute()
                      self.drawRoute()
                      self.displayRouteInfo()
                  }
                  else {
                      println(status)
                  }
              })
          }
    let closeAction = UIAlertAction(title: "Close", style: UIAlertActionStyle.Cancel) { (alertAction) -> Void in
    }
    addressAlert.addAction(createRouteAction)
    addressAlert.addAction(closeAction)
    presentViewController(addressAlert, animated: true, completion: nil)
}
First, get all points coordinates which are coming in route then add
  these points latitude and longitude in path in will draw path
  according to that
     GMSCameraPosition *cameraPosition=[GMSCameraPosition cameraWithLatitude:18.5203 longitude:73.8567 zoom:12];
        _mapView =[GMSMapView mapWithFrame:CGRectZero camera:cameraPosition];
        _mapView.myLocationEnabled=YES;
        GMSMarker *marker=[[GMSMarker alloc]init];
        marker.position=CLLocationCoordinate2DMake(18.5203, 73.8567);
        marker.icon=[UIImage imageNamed:@"aaa.png"] ;
        marker.groundAnchor=CGPointMake(0.5,0.5);
        marker.map=_mapView;
        GMSMutablePath *path = [GMSMutablePath path];   
        [path addCoordinate:CLLocationCoordinate2DMake(@(18.520).doubleValue,@(73.856).doubleValue)];
        [path addCoordinate:CLLocationCoordinate2DMake(@(16.7).doubleValue,@(73.8567).doubleValue)];
        GMSPolyline *rectangle = [GMSPolyline polylineWithPath:path];
        rectangle.strokeWidth = 2.f;
        rectangle.map = _mapView;
        self.view=_mapView;
Hope this helps!