Rota matrisini hesaplama

computeRouteMaplex yöntemini (REST) veya akış ComputeRouteMalast yöntemini (gRPC) çağırarak birden fazla kalkış noktası ve hedef için bir rotanın mesafesini ve süresini hesaplamak üzere Routes API'yi kullanın.

Kalkış noktası ve varış noktası listesi verilen yöntemde yöntem, her bir rotadan başlayan ve her bir hedeften biten rotanın mesafesini ve süresini hesaplar.

İstek sınırları

Compute Rota Matrisi yöntemleri aşağıdaki istek sınırlarını uygular:

  • Öğe sayısı (kaynak sayısı × hedef sayısı) 625'i aşamaz.

  • TRAFFIC_AWARE_OPTIMAL öğesini belirtirseniz öğelerin sayısı 100'ü aşamaz. TRAFFIC_AWARE_OPTIMAL hakkında daha fazla bilgi için Kaliteyi ve gecikmeyi yapılandırma bölümüne bakın.

  • Yer Kimliği kullanarak belirtebileceğiniz maksimum ara nokta (kaynak + hedefler) sayısı 50'dir.

Yanıt hataları

Compute Rota Matrisi yöntemlerinin bir özelliği, yanıtın tamamı veya bağımsız yanıt öğeleri için hataların döndürülebilmesidir. Örneğin, isteğin biçimi yanlışsa (örneğin, kaynağı sıfırsa) yanıtın tamamı hata içerir.

Ancak bir hata, yanıttaki öğelerin bir alt kümesi için geçerliyse (örneğin, kaynak ve hedef bir kombinasyonu için bir rota hesaplanamazsa) yalnızca hatadan etkilenen öğeler hata kodu döndürür.

Akış sonuçları

ComputeRouteMaplex gRPC yöntemi, kalkış noktaları ve hedefler listesini alır ve her bir kaynak ve hedef kombinasyonu için rota bilgilerini içeren bir akış döndürür. Sonuçlar akış olarak döndürüldüğü için sonuçları işlemeye başlamadan önce olası tüm rota kombinasyonlarının hesaplanması için beklemeniz gerekmez.

Akış tarafından döndürülen öğelerin herhangi bir sırada döndürülmesi garanti edilmez. Bu nedenle, her yanıt öğesi bir origin_index ve bir destination_index içerir. İstek tarafından belirtilen kaynaklar ve hedefler için rota kaynağı, belirli bir öğede origins[origin_index] öğesine, rota hedefi ise destinations[destination_index] değerine eşdeğerdir. Bu diziler dizine eklenmez. Kaynak ve hedef listesi siparişlerinin depolanması önemlidir.

Rota Matrisi Örnekleri Hesaplama

Rota matrisini hesaplamak için bir HTTP isteğinde computeRouteMaplex yöntemini kullanın.

HTTP örneği

Aşağıdaki örnekte bir computeRouteMatrix HTTP isteği gösterilmektedir. Bu örnekte:

  • İki kaynak ve iki hedef ara nokta dizisi belirtin. Yöntem, her kaynaktan her hedefe giden bir rotayı hesaplar. Böylece yanıt, dört rota içerir.

    Dizide ilk öğe 0, ikinci dizin 1 gibi dizinde yer alır.

  • Döndürülecek yanıt (REST) veya ComputeRoutesResponse (gRPC) alanlarını belirtmek için bir yanıt alanı maskesi ekleyin. Bu örnekte, her bir rota için originIndex, destinationIndex, duration, distanceMeters, status ve condition değerlerini döndürmeyi yapılandırın. Daha fazla bilgi için İade edilecek alanları seçme bölümünü inceleyin.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

Yanıt, tüm başlangıç noktası ve hedef ara noktalarının kombinasyonu için dört olası rota içerir.

originIndex ve destinationIndex yanıt alanlarını kullanarak yanıttaki her rotayı tanımlayın. Örneğin, yanıttaki 1/originIndex değeri, istekteki origins dizisinin 1. dizinindeki referans noktasından hesaplanan bir rotaya karşılık gelir.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

gRPC örnekleri

Örneğin, gRPC istekleri için Örnek gRPC isteği örneklerine bakın. Bu sayfadaki Java örneği hem Compute Routes hem de Compute Route Matrisi'ni çağırır.