Транзит MKDirectionsRequest выдает нулевую ошибку Error Domain=MKErrorDomain Code=5 "(null)"
Я пытаюсь использовать MapKit Directions Request для получения транзитных направлений между двумя координатами.
Когда я переключаюсь на другие (не Transit) типы, приведенный ниже код работает, но когда я переключаюсь на Transit, он выдает ошибку, которая нигде не отображается в документации Apple.
Оба места (источник и пункт назначения) находятся в Нью-Йорке, поэтому, безусловно, должны быть доступны маршруты транзита.
Сообщение об ошибке:
Error Domain=MKErrorDomain Code=5 "(null)"
Фрагмент кода:
override func viewDidLoad() {
super.viewDidLoad()
let request = MKDirectionsRequest()
// Set request parameters
request.source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 40.7127, longitude: -74.0059), addressDictionary: nil))
request.destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 40.6761, longitude: -73.9521), addressDictionary: nil))
request.requestsAlternateRoutes = true
// Set tranport type parameter (anything other than .Transit works)
request.transportType = .Transit
let directions = MKDirections(request: request)
directions.calculateDirectionsWithCompletionHandler { response, error in
print(response)
guard let routes = response?.routes else {
print(error?.description)
return
}
// Prints step-by-step directions
for r in routes {
print("New route")
for step in r.steps {
print(" " + step.instructions)
}
}
}
}
Любой совет, что я могу делать не так в конкретном случае с Транзитом? Спасибо!
1 ответ
Направления маршрутизации для транзита в настоящее время не поддерживаются (iOS 9). MKDirectionsRequest
вернет нулевую ошибку, как вы заметили.
Это только кажется, документировано непосредственно в заголовках MapKit. Посмотрите на комментарий для Transit
тип.
// MKDirectionsTypes.h
@available(iOS 7.0, *)
public struct MKDirectionsTransportType : OptionSetType {
public init(rawValue: UInt)
public static var Automobile: MKDirectionsTransportType { get }
public static var Walking: MKDirectionsTransportType { get }
@available(iOS 9.0, *)
public static var Transit: MKDirectionsTransportType { get } // Only supported for ETA calculations
public static var Any: MKDirectionsTransportType { get }
}