2016-10-10 100 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。爲什麼選擇那個?其次,我真正想要的是所有3種交通類型的交通時間,Transit,Walking和Automobile。得到這三個最好的方法是什麼?創建3個MKDirectionsRequest對象並使用不同的傳輸類型運行此代碼3次似乎很浪費。當然,蘋果公司預計我們需要一種方法讓所有3一次正確嗎?如何支持多種傳輸類型與MKDirectionsRequest

回答

1

要回答你的第一個問題 -

如果你去的地圖設置中設置首選傳輸類型可能會設置爲走這就是爲什麼你正在行走的方向。如果步行時間超過某個閾值,我相信它會被覆蓋。

對於第二次嘗試傳遞多個選項'|'例如。 MKDirectionsTransportTypeWalking | MKDirectionsTransportTypeDriving。不知道它是否會工作,但值得嘗試。還有一件事要注意MKDirectionsTransportTypeTransit只支持ETA,並且不返回路線。

+0

感謝您的建議。我不認爲我的問題有一個答案(除了創建3個不同的MKDirectionRequests和MKDirections)。 +1的建議,但。 – soleil