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 rota 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. $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP/gRPC başlığını kullanarak yanıt alanı maskesini sağlayabilirsiniz (kullanılabilir URL parametreleri ve üstbilgilerine bakın). Değer, alan yollarının virgülle ayrılmış bir 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: *
  • Rota mesafeleri, süreler, jeton ve ücret bilgilerini içeren alan maskesi: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google, aşağıdaki nedenlerle joker karakter (*) yanıt alanı maskesinin kullanılmasını veya alan maskesinin üst düzeyde (routes) belirtilmesini önermez:

  • Yalnızca ihtiyacınız olan alanları seçmeniz, sunucumuzun hesaplama döngülerini kaydetmesine yardımcı olarak sonucu size daha düşük bir gecikmeyle döndürmemizi sağlar.
  • Üretim işinizde yalnızca ihtiyaç duyduğunuz alanları seçmeniz, gecikme performansının istikrarlı olmasını sağlar. Gelecekte daha fazla yanıt alanı ekleyebiliriz ve bu yeni alanlar daha fazla hesaplama süresi gerektirebilir. Tüm alanları seçerseniz veya en üst düzeydeki tüm alanları seçerseniz, eklediğimiz yeni alanlar yanıta otomatik olarak dahil edileceğinden performansta düşüşle karşılaşabilirsiniz.
  • Yalnızca ihtiyacınız olan alanları seçtiğinizde yanıt boyutu küçülür ve böylece daha yüksek ağ işleme hızı elde edilir.

HTTP isteği

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

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

İstek içeriği

İstek gövdesi, aşağıdaki yapıya sahip 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ıç noktası referans 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 ara nokta desteklenir.

travelMode

enum (RouteTravelMode)

İsteğe bağlı. Ulaşım modunu belirtir. Şu anda yalnızca DRIVE desteklenmektedir.

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 hataya veya ekstra uzun gecikmeye neden olursa bir hata döndürülür. Gelecekte, tercih edilen seçenek geçerli bir sonuç vermediğinde farklı bir seçenek kullanmak için yedek mekanizması uygulayabiliriz. 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 için 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 değer, varsayılan olarak isteği yaptığınız zaman olur. Bu değeri geçmişte olan bir zamana ayarlarsanız istek başarısız olur.

RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

routeModifiers

object (RouteModifiers)

İsteğe bağlı. Rotaların hesaplanma şeklini etkileyen ve yerine getirilecek bir dizi koşul.

routeObjective

object (RouteObjective)

Zorunlu. Optimize edilecek rota hedefidir.

languageCode

string

İsteğe bağlı. "en-US" gibi BCP-47 dil kodu veya "sr-Latn" girin. Daha fazla bilgi için http://www.unicode.org/reports/tr35/#Unicode_locale_identifier sayfasına bakın. Desteklenen dillerin listesi için Dil Desteği bölümüne bakın. Bu değeri sağlamadığınızda, görüntüleme dili, rota isteğinin konumundan belirlenir.

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 belirlenir.

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.