Dostosowywanie ustawień routingu

Obliczenia trasy (w tym wyznaczanie nowej trasy) zwracają trasę, której pokonanie zajmuje najmniej czasu, jako domyślną najlepszą trasę. Możesz jednak zmienić strategię routingu, aby zamiast tego 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ż może być słabą alternatywą. Jeśli na przykład najkrótsza trasa ma 10 km i jej pokonanie zajmuje 50 minut, a inna trasa ma 15 km, ale jej pokonanie zajmuje tylko 20 minut, 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 przejazdu nie zmieni się ona do czasu jego zakończenia. Aby zmienić strategię wyznaczania trasy dla istniejącego przejazdu, musisz usunąć miejsca docelowe i ustawić je ponownie z nową strategią wyznaczania trasy.

Pobieranie szczegółów trasy

Aby określić, która strategia wyznaczania trasy jest optymalna dla danego punktu na trasie, wywołaj getRouteInfoForDestination(), aby uzyskać szczegóły trasy zarówno dla domyślnej najlepszej trasy, jak i bezwzględnie krótszej trasy. Szczegóły obejmują czas trwania i odległość do punktu pośredniego.

Te informacje pochodzą z pola GMSNavigationRouteInfo w wywołaniu zwrotnym.

Przykład

Poniższy przykładowy kod pokazuje, jak uzyskać szczegóły trasy dla każdej z 2 strategii wyznaczania trasy.

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 typu wyliczeniowego:

Wartość typu wyliczeniowegoOpis
GMSNavigationRoutingStrategyDefaultBest Porządkuje trasy według domyślnego modelu kosztów pakietu Navigation SDK. Jest to domyślna strategia routingu.
GMSNavigationRoutingStrategyShorter Ustawia kolejność tras według odległości. Najwyżej oceniana trasa jest najkrótsza ze wszystkich 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, które obejmują promy

Domyślnie pakiet Navigation SDK na iOS wyklucza trasy, które obejmują promy. Jeśli chcesz uwzględniać opcje promowe na trasach, możesz dostosować to ustawienie, aby wyświetlać odcinki podróży 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ć objaśnień ETA.

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 typu wyliczeniowego:

Wartość typu wyliczeniowegoOpis
GMSNavigationRouteCalloutFormatDefault Wyświetla pozostały czas podczas korzystania z domyślnej strategii wyznaczania najlepszej trasy. Wyświetla pozostałą odległość, gdy używana jest strategia wyznaczania krótszej trasy.
GMSNavigationRouteCalloutFormatTime Wyświetla pozostały czas.
GMSNavigationRouteCalloutFormatDistance D Wyświetla pozostałą odległość.

Przykład

Poniższy przykładowy kod pokazuje, jak skonfigurować format objaśnienia trasy.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;