Rota matrisi alma

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

Yöntem, bir başlangıç ve hedef listesi verildiğinde her bir başlangıçtan başlayıp her bir hedefte sona eren bir rotanın mesafesini ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

Toplu taşımada rota matrisi de hesaplayabilirsiniz. Örnek için Toplu taşımada rota matrisi alma başlıklı makaleyi inceleyin.

İstek sınırları

Rota matrisini hesaplama yöntemleri, adres veya yer kimliklerini kullanan yol işaretleri ve öğeler için aşağıdaki istek sınırlarını uygular. Öğeler, bir rota matrisindeki her başlangıç noktası ile hedef arasındaki rotalardır. Bu nedenle öğe sayısı, başlangıç noktalarının sayısı çarpı hedef noktalarının sayısıdır. Örneğin, 10 kaynağınız ve 10 hedefiniz varsa 100 öğeniz vardır:

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

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

  • TRAFFIC_AWARE_OPTIMAL belirtirseniz öğe sayısı 100'ü aşamaz. TRAFFIC_AWARE_OPTIMAL hakkında daha fazla bilgi için Trafik verilerinin nasıl ve ne zaman ekleneceğini belirtin başlıklı makaleyi inceleyin.

  • Başlangıç veya varış noktalarını adres ya da yer kimliği kullanarak belirtirseniz bu şekilde toplam 50'ye kadar nokta belirtebilirsiniz.

Yanıt hataları

Rota matrisini hesaplama yöntemlerinin bir özelliği, hataların yanıtın tamamı veya tek tek yanıt öğeleri için döndürülebilmesidir. Örneğin, istek hatalıysa (ör. sıfır kaynağı varsa) yanıtın tamamı bir hata içerir.

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

gRPC Akış sonuçları

ComputeRouteMatrix gRPC yöntemi, bir kaynak ve hedef listesi alır ve her kaynak ve hedef kombinasyonu için rota bilgilerini içeren bir akış döndürür. Sonuçlar bir akış olarak döndürüldüğünden, sonuçları işlemeye başlamadan önce tüm olası 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 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 olarak dizine eklenir. Kaynak ve hedef liste sıralarını depolamak önemlidir.

Rota matrisi hesaplama örnekleri

Rota matrisini 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:

  • İki başlangıç ve iki hedef yol noktası dizisi belirtin. Yöntem, her bir kaynaktan her bir hedefe giden bir rota hesaplar. Bu nedenle yanıt dört rota içerir.

    Dizideki ilk öğe 0 dizininde, ikinci öğe 1 dizininde ve bu şekilde devam eder.

  • Yanıt'ın (REST) veya ComputeRoutesResponse'ın (gRPC) hangi alanlarının döndürüleceğini belirtmek için bir yanıt alanı maskesi ekleyin. Bu örnekte, her rota için originIndex, destinationIndex, duration, distanceMeters, status ve condition döndürecek şekilde isteği yapılandırın. Daha fazla bilgi için Döndürülecek alanları seçme başlıklı makaleyi 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 kaynak ve hedef yol işaretlerinin kombinasyonu için dört olası rotayı içerir.

originIndex ve destinationIndex yanıt alanlarını kullanarak yanıttaki her rotayı tanımlayın. Örneğin, yanıtta 1 olan bir originIndex, istekteki origins dizisinin 1. dizinindeki yol 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 bölümündeki örneklere bakın. Bu sayfadaki Java örneği hem Compute Routes'u hem de Compute Route Matrix'i çağırır.