Zarządzaj punktami na trasie

Z tego dokumentu dowiesz się, jak zarządzać ustawieniami punktów drogowych w aplikacji za pomocą 2 funkcji:

  • Ustawienia dotyczące strony drogi
  • Przesiadka

Ustawienie preferencji dotyczącej strony drogi

Domyślnie pakiet SDK nawigacji na iOS znajduje najszybszą trasę do punktu orientacyjnego, ale nie gwarantuje to, że użytkownik dotrze do celu po odpowiedniej stronie drogi, np. po tej samej stronie, po której czeka klient kierowcy. Funkcja Preferencja trasy po właściwej stronie drogi pozwala zapewnić, że pojazd dojedzie po właściwej stronie drogi.

Jak to działa

Ustawienie preferencji dotyczącego dojazdu po konkretnej stronie drogi możesz ustawić podczas tworzenia punktu drogowego dla danego przystanku. Ustawienia możesz określić na 2 sposoby.

Preferuj tę samą stronę drogi

Użytkownik podaje współrzędne geograficzne punktu drogowego, a następnie ustawia flagę preferSameSideOfRoad wskazującej, że preferuje dojazd po tej samej stronie drogi co punkt drogowy, przy czym punkt drogowy jest przyciągany do najbliższego chodnika.

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

Ustawianie nagłówka przybycia

Należy podać współrzędne geograficzne punktu drogowego, a następnie kierunek dojazdu preferredSegmentHeading , który jest zgodny z kierunkiem ruchu na tej samej stronie drogi co miejsce docelowe.

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

Navigation SDK wybiera odcinek drogi najbliższy punktowi kontrolnemu, który ma kierunek pasa ruchu zgodny (w zakresie +/- 55°) z stroną drogi, na której znajduje się punkt kontrolny.

Ustawianie preferencji dotyczących przesiadki

W niektórych miejscach użytkownicy nie mogą bezpiecznie zatrzymać się (np. na podwyższonych obszarach, na promach, w pomieszczeniach podziemnych i w miejscach o ograniczonym dostępie). Funkcja Przesiadka przenosi punkt kontrolny w pobliższe miejsce, jeśli jego lokalizacja nie jest odpowiednia do zatrzymania się. Gdy ustawisz parametr vehicleStopover na YES, punkt kontrolny zostanie automatycznie przeniesiony w momencie obliczenia trasy, jeśli dostępna jest inna lokalizacja.

Jak to działa

Ustawienia dotyczące postoju przesiadkowego są ustawiane podczas tworzenia punktu kontrolnego dla tego przystanku. Aby to zrobić, ustaw preferencje dotyczące przesiadki w 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){...}];