Dostosowywanie ustawień routingu

Obliczenia trasy (w tym przekierowanie) zwracają trasę, która zajmuje najmniej czasu na przejazd jako domyślną najlepszą trasę. Możesz jednak zmienić strategię routingu, aby zamiast tego zwracana była krótsza z możliwych tras.

Termin krótszy oznacza najkrótszą z optymalnych tras na podstawie naszego domyślnego modelu kosztów. Krótsza trasa może nie być absolutnie najkrótszą, ponieważ może to być zła alternatywa. Jeśli na przykład najkrótsza trasa ma długość 10 km i trwa 50 minut, a inna trasa ma długość 15 km, ale 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 kompromisem.

Gdy ustawisz strategię wyznaczania trasy dla podróży, nie będzie ona się zmieniać, dopóki podróż się nie zakończy. Aby zmienić strategię wyznaczania trasy dla istniejącej podróży, musisz wyczyścić miejsca docelowe i ustawić je ponownie z nową strategią.

Pobieranie szczegółów trasy

Aby określić, która strategia trasy jest optymalnym wyborem w przypadku danego punktu orientacyjnego, wywołaj funkcję getRouteInfoForDestination(), aby uzyskać szczegóły trasy domyślnej najlepszej trasy i najkrótszej możliwej trasy. Szczegóły obejmują czas trwania i odległość do punktu docelowego.

Te informacje pochodzą z GMSNavigationRouteInfo w ramach wywołania zwrotnego.

Przykład

Poniższy przykładowy kod 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){...}];

Konfigurowanie strategii kierowania

Strategię kierowania możesz skonfigurować za pomocą elementu GMSNavigationRoutingOptions, ustawiając wartość routingStrategy podczas wywołania elementu setDestinations().

routingStrategy przyjmuje jedną z tych wartości wyliczenia:

Wartość wyliczeniaOpis
GMSNavigationRoutingStrategyDefaultBest Ustawia kolejność tras według domyślnego modelu kosztów w Navigation SDK. Jest to domyślna strategia routingu.
GMSNavigationRoutingStrategyShorter Uwzględnia odległość. Trasa o najwyższym priorytecie jest najkrótsza spośród 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 obejmujące przeprawy promowe

Domyślnie pakiet SDK nawigacji na iOS wyklucza trasy, które obejmują przeprawy promowe. Jeśli wolisz uwzględniać opcje promów w ramach swoich tras, możesz dostosować tę preferencję wytyczania, aby uwzględnić przejazdy promem, ustawiając wartość 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 wyznaczania krótszej trasy opisy na trasie wyświetlają szczegóły odległości. Możesz jednak użyć nakładek ETA.

Konfigurowanie formatu informacji o trasie

Format informacji o trasie możesz zmienić, ustawiając routeCalloutFormat w pliku GMSMapView. routeCalloutFormat przyjmuje jedną z tych wartości enumeracji:

Wartość wyliczeniaOpis
GMSNavigationRouteCalloutFormatDefault Wyświetla czas pozostały do dojazdu, gdy używana jest domyślna strategia wyznaczania trasy. Wyświetla odległość do pokonania przy użyciu strategii wyznaczania trasy po krótszej drodze.
GMSNavigationRouteCalloutFormatTime Wyświetla pozostały czas.
GMSNavigationRouteCalloutFormatDistance Pokazuje pozostały dystans.

Przykład

Poniższy przykładowy kod pokazuje, jak skonfigurować format powiadomienia o trasie.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;