Rota planlama

Bazen uygulamanızın kullanıcılara sağladığı rotayı planlamak isteyebilirsiniz. Bir Routes API'deki (veya Routes Preferred API'si) rota jetonu, planladığınız rotayla ilgili iki şey:

  • Rota için çoklu çizgi

  • Rota hedefleriniz

Aşağıda, sahip olabileceğiniz yönlendirme hedeflerine ilişkin bazı örnekler verilmiştir:

  • Teslimat süresini en aza indirin: Gıda teslimatı yapan bir işletme gereken süreyi kısaltır.

  • Seyahat süresini veya yakıt tüketimini en aza indirme: Bir lojistik işletmesi, sürücülerinin verimliliğini artırıp yakıt maliyetlerini azaltabilir.

  • Hedefe ulaşma süresini en aza indirme: Bir hizmet dağıtım işlemi, operatörlerin iş isteğinde bulunması için gereken süreyi en aza indirmenize yardımcı olur.

  • Maliyetleri düşürün ve güvenliği artırın: Araç paylaşımı yapan bir işletme, yolcular için daha düşük maliyetli ve belirli güvenlik alanlarından kaçınan bir rota neden.

Rota jetonu kullanarak rota planlama hakkında daha fazla bilgi için bkz. Rota jetonu isteyin.

Rota hedefleri için neden rota jetonu kullanmalısınız?

Routes or Routes Preferred API'sinden gelen rota jetonuyla daha fazla sağlanan rota üzerinde kontrol sahibi olma:

  • Navigasyon SDK'sının kullanması için rotayı önceden planlayın değerlendirin.

  • Navigasyon SDK'sının kullanacağı en iyi rotayı seçin. Routes API'de rota oluştururken rota jetonları isterseniz oluşturulan her rota için bir rota jetonu alırsınız. Ardından jetonu seçebilirsiniz kullanmak istediğiniz rotanın Gezinme SDK'sı.

  • TVS ve mesafe tahminleri de dahil olmak üzere fiyatı önceden tahmin edin. Gerçek maliyet ve süre değişiklik gösterse de bu tahmin, projeyle elde edilen ve gerçek rota maliyetidir.

  • Eko rota veya en kısa rota gibi daha gelişmiş rota hedefleri belirtin yol gösterir.

Routes API rota jetonlarının işleyiş şekli

Routes API veya Routes Preferred API'yi kullanabilirsiniz. rota hedeflerini kullanarak rota planlamaktır. Routes API, bir gezinme SDK'sına iletebileceğiniz yönlendirme jetonu aracınızı yönlendirir.

Rotalar API'si:

  1. Routes API, rotayı içeren şifrelenmiş bir rota jetonu döndürür çoklu çizgi ve rota hedefleridir.

  2. Rota jetonunu Gezinme SDK'sına iletirsiniz.

  3. Gezinme SDK'sı rotayı alıyor veya rota koşullar nedeniyle kullanılabilir, ancak en iyi eşleşmeyi yol gösterir.

  4. Rotayı sürerken, trafik veya diğer yol koşulları değişirse veya Bir araç planlanan rotadan sapıyorsa, değiştirilen rotalar sürekli olarak en iyi rotayı jetondaki hedeflere göre eşleştirmeye çalışın.

Bu işlem, gerçek rotanın planladığınız rotaya ne kadar yakın olduğunu en üst düzeye çıkarır.

Planlanan bir rotanın tam olarak izlenmemesinin olası nedenleri

Planlanan rotanızı ve rota hedeflerinizi, uyulması gereken yönergeler olarak düşünün: belirleyici değildir. Planladığınız rota ile rotanız arasındaki fark, yoldaki farklılıklardan dolayı rehberli navigasyon tarafından sağlanan rota koşulları, başlangıç konumunu veya siz değişikliği yaptıktan sonra değişen diğer parametreler planlanan rotayı oluşturmuştur. Bu fark, proje ekibinin diğer önemli seyahatlerin yanı sıra mesafe ve TVS için planladığınız ve gerçek hedefleriniz nitelikleridir.

Rota jetonu kullanarak rota planlama

Bir rota jetonu oluşturup bu jetonu Gezinme SDK'sı, aşağıdaki adımlarda açıklandığı gibi):

1. Adım: Routes or Routes Preferred API'sini kullanarak bir rota jetonu oluşturun

  1. Aşağıdaki yöntemlerden birini kullanarak rota jetonu isteyin:

    • Routes API: computeRoutes. Daha fazla bilgi için Routes API'de rota jetonu isteme hakkında daha fazla bilgi için Bir rota hesaplayın ve Rota jetonu isteyin.

    • Routes Preferred API: computeCustomRoutes. Daha fazla bilgi için Routes Preferred API'sinde rota jetonu istediğinizde Rota planlayın.

  2. Rota kullanımına ilişkin gereksinimleri karşılamak için rota isteğinizi ayarlayın jeton:

    • travel_mode değerini DRIVING olarak ayarla
    • routing_preference değerini TRAFFIC_AWARE veya TRAFFIC_AWARE_OPTIMAL olarak ayarlayın
    • Via ara noktaları KULLANMAYIN

2. Adım: Rota jetonunu Navigation SDK'sına iletin

  1. Rota jetonunu depolama: Navigasyon SDK'sında bir dize kullanması gerekir. Örneğin:

    let routeToken = "route token returned by Routes API"

    Döndürülen rota jetonu örneği:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Rota jetonunu Aynı hedefi belirten mapView.navigator setDestinations yöntemi rota jetonunu oluştururken kullandığınız ara noktalar:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Navigator.setDestinations yöntemi, isteğin durumunu döndürür. Kullanıcının konumundan belirtilen hedefe kadar bir rota bulunursa RouteStatus.OK sonucunu döndürür.

Bu yöntemle ilgili daha fazla bilgi için Navigator.setDestinations bölümüne bakın.

Örnek

Aşağıdaki kod örnekleri, planlanan bir rotanın nasıl alınacağını göstermektedir.

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                         routeToken:routeToken
                           callback:^(GMSRouteStatus routeStatus){...}];

Rota jetonları ve Navigasyon SDK'sı nasıl etkileşimde bulunur?

Gezinme SDK'sı ve planlanan rota tarafından oluşturulan rotanın rota jetonunda rota etkileşimi:

  • Önceden ayarlanmış hedefleri geçersiz kılar.

  • Aracın başlangıç konumunu kullanır.

  • Yol ve trafik koşullarına göre ayarlanır. Görüntüleyin Planlanan bir rotanın tam olarak izlenmemesinin olası nedenleri

  • Gerektiğinde olmayan aşağıdaki yönlendirmeyle ilgili seçenekleri yok sayar:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Takipler:

    • Yolun kenar tercihi gibi ara noktayla ilgili seçenekler.

    • Rota hedefleri. Gezinme SDK'sının döndüren rotayı ayarlamak için, rota jetonu isteme. Bu nedenle, Routes API'de belirttiğiniz ara noktayla ilgili seçenekler