Ara nokta yönetme

Bu dokümanda, iki özelliği kullanarak uygulamanız için yol noktası tercihlerini nasıl yönetebileceğiniz açıklanmaktadır:

  • Yolun kenarına göre rota tercihleri
  • Aktarma

Yolun hangi tarafında yönlendirme yapılacağını ayarlama

iOS için Navigasyon SDK'sı varsayılan olarak bir yol işaretine giden en hızlı rotayı bulur. Ancak bu, kullanıcının yolun istenen tarafına (ör. bir araç paylaşımı sürücüsünün müşterisinin beklediği taraf) ulaşacağını garanti etmez. Yol Yönlendirme Tercihindeki Yol Kenarı özelliği, aracın yolun doğru tarafına ulaşmasını sağlar.

İşleyiş şekli

Durak için yol işaretini oluştururken yolun belirli bir tarafına varma tercihini siz belirlersiniz. Tercihi iki şekilde belirtebilirsiniz.

Yolun aynı tarafını tercih edin

Yol noktasının coğrafi koordinatlarını sağlar ve ardından, en yakın kaldırıma bağlanmış olarak yol noktasının bulunduğu yolun aynı tarafına varmayı tercih ettiğinizi belirten bir işaret preferSameSideOfRoad belirlersiniz.

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

Varış başlığı ayarlama

Yol noktasının coğrafi koordinatlarını ve ardından, hedefle aynı taraftaki yolun trafiği akışının yönüyle eşleşen bir varış yönünü preferredSegmentHeading belirtirsiniz.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

Navigasyon SDK'sı, yol işaretine en yakın yol segmentini seçer. Bu yol segmentinin şerit yönü, yol işaretinin bulunduğu yolun kenarıyla (+/- 55 derece içinde) hizalanır.

Aktarma noktası tercihini ayarlama

Belirli yerlerde kullanıcıların güvenli bir şekilde durması mümkün değildir (örneğin, yüksek yerler, feribotlar, yeraltı konumları ve erişimi sınırlı diğer yerler). Durak özelliği, konumu kullanıcının duraklaması için uygun değilse yol işaretini yakındaki bir yere taşır. vehicleStopover değerini YES olarak ayarladığınızda, alternatif bir konum varsa rota hesaplanırken yol noktası otomatik olarak yeniden konumlandırılır.

İşleyiş şekli

Bir durak için tercihi, ilgili durak için yol noktası oluştururken belirlersiniz. Bunu yapmak için aşağıdaki örnekte gösterildiği gibi GMSNavigationMutableWaypoint'te bir durak tercihi ayarlayın:

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){...}];