Este documento descreve como gerenciar preferências de waypoint para seu app usando dois recursos:
- Lado das preferências de trajeto das vias
- Parada
Definir preferência de trajeto do lado da via
Por padrão, o SDK do Navigation para iOS encontra o trajeto mais rápido até um waypoint. No entanto, isso não garante que o usuário chegará no lado desejado da via, por exemplo, o lado da via que o cliente de um motorista de compartilhamento de transporte por aplicativo está esperando. O recurso Preferência de rota permite garantir que o veículo chegue no lado correto da via.
Como funciona
Você define a preferência para chegar em um lado específico da via ao criar o waypoint dessa parada. É possível especificar a preferência de duas maneiras.
Preferindo o mesmo lado da via
Você informa as coordenadas geográficas do waypoint e define uma sinalização preferSameSideOfRoad
para indicar que prefere chegar no mesmo lado da via que o waypoint, alinhado à calçada mais próxima.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
Título do segmento preferido
Você fornece as coordenadas geográficas do waypoint e uma direção de chegada
preferredSegmentHeading
que corresponda à direção do fluxo de trânsito no mesmo lado da via que o
destino.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
O SDK do Navigation escolhe o trecho de via mais próximo do waypoint, que tem uma direção de faixa alinhada (dentro de +/- 55 graus) à lateral da via em que o waypoint está.
Definir preferência de escala
Em alguns lugares, os usuários não podem parar com segurança (por exemplo,
áreas elevadas, balsas, locais subterrâneos e outras áreas de acesso
limitado). O recurso Parada realoca o waypoint para um lugar próximo se o local não for adequado para que o usuário faça uma parada. Se você definir vehicleStopover
como YES
, o waypoint será automaticamente realocado quando o trajeto for 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 dela.
Para fazer isso, defina a preferência de parada 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){...}];