Este documento descreve como gerenciar as preferências de ponto de referência do seu app usando dois recursos:
- Preferências de trajeto do lado da via
- Escala
Definir a preferência de roteamento do lado da via
Por padrão, o SDK Navigation para iOS encontra o caminho mais rápido até um ponto de parada, mas isso não garante que o usuário chegue ao lado desejado da rua, por exemplo, o lado da rua em que o cliente de um motorista de carona está esperando. Com o recurso Preferência de roteamento pelo lado da via, você garante que o veículo chegue ao lado correto da via.
Como funciona
Você define a preferência de chegar em um lado específico da rua ao criar o ponto de referência para essa parada. Você pode especificar a preferência de duas maneiras.
Prefira o mesmo lado da via
Você fornece as coordenadas geográficas do ponto de parada e define uma flag
preferSameSideOfRoad
que indica que você prefere chegar no mesmo lado da rua que o
ponto de parada, ajustado à calçada mais próxima.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
Definir um destino de chegada
Você fornece as coordenadas geográficas do ponto de parada e, em seguida, um
rumo de chegada
preferredSegmentHeading
que corresponda à direção do fluxo de tráfego no mesmo lado da via que o
destino.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
O SDK Navigation escolhe o segmento de via mais próximo do waypoint que tem uma direção de faixa alinhada (em +/- 55 graus) com o lado da via em que o waypoint está.
Definir preferência de escala
Em alguns lugares, não é possível parar com segurança (por exemplo, áreas elevadas, balsas, locais subterrâneos e outras áreas de acesso limitado). O recurso Parada realoca o ponto de referência para um lugar próximo se a localização não for adequada para uma parada. Quando você define vehicleStopover
como YES
, o waypoint é automaticamente realocado quando o trajeto é calculado, se um local alternativo estiver disponível.
Como funciona
Você define a preferência de uma parada ao criar o ponto de referência para ela.
Para fazer isso, defina a preferência de uma escala em um
GMSNavigationMutableWaypoint
, conforme mostrado no exemplo a seguir:
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){...}];