Güzergah Matrisi hesaplayın

Routes Preferred API'nin ComputeRouteMatrix yöntemini kullanarak birden fazla kaynak ve hedef için rotanın mesafesini ve süresini hesaplayabilirsiniz. ComputeRouteMatrix, hem akışlı gRPC çağrılarını hem de REST HTTP çağrılarını destekler.

Kalkış ve hedef çiftlerinin bulunduğu bir listede ComputeRouteMatrix, her kalkışta başlayıp her hedefte sona eren bir rotanın mesafesini ve süresini hesaplar. Akışın her öğesi tek bir rotadaki bilgilere karşılık gelir.

ComputeRouteMatrix yönteminin Mesafe Matrisi Hizmeti'ne göre bazı avantajları vardır:

  • Akış, matrisin tamamı hesaplanmadan önce öğelerin döndürülmesini sağlayarak gecikmeyi azaltır.
  • ComputeRouteMatrix, trafik hesaplaması için ayrıntılı seçeneklere sahiptir. Bu sayede kalite-gecikme dengesi kararları alabilirsiniz.
  • İstekler, Google'ın altyapısında daha yüksek bir öncelikte çalıştırılır. Bu da daha yüksek kullanılabilirlik sağlar.
  • Ara noktalar için yön (seyahat yönü) ve yol kenarı bilgilerini belirtebilirsiniz.
  • Rota mesafesi ve TVS ile birlikte ücret bilgilerinin gönderilmesini isteyebilirsiniz.

ComputeRouteMatrix yöntemini etkinleştir

Kodunuzda ComputeRouteMatrix yöntemini kullanmadan önce bunu etkinleştirmeniz gerekir. Routes Preferred API yöntemlerini etkinleştirme hakkında daha fazla bilgi için Başlarken bölümüne bakın.

ComputeRouteMatrix yöntemini kullanma

ComputeRouteMatrix yöntemi, Rotalar Tercih Edilen v1 uç noktası üzerinden kullanılabilir.

Daha ayrıntılı bilgi için aşağıdaki dokümanlara göz atın:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

Aşağıdaki genel adımlarda, ComputeRouteMatrix yöntemini çağırmak için gRPC'nin nasıl kullanılacağı açıklanmaktadır:

  1. Googleapis deposundaki gerekli proto arabelleklere göz atın:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Go gibi bazı derleme sistemlerinin bunu sizin için otomatik olarak yapabileceğini unutmayın.

  2. Tercih ettiğiniz dili ve derleme aracı grubunu kullanarak ilgili proto arabellek kodunu oluşturun.

  3. İsteğinizi oluşturun. İstekle birlikte gerekli iki meta veri parçasının gönderilmesi gerekir:

    • X-Goog-Api-Key, API anahtarınız olarak ayarlanmalıdır.
    • X-Goog-Fieldmask, yanıtta istediğiniz alanların virgülle ayrılmış bir listesine ayarlanmalıdır. Örneğin, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Tüm alanları belirtmek için joker karakter (*) kullanabilirsiniz ancak bu önerilmez. API yanıtını test etmek ve anlamak için joker karakter kullanın ancak üretim kodunuzdaki alan maskesinde istediğiniz alanları açıkça listeleyin.

      Alan maskesi dizesinin nasıl oluşturulacağı hakkında daha fazla bilgi için https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto adresine bakın. İhtiyaç duymadığınız alanları devre dışı bırakmanın, daha fazla hesaplama gerektirebileceği için gecikmeyi azaltabileceğini unutmayın. İhtiyacınız olan alanları belirtirseniz ve daha fazla hesaplama gerektiren yeni alanlar daha sonra eklenirse gecikmeniz sabit kalır.

  4. İsteğinizi routespreferred.googleapis.com:443 adresine gönderin.TLS protokolünü kullanmanız gerekir.

ComputeRouteMatrix yöntemini kullanmaya ilişkin örnekler için Rota Matrisi Hesaplama (Beta) Örnekleri bölümüne bakın.

ComputeRouteMatrix yönteminin ayırt edici bir özelliği, hata kodlarının ya akışın tamamı ya da bağımsız öğeler için döndürülebilmesidir. Örneğin, isteğin hatalı biçimlendirilmiş olması (ör. sıfır kaynağı varsa) akış bağlantısı hata döndürür. Bununla birlikte, bir hata akışın yalnızca birkaç öğesinde geçerliyse (örneğin, bir kaynak için geçersiz Yer Kimliği ayarlamak) yalnızca hatadan etkilenen öğeler hata kodlarını içerir.

Akış tarafından döndürülen öğelerin herhangi bir sırada döndürüleceği garanti edilmez. Bu nedenle, her öğe bir origin_index ve destination_index içerir. İstekte belirtilen kaynaklar ve hedefler için rota kaynağı, belirli bir öğe için origins[origin_index] ile eşdeğerdir ve rota hedefi destinations[destination_index] ile eşdeğerdir. Bu diziler sıfır dizine sahiptir. Kalkış ve hedef listelerindeki siparişlerin depolanması önemlidir.

Geçiş ücretleri hesaplanıyor

Geçiş ücretlerini hesaplama hakkında bilgi edinmek için Geçiş ücretlerini hesaplama bölümüne bakın.

Geçiş ücretlerini hesaplama örnekleri için Rota Matrisi Örneklerini Hesaplama bölümüne bakın.