Rota matrisi alma

Avrupa Ekonomik Alanı (AEA) geliştiricileri

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

Başlangıç ve hedef listesi verildiğinde yöntem, her başlangıç noktasından başlayıp her hedefte biten bir rotanın mesafesini ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

Toplu taşıma araçlarıyla da rota matrisi hesaplayabilirsiniz. Örneğin, Toplu taşıma araçlarıyla rota matrisi alma başlıklı makaleye bakın.

İstek sınırları

Compute Route Matrix 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 başlangıç ve varış noktası arasındaki rotalardır. Bu nedenle, öğe sayısı, başlangıç noktası sayısı çarpı varış noktası sayısıdır. Örneğin, 10 başlangıç ve 10 hedefiniz varsa 100 öğeniz vardır:

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

  • 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 dahil edilip edilmeyeceğini belirtme başlıklı makaleyi inceleyin.

  • Adres veya yer kimliği kullanarak kaynak ya da hedef belirtirseniz, toplamda en fazla 50 tane belirtebilirsiniz.

Yanıt hataları

Compute Route Matrix 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ı biçimlendirilmişse (örneğin, sıfır kaynağı varsa) yanıtın tamamında hata bulunur.

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

gRPC akışı sonuçları

ComputeRouteMatrix gRPC yöntemi, kaynak ve hedef listesini alır ve her kaynak-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ülmesi garanti edilmez. Bu nedenle, her yanıt öğesi bir origin_index ve bir destination_index içerir. İstek tarafından belirtilen başlangıç ve varış noktaları için rota başlangıcı, belirli bir öğe için origins[origin_index] değerine, rota varışı ise destinations[destination_index] değerine eşittir. Bu diziler sıfır tabanlıdır. Kaynak ve hedef liste sıralamalarının saklanması önemlidir.

Rota matrisi hesaplama örnekleri

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:

  • İki başlangıç ve iki hedef ara nokta dizisi belirtin. Yöntem, her başlangıç noktasından her varış noktasına bir rota hesaplar. Bu nedenle yanıtta dört rota bulunur.

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

  • Hangi alanların döndürüleceğini belirtmek için bir yanıt alanı maskesi ekleyin: response (REST) veya ComputeRoutesResponse (gRPC). 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 başlangıç ve hedef ara noktalarının kombinasyonu için dört olası rotayı içeriyor.

Yanıt alanlarında 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 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 bölümündeki örneklere bakın. Bu sayfadaki Java örneği hem Compute Routes hem de Compute Route Matrix'i çağırır.