Rota matrisi alma

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

Kalkış ve varış noktalarının listelendiği bu yöntem, her kalkışta başlayıp her hedefte sona eren bir rotanın mesafesini ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

Toplu taşıma sırasında bir rota matrisi de hesaplayabilirsiniz. Bir örnek için Toplu taşımayla ilgili rota matrisi alma konusuna bakın.

İstek sınırları

Compute Rota Matrisi yöntemleri, adres veya yer kimlikleri kullanan ara noktalar ve öğeler için aşağıdaki istek sınırlarını uygular. Öğeler, bir rota matrisindeki her bir kalkış ve varış noktası arasındaki rotalardır. Bu nedenle, öğe sayısı, başlangıç noktası sayısı ile hedef sayısının çarpımıyla eşittir. Örneğin, 10 kökeniniz ve 10 hedefiniz varsa 100 öğeniz olur:

  • TRANSIT rotası olmayan rotalar için öğe sayısı 625'i aşamaz.

  • TRANSIT rota belirtirseniz öğe sayısı 100'den fazla olamaz.

  • TRAFFIC_AWARE_OPTIMAL değerini belirtirseniz öğe sayısı 100'ü aşamaz. TRAFFIC_AWARE_OPTIMAL hakkında daha fazla bilgi için Trafik verilerinin nasıl eklenip eklenmeyeceğini belirtme bölümüne bakın.

  • Adres veya yer kimliğini kullanarak kalkış ve varış noktaları belirtirseniz bu şekilde toplamda en fazla 50 tane belirtebilirsiniz.

Yanıt hataları

İşlem Rotası Matrisi yöntemlerinin bir özelliği, hataların yanıtın tamamı veya bağımsız yanıt öğeleri için döndürülebilmesidir. Örneğin, isteğin bozuk olması (örneğin, sıfır kaynağı varsa) yanıtın tamamında hata bulunur.

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

gRPC Akış sonuçları

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

Akış tarafından döndürülen öğelerin herhangi bir sırada döndürüleceği garanti edilmez. Dolayısıyla, her yanıt öğesi bir origin_index ve bir destination_index içerir. İstek tarafından belirtilen başlangıç noktaları 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 saklanması önemlidir.

Rota Matrisi Örnekleri Hesaplama

Rota matrisi hesaplamak için HTTP isteğinde computeRouteMatrix yöntemini kullanın.

HTTP örneği

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

  • İki başlangıç noktası ve iki hedef ara nokta içeren bir dizi belirtin. Yöntem, her kalkış noktasından her hedefe giden rotayı hesaplar. Böylece yanıt dört rota içerir.

    Dizide, ilk öğe 0 dizininde, ikincisi dizin 1'dedir ve bu şekilde devam eder.

  • Hangi yanıt (REST) veya ComputeRoutesResponse (gRPC) alanlarının döndürüleceğini belirtmek için bir yanıt alanı maskesi ekleyin. Bu örnekte, isteği her bir rota için originIndex, destinationIndex, duration, distanceMeters, status ve condition döndürülecek şekilde yapılandırın. Daha fazla bilgi için Döndürülecek alanları seçme bölümüne bakın.

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 kalkış ve varış ara noktalarının kombinasyonu için dört olası rota içerir.

originIndex ve destinationIndex yanıt alanlarını kullanarak yanıttaki her bir rotayı tanımlayın. Örneğin, yanıttaki originIndex değeri 1, istekteki origins dizisindeki 1. dizinde ara noktadan 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 ile ilgili örneklere bakın. Bu sayfadaki Java örneğinde hem İşlem Rotaları hem de İşlem Rotası Matrisi'ni çağırır.