Rota matrisi alma

computeRouteMatrix yöntemini (REST) veya 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ından oluşan bir liste verildiğinde yöntem, rotanın her kalkıştan başlayıp her hedefte sona eren mesafeyi ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

Toplu taşımada rota matrisi de hesaplayabilirsiniz. Örneğin, Toplu taşımada rota matrisi alma bölümünü inceleyin.

İ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. Dolayısıyla öğe sayısı, başlangıç noktası sayısı x varış noktası sayısıdır. Örneğin, 10 kaynağınız ve 10 hedefiniz varsa 100 öğeniz olur:

  • TRANSIT rotası olmayan rotalar için öğe sayısı en fazla 625 olabilir.

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

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

  • Adres veya yer kimliği kullanarak başlangıç ya da varış noktaları belirtirseniz bu şekilde toplamda 50'ye kadar belirtirsiniz.

Yanıt hataları

İşlem Rotası Matrisi yöntemlerinin bir özelliği, yanıtın tamamı veya bağımsız yanıt öğeleri için hata döndürülebilmesidir. Örneğin, istek hatalı biçimlendirilmişse (örneğin, kaynağı sıfırsa) yanıtın tamamı bir hata içerir.

Bununla birlikte, yanıttaki öğelerin alt kümesinde hata söz konusuysa (örneğin, tek bir başlangıç 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ının ve hedeflerin listesini alır ve her bir kalkış 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ı hesaplanana kadar 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 öğe için origins[origin_index], rota hedefi ise destinations[destination_index] ile eşdeğerdir. Bu diziler sıfır dizinlidir. Kaynak ve hedef listesi sıralarını saklamak önemlidir.

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

  • İki başlangıç ve iki hedef ara nokta dizisi belirtin. Yöntem, her kalkıştan her hedefe giden bir rota hesapladığı için yanıt dört rota içerir.

    Dizide, ilk öğe 0 dizinindedir, ikincisi dizin 1'dir 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ürecek ş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 başlangıç ve hedef ara noktalarının kombinasyonu için olası dört rotayı içerir.

originIndex ve destinationIndex yanıt alanlarını kullanarak yanıttaki her bir rotayı tanımlayın. Örneğin, yanıttaki originIndex/1, istekteki origins dizisinin 1. dizinindeki 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 çağrılır.