DDLogWarning doesn't exist; DDLogWarn does!
Include the current view's transform when checking for an invalid frame. Any views passed into this method should *NOT* have any transforms applied to them. Apply the transform to a subview and then add it to the target view
Use MKMapPoint to calculate the headings for the start and end annotations instead of asking the map view to convert coordinates to screen points; the previous method breaks pretty horrifically when the map view hasn't loaded yet.
Don't use hasTransform. Instead, set the transform to the identity and check to see if it has changed.
Sanity check before trying to convert the spatial reference