Varsayılan olarak, indirme ve bırakma için durmak üzere ara noktalar kullanılır. Ancak bir ara ara noktanın yalnızca geçiş amacıyla tasarlandığını da belirtebilirsiniz.
Bir başlangıç ara noktası, bir geçiş ara noktası ve bir hedef ara nokta içeren bir rota, yalnızca başlangıç noktasını (via
) ara noktadan geçerken varış noktası ile varış noktası arasında birleştiren tek bir rota ayağı içerir.
Ara noktası (REST) veya Ara Noktası (gRPC) kullanarak referans noktasının via
özelliğini true
olarak ayarlayarak bir ara ara noktayı geçiş referans noktası olacak şekilde yapılandırın.
via
özelliği, kullanıcının haritadaki referans noktalarını sürüklemesine yanıt olarak rota oluştururken en etkilidir. Bu, kullanıcının nihai rotanın nasıl görünebileceğini gerçek zamanlı olarak görmesine olanak tanır ve ara noktaların Compute Rotaları tarafından erişilebilen konumlara yerleştirilmesine yardımcı olur.
Aşağıdaki örnekte, bir ara ara noktanın geçiş ara noktası olarak nasıl işaretleneceği gösterilmektedir.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Ara ara noktalar için yer kimliklerine erişme
Bir kalkış noktası, hedef veya ara referans noktasının konumunu adres dizesi veya Artı kodu olarak belirtirseniz API, karşılık gelen 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ğini ve konumla ilgili ek verileri içerir.
intermediates
dizisinin her bir öğesinde, istekteki hangi ara ara noktanın yanıttaki yer kimliğine karşılık geldiğini belirlemek için intermediateWaypointRequestIndex
özelliğini kullanın.
Örneğin:
Bir istekte üç ara ara nokta belirtirsiniz. Bu ara noktalardan ikisi adres dizeleriyle ve biri de enlem/boylam koordinatlarıyla belirtilir.
Sonuçlarda
geocodingResults
dizisini döndürmek için yanıt alanı maskesinegeocodingResults
eklersiniz.
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, üç ara noktanın ikisi için başlangıç, varış noktası ve yer kimliğini içeren geocodingResults
dizisini içerir. Bunlar, isteğin 0 ve 2. dizinindeki ara noktalardır. İsteğin 1. dizinindeki ara nokta 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" } ] } }