Время, оцененное с трафиком

Есть способ знать время, оцененное между 2 CLLocations, и которое в этом вычислении имело в виду трафик?

0
задан 02.04.2016, 20:29
1 ответ

Да, возможно но с оттенками. Не возможно конфигурировать прямо тему трафика, но ты должен знать, что всегда делается вычисление маршрута в зависимости от настоящих условий маршрута, а именно, также имеется в виду трафик, в случае когда доступен в этой зоне.

Например, чтобы вычислять маршрут между двумя точками, ты можешь делать это так:

let source = MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 48.855990, longitude: 2.350923), addressDictionary: nil)
let destination = MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 48.845572, longitude: 2.312584), addressDictionary: nil)

let request = MKDirectionsRequest()
request.source = MKMapItem(placemark: source)
request.destination = MKMapItem(placemark: destination)
request.transportType = .Automobile

let directions = MKDirections(request: request)
directions.calculateDirectionsWithCompletionHandler { (response, error) in

    guard let res = response where res.routes.count != 0 else {

        // No hay rutas
        return
    }

    // Cogemos la primera ruta (por ejemplo) y mostramos los datos
    let ruta0 = res.routes.first
    print(ruta0?.distance) // Distancia en metros
    print(ruta0?.expectedTravelTime) // Tiempo en segundos

}

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

Если ты хочешь, чтобы он возвратил тебе более маршрута как альтернатива, ты должен использовать следующее свойство:

request.requestsAlternateRoutes = true

С другой стороны, чтобы только что улучшил вычисление и оно дало максимальную возможную информацию, ты можешь играть со свойствами request.departureDate и request.arrivalDate так что ты смог получать время, оцененное в зависимости от конкретного часа. Если ты используешь их, и дата вывода - в будущее (например) он будет иметь в виду трафик "обычный" или уважаемый этого маршрута и ты сможешь доставать альтернативные маршруты. С другим свойством то же самое, если ты будешь конфигурировать час прибытия, даст тебе лучший час вывода в зависимости от обычного трафика.

В конце концов, если с этим это не достаточно, используй Google Maps SDK for iOS, с которым ты сможешь доставать всю эту информацию и больше.

1
ответ дан 24.11.2019, 14:39