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 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. Örnek için Toplu taşıma ile ilgili 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, 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 hedef noktanız varsa 100 öğeniz vardır:
TRANSITrotaları olmayan rotalarda öğe sayısı 625'i aşamaz.TRANSITrotası belirtirseniz öğe sayısı 100'ü aşamaz.TRAFFIC_AWARE_OPTIMALbelirtirseniz öğe sayısı 100'ü aşamaz.TRAFFIC_AWARE_OPTIMALhakkı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 başlangıç ve hedef kombinasyonu için rota hesaplanamıyorsa) yalnızca hatadan etkilenen öğeler bir hata kodu döndürür.
gRPC Stream sonuçları
ComputeRouteMatrix gRPC yöntemi, başlangıç ve varış noktalarının listesini alır ve başlangıç ile varış noktası kombinasyonlarının her biri 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. İstekle belirtilen başlangıç ve varış noktaları için rota başlangıcı, belirli bir öğe için origins[origin_index] değerine, rota varış noktası ise destinations[destination_index] değerine eşittir.
Bu diziler sıfır olarak dizine eklenir. Kaynak ve hedef liste sıralamalarını saklamak ö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 dizininde, ikinci öğe 1 dizininde yer alır ve bu şekilde devam eder.
Döndürülecek yanıt (REST) veya ComputeRoutesResponse (gRPC) alanlarını belirtmek için bir yanıt alan maskesi ekleyin. Bu örnekte, her rota için
originIndex,destinationIndex,duration,distanceMeters,statusveconditiondö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 varış noktası 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.