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ı için bir liste verildiğinde bu yöntem, her kalkıştan başlayıp her hedefte sona eren bir rotanın mesafesini ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

Toplu taşımayla ilgili bir rota matrisi de hesaplayabilirsiniz. Örneğin, Toplu taşımayla ilgili rota matrisi alma bölümüne bakın.

İstek sınırları

İşlem 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 matrisinde her bir kalkış ve varış noktası arasındaki rotalardır. Bu nedenle öğe sayısı, başlangıç noktası sayısının çarpı sayısının hedef sayısının çarpımıdır. Örneğin, 10 kaynağınız ve 10 hedefiniz varsa 100 öğeniz vardır:

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

  • Bir TRANSIT rotası belirtirseniz öğe sayısı 100'ü aşamaz.

  • 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 ve eklenip eklenmeyeceğini belirtme bölümüne bakın.

  • Adres veya yer kimliği kullanarak başlangıç ya da varış noktaları belirtirseniz bu şekilde en fazla 50 tane belirtebilirsiniz.

Yanıt hataları

İşlem 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, istek yanlış biçimlendirilmişse (örneğin, kaynağı sıfırsa) yanıtın tamamı hata içerir.

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

gRPC Akışı sonuçları

ComputeRouteMatrix gRPC yöntemi, başlangıç noktaları ve hedeflerin bir listesini alır ve her bir kalkış ile 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. Bu nedenle, 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 öğede origins[origin_index] ile, rota hedefi ise destinations[destination_index] ile eşdeğerdir. Bu diziler sıfır dizinlidir. Kaynak ve hedef listesi siparişlerini saklamak önemlidir.

Güzergah Matrisi Hesaplama Örnekleri

Rota matrisi hesaplamak için bir 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ıç ve iki hedef ara nokta dizisi belirtin. Bu yöntem, her kaynaktan hedefe giden bir rotayı hesaplar. Böylece yanıt dört rota içerir.

    Dizide, ilk öğenin dizini 0, ikincisi dizin 1'dir vb.

  • 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ürecek şekilde yapılandırın. Daha fazla bilgi için Döndürülecek 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ıtta, tüm kalkış ve hedef ara noktalarının kombinasyonu için dört olası rota bulunur.

originIndex ve destinationIndex yanıt alanlarını kullanarak yanıttaki her bir rotayı tanımlayın. Örneğin, yanıttaki originIndex değerinin 1 olması, 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

Örnek gRPC istekleri için Örnek gRPC isteği bölümündeki örneklere bakın. Bu sayfadaki Java örneği hem Compute Rotaları hem de Compute Rota Matrisi'ni çağırır.