Zarządzaj punktami na trasie

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

  • Ustawienia routingu po stronie drogi
  • Stopover

Ustawianie preferencji dotyczących trasy po stronie drogi

Domyślnie pakiet Navigation SDK na iOS znajduje najszybszą trasę do punktu pośredniego, ale nie gwarantuje to, że użytkownik dotrze na wybraną stronę drogi, np. na tę, po której stronie czeka klient kierowcy korzystającego z usługi przewozu osób. Funkcja Preferencje dotyczące wyznaczania trasy po stronie drogi umożliwia dopilnowanie, aby pojazd dotarł na właściwą stronę drogi.

Jak to działa

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

Prefer the same side of the road

Podajesz współrzędne geograficzne punktu pośredniego, a następnie ustawiasz flagę preferSameSideOfRoad wskazującą, że wolisz dotrzeć do punktu pośredniego po tej samej stronie drogi – przy najbliższym chodniku.

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

Ustawianie kierunku przyjazdu

Podajesz współrzędne geograficzne punktu pośredniego, a następnie podajesz preferredSegmentHeading kierunek przyjazdu zgodny z kierunkiem 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 punktowi pośredniemu, który ma kierunek pasa ruchu zgodny (w zakresie +/- 55 stopni) ze stroną drogi, na której znajduje się punkt pośredni.

Ustawianie preferencji dotyczących przesiadek

W niektórych miejscach użytkownicy nie mogą bezpiecznie się zatrzymać (np. na podwyższonych obszarach, promach, w lokalizacjach podziemnych i innych obszarach o ograniczonym dostępie). Funkcja Przystanek przenosi punkt pośredni w pobliskie miejsce, jeśli jego lokalizacja nie jest odpowiednia na przystanek. 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 preferencji dotyczących postoju określasz podczas tworzenia punktu pośredniego. Aby to zrobić, ustaw preferencje dotyczące przesiadki 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){...}];