Zarządzaj punktami na trasie

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

  • Ustawienia dotyczące preferencji dotyczącej strony drogi
  • Przesiadka

Ustawianie preferencji dotyczącej strony drogi

Domyślnie Navigation SDK na iOS znajduje najszybszą trasę do punktu orientacyjnego, ale nie gwarantuje to, że użytkownik dotrze do celu po żądanej stronie drogi, np. po tej, po której stoi 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

Preferencje dotyczące dojazdu po konkretnej stronie drogi ustawiasz podczas tworzenia punktu kontrolnego dla danego przystanku. Preferencje możesz określić na 2 sposoby.

Preferowanie tej samej strony drogi

Użytkownik podaje współrzędne geograficzne punktu kontrolnego, a następnie ustawia flagępreferSameSideOfRoad, która wskazuje, że użytkownik woli dojechać po tej samej stronie drogi co punkt kontrolny, przy czym punkt kontrolny jest przyciągany do najbliższego chodnika.

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

Ustawianie nagłówka przybycia

Wprowadź współrzędne geograficzne punktu drogi, a następnie kierunek dojazdu 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 SDK nawigacji wybiera odcinek drogi najbliższy punktowi kontrolnemu, który ma kierunek pasa 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 wyniesionych obszarach, na promach, w miejscach 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 wartość vehicleStopover na YES, punkt kontrolny zostanie automatycznie przeniesiony w momencie obliczania trasy, jeśli dostępna jest inna lokalizacja.

Jak to działa

Ustawienia dotyczące przesiadki są ustawiane podczas tworzenia punktu kontrolnego dla danego przystanku. Aby to zrobić, ustaw preferencję dotyczącą przesiadki na 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){...}];