Varsayılan olarak, ara yol işaretleri teslim alma ve bırakma için durma noktası olarak kullanılır ancak bir ara yol işaretinin sadece geçiş için kullanılacağını da belirtebilirsiniz.
Bir başlangıç, geçişli ara ve hedef yol noktası içeren bir rota, başlangıç ile hedefi birbirine bağlayan ve ara (via
olarak adlandırılır) yol noktasından geçen tek bir rota bacağı içerir.
Waypoint (REST) veya Waypoint (gRPC) API'sini kullanarak bir ara yol noktasının via
özelliğini true
olarak ayarlayarak bu yol noktasını geçiş yolu olarak yapılandırın.
via
mülkü, kullanıcının harita üzerinde yol işaretçilerini sürüklemesine yanıt olarak rota oluştururken en etkilidir. Bu sayede kullanıcı, nihai rotanın gerçek zamanlı olarak nasıl görünebileceğini görebilir ve yol noktalarının, rota hesaplama işleminin erişebileceği konumlara yerleştirilmesini sağlayabilir.
Aşağıdaki örnekte, bir ara yol noktasının geçiş yolu olarak nasıl işaretleneceği gösterilmektedir.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Ara yol işaretleri için yer kimliklerine erişme
Bir başlangıç, varış veya ara yol işaretinin konumunu adres dizesi veya Artı Kodu olarak belirtirseniz API, ilgili yer kimliğine sahip en alakalı konumu bulmaya çalışır. Sonuçlardaki geocodingResults.intermediates
dizisi, yol işaretlerinin konumuna karşılık gelen yer kimliğini ve konumla ilgili ek verileri içerir.
intermediates
dizisinin her bir öğesi için, istekteki hangi ara yol işaretinin yanıttaki yer kimliğine karşılık geldiğini belirlemek üzere intermediateWaypointRequestIndex
mülkünü kullanın.
Örneğin:
Bir istekte üç ara yol noktası belirtirsiniz. Bu yol noktalarından ikisi adres dizeleriyle, biri de enlem/boylam koordinatlarıyla belirtilir.
Sonuçlarda
geocodingResults
dizisini döndürmeyi belirtmek için yanıt alanı maskesinegeocodingResults
öğesini dahil edersiniz.
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA" }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } }, { "address": "1836 El Camino Real, Redwood City, CA 94063" } ], "travelMode": "DRIVE", }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' 'https://routes.googleapis.com/directions/v2:computeRoutes'
Yanıt, başlangıç, varış ve üç yol noktasından ikisinin yer kimliğini içeren geocodingResults
dizisini içerir. Bunlar, isteğin 0 ve 2. dizinindeki yol işaretleridir. İsteğin 1. dizinindeki yol noktası, enlem/boylam koordinatları kullanılarak belirtildiği için yanıttaki geocodingResults
dizisinden çıkarılır.
{ "routes": [{...}], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }