Dostosowywanie ustawień routingu

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

Termin krótszy 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ą, ponieważ może to być zła opcja. Jeśli np. 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ą wyznaczania trasy.

Pobieranie szczegółów trasy

Aby określić, która strategia trasy jest optymalnym wyborem dla danego punktu drogi, wywołaj getRouteInfoForDestination(), aby uzyskać szczegóły trasy domyślnej, najlepszej trasy i najkrótszej 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ą funkcji GMSNavigationRoutingOptions, ustawiając wartość routingStrategy podczas wywołania funkcji setDestinations().

routingStrategy przyjmuje jedną z tych wartości:

Wartość wyliczeniaOpis
GMSNavigationRoutingStrategyDefaultBest Nadaje priorytety trasom na podstawie domyślnego modelu kosztów w pakiecie Navigation SDK. Jest to domyślna strategia kierowania.
GMSNavigationRoutingStrategyShorter Uwzględnia odległość. Trasa o najwyższym priorytecie jest najkrótsza spośród zwróconych.

Przykład

Poniższy przykładowy kod pokazuje, jak ustawić strategię wyznaczania trasy krótszej.

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 do nawigacji na iOS wyklucza trasy, które obejmują przeprawy promowe. Jeśli chcesz uwzględniać opcje promów w ramach swoich tras, możesz dostosować to ustawienie trasy, aby uwzględnić segmenty promów. W tym celu ustaw wartość avoidsFerries na false.

Przykład

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Format informacji o trasie

W przypadku strategii wyznaczania krótszej trasy w wyświetleniu wzdłuż trasy wyświetlane są szczegóły odległości. Zamiast tego możesz użyć informacji o przewidywanym czasie dotarcia.

Konfigurowanie formatu informacji o trasie

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

Wartość wyliczeniaOpis
GMSNavigationRouteCalloutFormatDefault Wyświetla pozostały czas, gdy używana jest domyślna strategia wyznaczania trasy. Wyświetla pozostały dystans przy użyciu strategii wyznaczania trasy krótszą drogą
GMSNavigationRouteCalloutFormatTime Wyświetla pozostały czas.
GMSNavigationRouteCalloutFormatDistance Pokazuje odległość do celu.

Przykład

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;