Zarządzaj punktami na trasie

W tym dokumencie opisujemy, jak zarządzać ustawieniami punktów pośrednich w aplikacji za pomocą 2 funkcji:

  • Strona ustawień trasy drogi
  • Przesiadka

Określ stronę ustawienia wyznaczania trasy na drodze

Domyślnie pakiet SDK nawigacji na iOS znajduje najszybszą trasę do punktu pośredniego, ale nie gwarantuje, że pojazd znajdzie się na poboczu drogi, na którą czeka klient. Funkcja Ustawienia trasy dojazdu po stronie drogi pozwala upewnić się, że pojazd dotarł do właściwej strony drogi.

Jak to działa

Tworząc punkt na trasie do tego przystanku, ustawiasz preferencję dotarcia po określonej stronie drogi. Preferencję możesz określić na jeden z dwóch sposobów.

Preferowanie tej samej strony drogi

Podaj współrzędne geograficzne punktu na trasie, a potem ustawiasz flagę preferSameSideOfRoad wskazującą, że wolisz dotrzeć po tej samej stronie drogi co punkt pośredni – położony przy najbliższym chodniku.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

Nagłówek preferowanego segmentu

Podaj współrzędne geograficzne punktu na drodze, a następnie podaj kierunek preferredSegmentHeading odpowiadający kierunkowi ruchu po tej samej stronie drogi co czekający konsument.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

Pakiet SDK nawigacji wybiera segment drogi najbliżej punktu na trasie, którego kierunek pasa jest wyrównany (w zakresie +/- 55 stopni) do strony drogi, na której znajduje się punkt pośredni.

Ustaw preferencje przerwania

W niektórych miejscach kierowcy nie mają możliwości bezpiecznego zatrzymania się (np. na terenach podwyższonych, promach, w podziemiach i na innych obszarach o ograniczonym dostępie). Funkcja Stopover przenosi punkt pośredni do pobliskiego miejsca, jeśli lokalizacja nie jest odpowiednia do postoju pojazdu. Gdy ustawisz vehicleStopover na YES, punkt pośredni zostanie automatycznie przeniesiony podczas obliczania trasy, jeśli dostępna jest alternatywna lokalizacja.

Jak to działa

Ustawienie przystanków ustawia się podczas tworzenia punktu pośredniego dla tego przystanku. Aby to zrobić, ustaw preferencję przerwania w punkcie GMSNavigationMutableWaypoint, jak w tym przykładzie:

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];