Zarządzaj punktami na trasie

Z tego dokumentu dowiesz się, jak zarządzać preferencjami punktów pośrednich w aplikacji za pomocą 2 funkcji:

  • Preferencje dotyczące wyznaczania trasy po stronie drogi
  • Przystanek

Ustawianie preferencji dotyczących wyznaczania trasy po stronie drogi

Domyślnie pakiet Navigation SDK na iOS znajduje najszybszą trasę do punktu na trasie, ale nie gwarantuje to, że użytkownik dotrze na wybraną stronę drogi, np. na stronę, na której czeka klient kierowcy. Funkcja Preferencje dotyczące wyznaczania trasy po stronie drogi pozwala zapewnić, że pojazd dotrze na właściwą stronę drogi.

Jak to działa

Preferencje dotyczące przyjazdu na określoną stronę drogi ustawiasz podczas tworzenia punktu na trasie dla tego przystanku. Możesz określić preferencje na 2 sposoby.

Preferuj tę samą stronę drogi

Podajesz współrzędne geograficzne punktu na trasie, a następnie ustawiasz flagę preferSameSideOfRoad która wskazuje, że wolisz dotrzeć na tę samą stronę drogi co punkt na trasie – przyciągnięty do najbliższego chodnika.

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

Ustawianie kierunku przyjazdu

Podajesz współrzędne geograficzne punktu na trasie, 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 odcinek drogi najbliższy punktu na trasie, którego kierunek pasa ruchu jest zgodny (w zakresie +/- 55 stopni) ze stroną drogi, na której znajduje się punkt na trasie.

Ustawianie preferencji dotyczących przystanku

W niektórych miejscach użytkownicy nie mogą bezpiecznie się zatrzymać (np. na terenach podwyższonych, promach, w lokalizacjach podziemnych i innych obszarach o ograniczonym dostępie). Funkcja Przystanek przenosi punkt na trasie w Miejsca w pobliżu, jeśli jego lokalizacja nie jest odpowiednia do zatrzymania się. 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

Preferencje dotyczące przystanku ustawiasz podczas tworzenia punktu na trasie dla tego przystanku. Aby to zrobić, ustaw preferencje dotyczące przystanku w GMSNavigationMutableWaypoint, jak pokazano 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){...}];