title: Displaying MKRoute on MKMapView in iOS7
body: <p>I'm using MKDirectionsRequest to find a MKRoute between two points. 
  The response will be displayed on the MKMapView using this code:</p>
  
  <pre><code>MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
      [directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error)
       {
           if (error)
           {
               NSLog(@"Error : %@", error);
           }
           else
           {
               [_mapView removeOverlays:_mapView.overlays];
               for (MKRoute *route in response.routes)
               {
                   [_mapView insertOverlay:route.polyline atIndex:0 level:MKOverlayLevelAboveRoads];
               }
           }
       }];
  </code></pre>
  
  <p>My question is, if there is a proper way to update the MKRoute if the user is moving. Atm I'm using</p>
  
  <pre><code>- (void)mapView:(MKMapView *)aMapView didUpdateUserLocation:(MKUserLocation *)aUserLocation
  </code></pre>
  
  <p>to recognize movement and in this method I'm removing the MKRoute overlay and calculating and adding the new with the new user location.
  I'm wondering if there is a way to compute the route only one time and updating the overlay programmatically?</p>
  
  <p><strong>Edit:</strong>
  I found this <a href="https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKRouteStep_class/Reference/Reference.html#//apple_ref/occ/cl/MKRouteStep">https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKRouteStep_class/Reference/Reference.html#//apple_ref/occ/cl/MKRouteStep</a> in Apples Dev Docs.
  I guess i have to do something like</p>
  
  <pre><code>for (MKRoute *route in response.routes)
  {
     for (MKRouteStep *step in route.steps) 
     {
        [_mapView insertOverlay:step.polyline atIndex:0 level:MKOverlayLevelAboveRoads];
     }
  }
  </code></pre>
  
  <p>but how can i recognize which steps are <em>behind</em> the actual user location?</p>
  
  <p><strong>Edit:</strong> An other option could be to use a timer which triggers the event (removing the old overlay and adding the new one). What do you think?</p>
  
  <pre><code>[NSTimer scheduledTimerWithTimeInterval:15 target:self selector:@selector(addRouteOverlay) userInfo:nil repeats:YES];
  </code></pre>