Zarządzaj punktami na trasie

Ten dokument opisuje, jak zarządzać ustawieniami punktów pośrednich w aplikacji za pomocą 2 funkcji:

  • Ustawienia routingu po stronie drogi
  • Przesiadka

Ustawianie preferencji dotyczących strony drogi

Domyślnie pakiet Navigation SDK na iOS znajduje najszybszą trasę do punktu pośredniego, ale nie gwarantuje, że użytkownik dotrze na odpowiednią stronę drogi, np. tę, po której czeka klient kierowcy świadczącego usługi wspólnych przejazdów. Funkcja ustawienia kierowania po stronie drogi pozwala upewnić się, że pojazd dotrze po właściwej stronie drogi.

Jak to działa

Ustawienie preferencji dotyczącej przyjazdu po określonej stronie drogi określasz podczas tworzenia punktu pośredniego dla danego przystanku. Preferencje możesz określić na 2 sposoby.

Preferuj tę samą stronę drogi

Podajesz współrzędne geograficzne punktu pośredniego, a następnie ustawiasz flagę preferSameSideOfRoad, która wskazuje, że chcesz dotrzeć po tej samej stronie drogi co punkt pośredni – przyciągnięty do najbliższego chodnika.

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

Ustawianie kierunku przybycia

Podajesz współrzędne geograficzne punktu pośredniego, a następnie podajesz kierunek przyjazdu preferredSegmentHeading, który odpowiada kierunkowi ruchu po tej samej stronie drogi co miejsce docelowe.

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

Pakiet Navigation SDK wybiera fragment drogi najbliższy punktowi na trasie, który ma kierunek pasa zgodny (w zakresie +/- 55 stopni) ze stroną drogi, po której znajduje się punkt na trasie.

Ustaw preferencje dotyczące przesiadek

W niektórych miejscach użytkownicy nie mogą bezpiecznie się zatrzymać (np. na obszarach położonych na wysokości, na promach, w miejscach podziemnych i innych obszarach o ograniczonym dostępie). Funkcja Przystanek przenosi punkt na trasie do miejsca w pobliżu, jeśli jego lokalizacja nie jest odpowiednia, aby użytkownik mógł się zatrzymać. Gdy ustawisz vehicleStopover na YES, punkt pośredni zostanie automatycznie przeniesiony podczas obliczania trasy, jeśli dostępna jest lokalizacja alternatywna.

Jak to działa

Ustawienia przystanku określasz podczas tworzenia punktu pośredniego dla tego przystanku. Aby to zrobić, ustaw preferencje dotyczące postoju na 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){...}];