title: Multiple Swift MapKit routes in order
body: <p>I want to add the routes of different checkpoints together. Everytime, the routes are ordered in a random way (when executing print(step.instructions)). But up to the point when print(nextCheckpoint, previousCheckpoint) is executed, they're perfectly ordered. Thus, there seems to be a problem (where the different routes are being shuffled up) when creating the MKDirections Request. For your information: In the end, every route is plotted and complete, just not in the desired order. Here's the code:</p>
  <pre><code>func showExamRoute(checkpoints: Array&lt;Checkpoints&gt;) {
  // 1. Retrieve all checkpoints and add an annotation to them
  // 2. Plot Poly-line to the corresponding checkpoints
  let numberOfCheckpoints = checkpoints.count - 1
  for index in 0...numberOfCheckpoints {
      let checkpoint = checkpoints[index]
      let checkpointLocation2D = CLLocationCoordinate2D(latitude: checkpoint.latitude, longitude: checkpoint.longitude)
      checkpointsArray.append(checkpointLocation2D)
      let annotation = CustomAnnotationPlace(title: &quot;1&quot;, coordinate: checkpointLocation2D, info: &quot;checkpoint&quot;)
      mapView.addAnnotation(annotation)
  }
  let counterTo = checkpointsArray.count
  var nextCheckpoint: CLLocationCoordinate2D!
  var previousCheckpoint: CLLocationCoordinate2D!
  
  for counter in 1...counterTo {
      if counter == counterTo {
          nextCheckpoint = checkpointsArray[0]
          previousCheckpoint = checkpointsArray[counter - 1]
      } else {
          nextCheckpoint = checkpointsArray[counter]
          previousCheckpoint = checkpointsArray[counter - 1]
      }
      print(nextCheckpoint, previousCheckpoint)
      let destinationLocation = MKPlacemark(coordinate: nextCheckpoint)
      let startingLocation = MKPlacemark(coordinate: previousCheckpoint)
      let request = MKDirections.Request()
      request.source = MKMapItem(placemark: startingLocation)
      request.destination = MKMapItem(placemark: destinationLocation)
      request.transportType = .automobile
      request.requestsAlternateRoutes = false
      let directions = MKDirections(request: request)
      directions.calculate { [unowned self] (response, error) in
          guard let response = response else { return }
          let route = response.routes[0]
          self.mapView.addOverlay(route.polyline)
          self.mapView.setVisibleMapRect(route.polyline.boundingMapRect, animated: true)
          let steps = route.steps
          for i in 0...steps.count - 1 {
              let step = steps[i]
              print(step.instructions)
              examSteps.append(step)
          }
      }
  }
  </code></pre>
  <p>}</p>
  <p>Thanks for your help!</p>