Güzergah Matrisi hesaplayın

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

Başlangıç ve hedef çiftlerinin listesi verildiğinde ComputeRouteMatrix, her başlangıç noktasında başlayıp her hedefte biten bir rotanın mesafesini ve süresini hesaplar. Akışın her öğesi tek bir rotanın bilgilerine karşılık gelir.

ComputeRouteMatrix yöntemi, Mesafe Matrisi Hizmeti'ne kıyasla çeşitli avantajlar sunar:

  • Akış, tüm matris hesaplanmadan önce öğelerin döndürülmesine olanak tanıyarak gecikmeyi azaltır.
  • ComputeRouteMatrix, trafik hesaplaması için ayrıntılı seçenekler sunarak kalite-gecikme arasında seçim yapmanıza olanak tanır.
  • İstekler, Google'ın altyapısında daha yüksek ö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 yolun kenarı bilgilerini belirtebilirsiniz.
  • Rota mesafesi ve tahmini varış zamanı ile birlikte ücretli yol bilgilerinin de döndürülmesini isteyebilirsiniz.

ComputeRouteMatrix yöntemini etkinleştirme

Kodunuzda ComputeRouteMatrix yöntemini kullanabilmek için bu yöntemi etkinleştirmeniz gerekir. Routes Preferred API yöntemlerini etkinleştirme hakkında daha fazla bilgi için Başlangıç başlıklı makaleyi inceleyin.

ComputeRouteMatrix yöntemini kullanma

ComputeRouteMatrix yöntemi, Routes Preferred v1 uç noktası üzerinden kullanılabilir.

Daha ayrıntılı bilgi için aşağıdaki belgelere bakı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 deposundan gerekli protobuffer'ları kontrol edin:

    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 araçlarını kullanarak ilgili protobuffer kodunu oluşturun.

  3. İsteğinizi oluşturun. İstekle birlikte iki zorunlu meta veri gönderilmelidir:

    • X-Goog-Api-Key, API anahtarınız olarak ayarlanmalıdır.
    • X-Goog-Fieldmask, yanıttan istediğiniz alanların virgülle ayrılmış listesi olarak 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 karakteri 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 adresini ziyaret edin. İhtiyacınız olmayan alanları devre dışı bırakmanın, bu alanlar daha fazla hesaplama gerektirebileceğinden gecikmeyi azaltabileceğini unutmayın. İhtiyacınız olan alanları ve daha fazla hesaplama gerektiren yeni alanları daha sonra eklerseniz gecikme süreniz sabit kalır.

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

ComputeRouteMatrix yönteminin kullanımına ilişkin örnekler için Rota Matrisi Hesaplama (Beta) Örnekleri başlıklı makaleye bakın.

ComputeRouteMatrix yönteminin ayırt edici özelliklerinden biri, hata kodlarının akışın tamamı veya ayrı ayrı öğeler için döndürülebilmesidir. Örneğin, istek hatalıysa (ör. sıfır kaynağı varsa) akış bağlantısı hata döndürür. Ancak bir hata yalnızca akışın birkaç öğesi için geçerliyse (ör. bir kaynak için geçersiz yer kimliği ayarlama), yalnızca hatadan etkilenen öğeler hata kodları içerir.

Akış tarafından döndürülen öğelerin herhangi bir sırada döndürülmesi garanti edilmez. Bu nedenle, her öğe bir origin_index ve bir destination_index içerir. İstek tarafından 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 tabanlıdır. Kaynak ve hedef liste sıralamalarını saklamak önemlidir.

Geçiş ücretlerini hesaplama

Geçiş ücretlerini hesaplama hakkında bilgi için Geçiş ücretlerini hesaplama başlıklı makaleyi inceleyin.

Geçiş ücretlerinin hesaplanmasıyla ilgili örnekler için Rota Matrisi Hesaplama Örnekleri bölümüne bakın.