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
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 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.