Obliczenia trasy (w tym zmiany trasy) zwracają trasę, której pokonanie zajmuje najmniej czasu, jako domyślną najlepszą trasę. Możesz jednak zmienić strategię routingu, aby zwracać krótszą z alternatywnych tras.
Termin krótsza oznacza trasę, która jest najkrótsza spośród optymalnych tras na podstawie naszego domyślnego modelu kosztów. Krótsza trasa może nie być najkrótszą trasą, ponieważ ta opcja może być słabą alternatywą. Jeśli np. najkrótsza trasa ma 10 km i przejechanie jej zajmuje 50 minut, a inna trasa ma 15 km, ale przejechanie jej zajmuje tylko 20 minut, to druga opcja jest optymalna, ponieważ poświęcenie 30 minut na skrócenie trasy o 5 km nie jest dobrym rozwiązaniem.
Po ustawieniu strategii wyznaczania trasy dla podróży nie zmieni się ona do czasu jej zakończenia. Aby zmienić strategię wyznaczania trasy w przypadku istniejącej podróży, musisz usunąć miejsca docelowe i ponownie je ustawić, korzystając z nowej strategii.
Pobieranie szczegółów trasy
Aby określić, która strategia trasy jest optymalna dla danego punktu pośredniego, wywołaj funkcję getRouteInfoForDestination()
, aby uzyskać szczegóły trasy zarówno w przypadku domyślnej najlepszej trasy, jak i najkrótszej trasy bezwzględnej. Szczegóły obejmują czas trwania i odległość do punktu docelowego.
Te szczegóły pochodzą z GMSNavigationRouteInfo
w wywołaniu zwrotnym.
Przykład
Poniższy przykład kodu pokazuje, jak uzyskać szczegóły trasy dla każdej z 2 strategii routingu.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
Ustawianie strategii routingu
Strategię routingu możesz skonfigurować za pomocą GMSNavigationRoutingOptions
i ustawiając routingStrategy
podczas wywoływania setDestinations()
.
routingStrategy
przyjmuje jedną z tych wartości wyliczeniowych:
Wartość typu wyliczeniowego | Opis |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Klasyfikuje trasy według domyślnego modelu kosztów pakietu Navigation SDK. Jest to domyślna strategia routingu. |
GMSNavigationRoutingStrategyShorter | Porządkuje trasy według odległości. Najwyżej oceniana trasa jest najkrótsza spośród zwróconych. |
Przykład
Poniższy przykład kodu pokazuje, jak ustawić strategię wyznaczania krótszej trasy.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
Trasy z uwzględnieniem przepraw promowych
Domyślnie pakiet SDK do nawigacji na iOS wyklucza trasy, które obejmują promy. Jeśli chcesz uwzględniać w trasach opcje przeprawy promem, możesz dostosować to ustawienie, aby uwzględniać w podróży odcinki przeprawy promem, ustawiając avoidsFerries
na false
.
Przykład
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format objaśnienia trasy
W przypadku strategii routingu krótszej trasy wywołania wzdłuż trasy wyświetlają szczegóły odległości. Zamiast tego możesz używać wywołań w rozszerzonych reklamach tekstowych.
Konfigurowanie formatu wywołania trasy
Format wywołania trasy możesz zmienić, ustawiając parametr routeCalloutFormat
w pliku GMSMapView
. routeCalloutFormat
przyjmuje jedną z tych wartości wyliczeniowych:
Wartość typu wyliczeniowego | Opis |
---|---|
GMSNavigationRouteCalloutFormatDefault | Wyświetla pozostały czas podczas korzystania z domyślnej strategii wyznaczania najlepszej trasy. Wyświetla pozostałą odległość podczas korzystania ze strategii wyznaczania krótszej trasy. |
GMSNavigationRouteCalloutFormatTime | Wyświetla pozostały czas. |
GMSNavigationRouteCalloutFormatDistance | D Wyświetla pozostałą odległość. |
Przykład
Poniższy przykład kodu pokazuje, jak skonfigurować format wywołania trasy.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;