Method: computeRoutes

Bir dizi terminal ve ara ara nokta belirtildiğinde, isteğe bağlı alternatif rotalarla birlikte birincil 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 üstbilgisini kullanarak sağlayabilirsiniz (kullanılabilir URL parametrelerine ve üstbilgilerine bakın. Değer, alan yollarının virgülle ayrılmış listesidir. Alan yollarının nasıl oluşturulacağı ile ilgili bu ayrıntılı belgeleri inceleyin.

Örneğin, bu yöntemde:

  • Kullanılabilir tüm alanların alan maskesi (manuel inceleme için): X-Goog-FieldMask: *
  • Rota düzeyinde süre, mesafe ve çoklu çizgiyi içeren alan maskesi (örnek üretim kurulumu): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google, joker karakter (*) yanıt alanı maskesinin kullanılmasını veya alan maskesinin üst düzeyde (routes) belirtilmesini önermez çünkü:

  • Yalnızca ihtiyacınız olan alanların seçilmesi, sunucumuzun hesaplama döngülerini kaydetmesine yardımcı olarak sonucu size daha düşük bir gecikmeyle sunmamıza olanak tanır.
  • Üretim işinizde yalnızca ihtiyacınız olan alanların seçilmesi, 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ı veya en üst düzeydeki tüm alanları seçerseniz eklediğimiz yeni alanlar otomatik olarak yanıta dahil edileceğinden performansta düşüş yaşayabilirsiniz.
  • Yalnızca ihtiyacınız olan alanların seçilmesi, daha küçük bir yanıt boyutu ve dolayısıyla daha yüksek ağ işleme hızıyla sonuçlanır.

HTTP isteği

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

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

İstek içeriği

İstek gövdesi, aşağıdaki yapıyla birlikte veriler 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,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
Alanlar
origin

object (Waypoint)

Zorunlu. Başlangıç ara noktası.

destination

object (Waypoint)

Zorunlu. Hedef ara nokta.

intermediates[]

object (Waypoint)

İsteğe bağlı. Güzergah boyunca, durağı veya yanından geçmek için durak noktaları hariç bir dizi ara nokta. En fazla 25 ara ara nokta desteklenir.

travelMode

enum (RouteTravelMode)

İsteğe bağlı. Ulaşım şeklini belirtir.

routingPreference

enum (RoutingPreference)

İsteğe bağlı. Rotanın nasıl hesaplanacağını belirtir. Sunucu, yolu hesaplamak için seçilen yönlendirme tercihini kullanmayı dener. Yönlendirme tercihi hataya veya ekstra uzun gecikmeye neden olursa hata döndürülür. Gelecekte, tercih edilen seçenek geçerli bir sonuç sağlamadığında farklı bir seçenek kullanmak için yedek bir mekanizma 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 bu değer varsayılan olarak, isteği yaptığınız zamana ayarlanır. Bu değeri geçmişte olan bir zamana ayarlarsanız istek başarısız olur.

Nanosaniye çözünürlüğe ve en fazla dokuz kesir basamağına sahip, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

Rotaya ek olarak alternatif rotaların hesaplanıp hesaplanmayacağını belirtir.

routeModifiers

object (RouteModifiers)

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

languageCode

string

İsteğe bağlı. BCP-47 dil kodu (ör. "en-US" veya "sr-Latn"). 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 sayfasına 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üntülenen 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.

optimizeWaypointOrder

boolean

optimizeWaypointOrder doğru değerine ayarlanırsa rotanın toplam maliyetini en aza indirmek için belirtilen ara ara noktaları yeniden sıralamaya çalışılır. Ara ara noktaların herhangi biri ara nokta üzerindenyse istek başarısız olur. Yeni sıralamayı bulmak için ComputeRoutesResponse.Routes.enhanced_intermediate_waypoint_index kullanın. X-Goog-FieldMask başlığında path.optimize_intermediate_waypoint_index istenmezse istek başarısız olur. optimizeWaypointOrder yanlış değerine ayarlanırsa ComputeRoutesResponse.yararlı_intermediate_waypoint_index boş bırakılır.

Yanıt gövdesi

Başarılıysa yanıt metni, ComputeRoutesResponse öğ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'a Genel Bakış başlıklı makaleye bakın.