Varsayılan olarak, ara yol noktaları teslim alma ve bırakma için durmak üzere kullanılır. Ancak ara yol noktasının yalnızca geçiş için kullanılacağını da belirtebilirsiniz.
Başlangıç noktası, geçiş noktası ve hedef noktası içeren bir rota, başlangıç noktası ile hedef noktayı bağlayan ve geçiş noktasından (via
olarak adlandırılır) geçen tek bir rota ayağı içerir.
Waypoint (REST) veya Waypoint (gRPC) kullanarak ara yol noktasının via
özelliğini true
olarak ayarlayarak ara yol noktasını geçiş yol noktası olacak şekilde yapılandırın.
via
özelliği, kullanıcının haritadaki yol noktalarını sürüklemesine yanıt olarak rota oluştururken en etkili şekilde kullanılır. Bu sayede kullanıcı, son rotanın gerçek zamanlı olarak nasıl görünebileceğini görebilir ve ara noktaların, rotaları hesaplama hizmetinin erişebileceği konumlara yerleştirilmesini sağlayabilir.
Aşağıdaki örnekte, ara bir yol noktasının nasıl geçiş yol noktası olarak işaretleneceği gösterilmektedir.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Ara durakların yer kimliklerine erişme
Başlangıç, hedef veya ara yol noktasının konumunu adres dizesi ya da Plus Code olarak belirtirseniz API, ilgili yer kimliğine sahip en alakalı konumu bulmaya çalışır. Sonuçlardaki
geocodingResults.intermediates
dizisi, ara noktaların konumuna karşılık gelen yer kimliğinin yanı sıra konumla ilgili ek verileri içerir.
intermediates
dizisinin her öğesi için, isteğin hangi ara yol noktasının yanıttaki yer kimliğine karşılık geldiğini belirlemek üzere intermediateWaypointRequestIndex
özelliğini kullanın.
Örneğin:
Bir istekte üç ara geçiş noktası belirtirsiniz. Bu ara noktaların ikisi adres dizeleriyle, biri ise enlem/boylam koordinatlarıyla belirtilir.
Sonuçlarda
geocodingResults
dizisinin döndürülmesini belirtmek için yanıt alan maskesinegeocodingResults
ekleyin.
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ıtta, başlangıç, hedef ve üç ara noktanın ikisinin yer kimliğini içeren geocodingResults
dizisi yer alıyor. Bunlar, isteğin 0 ve 2. dizinindeki yol noktalarıdır. İsteğin 1. dizinindeki ara nokta, enlem/boylam koordinatları kullanılarak belirtildiği için yanıttaki geocodingResults
dizisinden çıkarıldı.
{ "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" } ] } }