Rota matrisi alma

Avrupa Ekonomik Alanı'ndaki (AEA) geliştiriciler

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 Routes API'yi kullanın.

Başlangıç ve varış noktalarının listesi verildiğinde yöntem, her başlangıç noktasında başlayıp her varış noktasında sona eren bir rotanın mesafesini ve süresini hesaplar.

Toplu taşıma rotası matrisi alma

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

İ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, rota matrisindeki her başlangıç ve varış noktası arasındaki rotalardır. Bu nedenle, öğe sayısı başlangıç noktası sayısının varış noktası sayısıyla çarpımına eşittir. Örneğin, 10 başlangıç ve 10 varış noktanız varsa 100 öğeniz olur:

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

  • Başlangıç veya varış noktalarını adres ya da yer kimliği kullanarak belirtirseniz bu şekilde toplamda en fazla 50 nokta belirtebilirsiniz.

Yanıt hataları

Compute Route Matrix yöntemlerinin bir özelliği, hataların tüm yanıt veya tek tek yanıt öğeleri için döndürülebilmesidir. Örneğin, istek hatalı biçimlendirilmişse (ör. sıfır kaynağa sahipse) yanıtın tamamı bir hata içerir.

Ancak hata, yanıttaki öğelerin bir alt kümesi için geçerliyse (örneğin, bir başlangıç ve varış noktası 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, başlangıç ve varış noktalarının listesini alır ve her başlangıç ve varış noktası 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şlamak için tüm olası rota kombinasyonlarının hesaplanmasını beklemeniz gerekmez.

Akış tarafından döndürülen öğelerin belirli 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. İstekte belirtilen başlangıç ve varış noktaları için rota başlangıç noktası, belirli bir öğe için origins[origin_index] değerine, rota varış noktası ise destinations[destination_index] değerine eşdeğerdir. Bu diziler sıfır dizinlidir. Kaynak ve hedef liste sıralarını saklamak önemlidir.

Compute Route Matrix Ö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 noktadan oluşan bir dizi 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 dizininde, ikinci öğe 1 dizininde yer alır ve bu şekilde devam eder.

  • response (REST) veya ComputeRoutesResponse (gRPC) alanlarından hangilerinin döndürüleceğini belirtmek için bir yanıt alanı maskesi ekleyin. Bu örnekte, isteği her 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 varış noktası kombinasyonları için olası dört rotayı içerir.

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

Örnek gRPC istekleri için Örnek gRPC isteği sayfasındaki örneklere bakın. Bu sayfadaki Java örneği, hem Compute Routes hem de Compute Route Matrix'i çağırır.