Este documento descreve como gerenciar as preferências de ponto de passagem do seu app usando dois recursos:
- Preferências de trajeto do lado da estrada
- Escala
Definir o lado da preferência de roteamento de estrada
Por padrão, o Navigation SDK para iOS encontra a rota mais rápida até um ponto de passagem. No entanto, isso não garante que o usuário chegue ao lado desejado da estrada, por exemplo, o lado da estrada em que o cliente de um motorista de transporte por aplicativo está esperando. O recurso Side of the Road Routing Preference permite garantir que o veículo chegue ao lado correto da via.
Como funciona
Você define a preferência para chegar em um lado específico da estrada ao criar o ponto de passagem para essa parada. É possível especificar a preferência de duas maneiras.
Preferir o mesmo lado da estrada
Você fornece as coordenadas geográficas do ponto de passagem e define uma flag
preferSameSideOfRoad
que indica que você prefere chegar no mesmo lado da estrada que o
ponto de passagem, fixado na calçada mais próxima.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
Título do segmento preferencial
Você fornece as coordenadas geográficas do ponto de passagem e um
caminho de chegada
preferredSegmentHeading
que corresponde à direção do fluxo de tráfego no mesmo lado da estrada que o
destino.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
O SDK de navegação escolhe o segmento de estrada mais próximo ao waypoint, que tem uma direção de faixa alinhada (dentro de +/- 55 graus) com o lado da estrada em que o waypoint está.
Definir a 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 passagem para um lugar próximo se
a localização dele não for adequada para o usuário fazer uma parada. Quando você define
vehicleStopover
como YES
, o ponto de referência é realocado automaticamente quando
a rota é calculada, se um local alternativo estiver disponível.
Como funciona
Você define a preferência para uma escala ao criar o ponto de passagem dela.
Para fazer isso, defina a preferência para uma escala em um
GMSNavigationMutableWaypoint
, conforme mostrado no exemplo abaixo:
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){...}];