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 veya 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
vecondition
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ıttaki 1 değerine sahip 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 isteklerine Ö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.