Невозможно проложить маршрут с помощью MKDirectionsTransportType.transit - PullRequest
0 голосов
/ 30 мая 2019

Приведенный ниже код позволяет пользователю нажимать на контроллер сегмента, чтобы выбрать предпочтительный способ транспортировки, и возвращает указания от начальной точки до конечной точки.Я могу успешно проложить маршрут для пешеходов и вождения.

@objc func handleDirectionSegmentControl(_ sender: UISegmentedControl){
    //transport = MKDirectionsTransportType.automobile
    switch sender.selectedSegmentIndex {
    case 0:
        transport = MKDirectionsTransportType.walking
    case 1:
        transport = MKDirectionsTransportType.automobile
    case 2:
        transport = MKDirectionsTransportType.transit
    default:
        print("Invalid index selected in Segment Controller")
    }

func getDirections(){
    let request = createDirectionsRequest(from: location)
    let directions = MKDirections(request: request)
    resetMapView(withNew: directions)
    directions.calculate { [unowned self](response, error) in
        for route in response.routes {
            let steps = route.steps
            self._steps = steps    
            self.mapView.addOverlay
            self.mapView.setVisibleMapRect(route.polyline.boundingMapRect, animated: true)
        }
    }
}

func createDirectionsRequest(from coordinate: CLLocationCoordinate2D)-> MKDirections.Request {
    let destinationCoordinate       = getCenterLocation(for: mapView).coordinate
    let startingLocation            = MKPlacemark(coordinate: coordinate)
    let destination                 = MKPlacemark(coordinate: destinationCoordinate)
    let request                     = MKDirections.Request()
    request.source                  = MKMapItem(placemark: startingLocation)
    request.destination             = MKMapItem(placemark: destination)
    request.transportType           = transport   //From Segment Controller
    request.requestsAlternateRoutes = true
    return request
}

Я использую точки отправления и назначения в Нью-Йорке, в котором определенно есть варианты общественного транспорта между пунктами начала / окончания.На моем iPhone (с Apple Maps) функция яблочных карт позволяет отображать параметры общественного транспорта между теми же начальными / конечными точками, в которых происходит сбой моего приложения.

Поскольку маршруты движения / ходьбы успешно получены, ямне интересно, есть ли дополнительная функция, которую мне нужно реализовать, чтобы заставить работать .transit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...