     }
 
     public func resetCurrentRoute() {
+
+        // Pick and Driver car
+        lastRouteCoordinate = nil
+        firstRouteCoordinate = nil
+
+        // Visible Route
         if let visibleRoute = visibleRoute {
             removeAnnotation(visibleRoute)
             self.visibleRoute = nil
         }
-        lastRouteCoordinate = nil
     }
 
     fileprivate func resetPickupDashedLine() {

        // Remove if need
        resetPickupDashedLine()

        var coordinates = [originPoint.coordinate,
                          pickup]

        // Source
        let polyline = MGLPolylineFeature(coordinates: &coordinates, count: UInt(coordinates.count))

    func updateCurrentTripLayout(_ tripObj: TripObj) {

        // Pickup
        // Hack to make sure Pickup point is at the begining point of visible route
        let pickup = tripObj.pickup
        if let firstRouteCoordinate = firstRouteCoordinate {
            pickup?.coordinate = firstRouteCoordinate
        }
        addPickupPoint(pickup)
        drawPickupRoute(pickup?.coordinate)

        // Driver
        addDriverPoint(tripObj)
