Method: computeCustomRoutes

Bir dizi terminal ve ara ara nokta ile bir rota hedefi dikkate alındığında, rota hedefi için en iyi rota hesaplanır. Ayrıca, referans rotalar olarak en hızlı rotayı ve en kısa rotayı döndürür.

NOT: Bu yöntem, girişte bir yanıt alanı maskesi belirtmenizi gerektirir. Yanıt alanı maskesini $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP/gRPC üst bilgisini kullanarak sağlayabilirsiniz (kullanılabilir URL parametreleri ve üst bilgileri bölümüne bakın). Değer, virgülle ayrılmış alan yolları listesidir. Alan yollarının nasıl oluşturulacağı ile ilgili bu ayrıntılı dokümanlara bakın.

Örneğin, bu yöntemde:

  • Mevcut tüm alanların alan maskesi (manuel inceleme için): X-Goog-FieldMask: *
  • Güzergah mesafeleri, süreleri, jetonu ve ücret bilgilerinin alan maskesi: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google, joker karakter (*) yanıt alanı maskesinin kullanılmasından veya alan maskesinin üst düzeyde (routes) belirtilmesinden kaçınılmasını önerir. Bunun nedeni:

  • Yalnızca ihtiyacınız olan alanları seçmek, sunucumuzun hesaplama döngülerini azaltmasına yardımcı olur. Böylece, sonucu size daha düşük gecikmeli olarak döndürebiliriz.
  • Üretim işinizde yalnızca ihtiyacınız olan alanları seçmek, kararlı bir gecikme performansı sağlar. Gelecekte daha fazla yanıt alanı ekleyebiliriz ve bu yeni alanlar daha fazla hesaplama süresi gerektirebilir. Tüm alanları veya üst düzeydeki tüm alanları seçerseniz ekleyeceğimiz yeni alanlar yanıta otomatik olarak dahil edileceğinden performansta düşüş yaşayabilirsiniz.
  • Yalnızca ihtiyacınız olan alanları seçmek, yanıt boyutunun küçülmesine ve dolayısıyla ağ aktarım hızının artmasına neden olur.

HTTP isteği

POST https://routespreferred.googleapis.com/v1alpha:computeCustomRoutes

URL, gRPC Kod Dönüştürme söz dizimini kullanır.

İstek içeriği

İstek metni aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
Alanlar
origin

object (Waypoint)

Zorunlu. Başlangıç ara noktası.

destination

object (Waypoint)

Zorunlu. Hedef referans noktası.

intermediates[]

object (Waypoint)

İsteğe bağlı. Güzergah üzerinde durmak veya geçmek için rota üzerinde bir dizi ara nokta (uç noktalar hariç). En fazla 25 ara nokta desteklenir.

travelMode

enum (RouteTravelMode)

İsteğe bağlı. Ulaşım şeklini belirtir. Yalnızca DRIVE ve "TWO_WHEELER" desteklenir.

routingPreference

enum (RoutingPreference)

İsteğe bağlı. Rotanın nasıl hesaplanacağını belirtir. Sunucu, yolu hesaplamak için seçilen yönlendirme tercihini kullanmaya çalışır. Yönlendirme tercihi bir hatayla veya aşırı uzun bir gecikmeye neden olursa bir hata döndürülür. Bu seçeneği yalnızca travelMode DRIVE veya TWO_WHEELER olduğunda belirtebilirsiniz. Aksi takdirde istek başarısız olur.

polylineQuality

enum (PolylineQuality)

İsteğe bağlı. Çoklu çizginin kalitesi ile ilgili tercihinizi belirtir.

polylineEncoding

enum (PolylineEncoding)

İsteğe bağlı. Çoklu çizgi için tercih edilen kodlamayı belirtir.

departureTime

string (Timestamp format)

İsteğe bağlı. Kalkış saati. Bu değeri ayarlamazsanız varsayılan olarak isteği gönderdiğiniz zaman olur. Bu değeri geçmişte gerçekleşmiş bir zamana ayarlarsanız istek başarısız olur.

Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

routeModifiers

object (RouteModifiers)

İsteğe bağlı. Yolların hesaplanma şeklini etkileyen ve karşılanması gereken bir dizi koşul.

routeObjective

object (RouteObjective)

Zorunlu. Optimize edilecek rota hedefidir.

languageCode

string

İsteğe bağlı. BCP-47 dil kodu ("en-US" veya "sr-Latn" gibi). Daha fazla bilgi için Unicode Yerel Ayarı Tanımlayıcısı başlıklı makaleyi inceleyin. Desteklenen dillerin listesi için Dil desteği bölümüne bakın. Bu değeri sağlamadığınızda ekran dili, rota isteğinin konumundan anlaşılır.

units

enum (Units)

İsteğe bağlı. Görünen alanlar için ölçü birimlerini belirtir. NavigationInstruction içindeki instruction alanı da buna dahildir. Rota, bacak, adım mesafesi ve süre için kullanılan ölçü birimleri bu değerden etkilenmez. Bu değeri sağlamazsanız görüntüleme birimleri, isteğin konumundan tahmin edilir.

Yanıt gövdesi

Başarılıysa yanıt metni, ComputeCustomRoutesResponse öğesinin bir örneğini içerir.

Yetkilendirme kapsamları

Aşağıdaki OAuth kapsamını gerektirir:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

Daha fazla bilgi için OAuth 2.0 Overview (OAuth 2.0'a Genel Bakış) sayfasına göz atın.