Dostosowywanie ustawień routingu

Obliczenia trasy (z uwzględnieniem zmiany trasy) zwracają domyślną najlepszą trasę, która zajmuje najkrótszy czas nawigacji. Możesz jednak zmienić strategię wyznaczania trasy, tak aby zwracana była krótsza trasa alternatywna.

Termin krótszy oznacza trasę, która jest najkrótszą spośród optymalnej trasy w oparciu o nasz domyślny model kosztów. Krótsza trasa może nie być absolutnie najkrótszą trasą, ponieważ taka opcja może być słabą alternatywą. Jeśli np. najkrótsza trasa ma 10 km, a nawigacja zajmuje 50 minut, a inna – 15 km, ale poruszanie się zajmuje tylko 20 minut, drugi wybór jest optymalny, ponieważ poświęcenie 30 minut na zredukowanie 5 km nie jest dobrym rozwiązaniem.

Strategia wyznaczania trasy dla trasy nie zmieni się, dopóki trasa nie zostanie zakończona. Aby zmienić strategię wyznaczania trasy dla istniejącej podróży, musisz wyczyścić miejsca docelowe i zresetować je ponownie z użyciem nowej strategii.

Pobieram szczegóły trasy

Aby ustalić, która strategia jest optymalna w przypadku danego punktu na trasie, wywołaj funkcję getRouteInfoForDestination(), by uzyskać szczegóły zarówno domyślnej, jak i najkrótszej trasy. Szczegóły obejmują czas trwania i odległość do docelowego punktu na trasie.

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

Przykład

Poniższy przykładowy kod pokazuje, jak uzyskać szczegóły trasy dla każdej z dwóch 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){...}];

Konfigurowanie strategii routingu

Strategię routingu możesz skonfigurować, używając funkcji GMSNavigationRoutingOptions i ustawiając routingStrategy podczas wywoływania funkcji setDestinations().

routingStrategy przyjmuje jedną z tych wartości wyliczeniowych:

Wartość wyliczeniaOpis
GMSNavigationRoutingStrategyDefaultBest Ranking tras według domyślnego modelu kosztów pakietu Navigation SDK. To jest domyślna strategia routingu.
GMSNavigationRoutingStrategyShorter Ranking tras według odległości. Trasa o najwyższej pozycji w rankingu to najkrótsza ze zwróconych tras.

Przykład

Poniższy przykładowy kod pokazuje, jak ustawić krótszą strategię routingu 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 obejmujące promy

Domyślnie pakiet SDK nawigacji na iOS wyklucza trasy obejmujące promy. Jeśli wolisz uwzględniać w trasach opcje promów, możesz dostosować to ustawienie routingu, aby udostępnić podróż promom. W tym celu ustaw avoidsFerries na false.

Przykład

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Format objaśnienia trasy

W ramach strategii wyznaczania tras na krótszym czasie objaśnienia na trasie wyświetlają informacje o odległości. Możesz jednak użyć objaśnień dotyczących szacowanego czasu dotarcia na miejsce.

Konfigurowanie formatu objaśnienia trasy

Format objaśnienia trasy możesz zmienić, ustawiając routeCalloutFormat w GMSMapView. routeCalloutFormat przyjmuje jedną z tych wartości wyliczeniowych:

Wartość wyliczeniaOpis
GMSNavigationRouteCalloutFormatDefault Wyświetla pozostały czas, gdy używana jest domyślna strategia wyznaczania tras. Wyświetla pozostały dystans, gdy używana jest strategia wyznaczania tras na krótszej trasie
GMSNavigationRouteCalloutFormatTime Wyświetla pozostały czas.
GMSNavigationRouteCalloutFormatDistance DDisplays pokazuje pozostały dystans.

Przykład

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;