2016-10-10 1 views
2
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init]; 
request.source = source; 
request.destination = destination; 
request.transportType = MKDirectionsTransportTypeAny; 

MKDirections *directions = [[MKDirections alloc] initWithRequest:request]; 
[directions calculateETAWithCompletionHandler:^(MKETAResponse * _Nullable response, NSError * _Nullable error) { 
    ... 
}]; 

Прежде всего, response.transportType здесь MKDirectionsTransportTypeWalking. Почему он выбирает это?Как поддерживать несколько типов транспортных с MKDirectionsRequest

Во-вторых, что я действительно хочу, это время в пути для всех 3 видов транспорта, транзита, ходьбы и автомобилей. Каков наилучший способ получить все три? Кажется нецелесообразным создавать 3 объекта MKDirectionsRequest и запускать этот код 3 раза с разными типами транспорта. Конечно, Apple ожидала, что нам понадобится способ сразу получить все 3 сразу?

ответ

1

Чтобы ответить на ваш первый вопрос -

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

Для второй попытки передать несколько вариантов с '|' например. MKDirectionsTransportTypeWalking | MKDirectionsTransportTypeDriving. Не уверен, что это будет работать или нет, но стоит попробовать. Еще одно замечание: MKDirectionsTransportTypeTransit поддерживается только для ETA и не возвращает направления.

+0

Спасибо за предложения. Я не думаю, что есть ответ на мою проблему (кроме создания трех разных MKDirectionRequests и MKDirections). +1 для предложений. – soleil