डिफ़ॉल्ट रूप से, एपीआई इंटरमीडिएट वेपॉइंट को रास्ते में पड़ने वाले स्टॉप के तौर पर मानता है.
हालांकि, इंटरमीडिएट वेपॉइंट को पास-थ्रू via
वेपॉइंट के तौर पर कॉन्फ़िगर किया जा सकता है. इससे वाहन बिना रुके उस वेपॉइंट से गुज़रता है.
किसी खास रास्ते को बनाने या उसमें बदलाव करने के लिए, पास-थ्रू वेपॉइंट का इस्तेमाल करें. रास्ते को अलग-अलग पिकअप या ड्रॉप-ऑफ़ स्टॉप में बांटने के बजाय, पास-थ्रू वेपॉइंट, राउटिंग इंजन को डेस्टिनेशन के रास्ते में किसी खास जगह से गुज़रने के लिए मजबूर करता है. उदाहरण के लिए, किसी पसंदीदा सड़क सेगमेंट का इस्तेमाल करने या किसी ज्ञात खतरे से बचने के लिए.
यात्रा शुरू करने की जगह, एक या उससे ज़्यादा पास-थ्रू इंटरमीडिएट वेपॉइंट, और मंज़िल वाली यात्रा में सिर्फ़ एक रूट लेग होता है. यह रूट लेग, यात्रा शुरू करने की जगह को सीधे तौर पर मंज़िल से जोड़ता है.
किसी इंटरमीडिएट वेपॉइंट को पास-थ्रू वेपॉइंट के तौर पर कॉन्फ़िगर करने के लिए, REST Waypoint रिसॉर्स या gRPC Waypoint मैसेज में, वेपॉइंट की via प्रॉपर्टी को true पर सेट करें.
Routes API, पतों, जगह के आईडी, और अक्षांश और देशांतर निर्देशांकों को स्वीकार करता है. हालांकि, अक्षांश और देशांतर या latLng निर्देशांक, पास-थ्रू वेपॉइंट के लिए सबसे सटीक रूट अडजस्टमेंट उपलब्ध कराते हैं.
via प्रॉपर्टी सबसे ज़्यादा असरदार तब होती है, जब मैप पर वेपॉइंट खींचकर रास्ते बनाए जाते हैं. इस तरीके से, आपको रीयल टाइम में यह देखने में मदद मिलती है कि फ़ाइनल रूट कैसा दिखता है. साथ ही, इससे आपको आसानी से पहुंचने वाली जगहों पर वेपॉइंट सेट करने में मदद मिलती है.
उदाहरण: पास-थ्रू वेपॉइंट सेट करना
यहां दिए गए उदाहरण में, पूरे computeRoutes पीओएसटी अनुरोध में इंटरमीडिएट वेपॉइंट पर "via": true सेट करने का तरीका बताया गया है:
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true } ], "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' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
पास-थ्रू वेपॉइंट के लिए पतों या जगह के आईडी का इस्तेमाल करना
हमारा सुझाव है कि सटीक पास-थ्रू राउटिंग के लिए, अक्षांश और देशांतर के निर्देशांकों का इस्तेमाल करें. हालांकि, पता स्ट्रिंग या जगह के आईडी का इस्तेमाल करके, बीच के वेपॉइंट भी तय किए जा सकते हैं.
जब पास-थ्रू वेपॉइंट के लिए किसी पते या जगह के आईडी का इस्तेमाल किया जाता है, तो एपीआई उस जगह को इंटरपोलेट करता है और उसे नेविगेट की जा सकने वाली सबसे नज़दीकी सड़क पर स्नैप करता है. सड़क पर स्नैप करने की इस प्रोसेस की वजह से, कभी-कभी सटीक निर्देशांकों की तुलना में रास्ते में अंतर या गड़बड़ियां हो सकती हैं.
अगर पते की स्ट्रिंग या प्लस कोड का इस्तेमाल करके कोई वेपॉइंट तय किया जाता है, तो एपीआई उस जगह को जियोकोड करता है. साथ ही, रिस्पॉन्स में geocodingResults.intermediates कलेक्शन में, मैच होने वाली जगह का आईडी दिखाता है.
intermediates कलेक्शन के हर एलिमेंट के लिए, intermediateWaypointRequestIndex प्रॉपर्टी का इस्तेमाल करें. इससे यह तय किया जा सकेगा कि अनुरोध में मौजूद कौनसे इंटरमीडिएट वेपॉइंट, जवाब में मौजूद जगह के आईडी से मेल खाते हैं.
उदाहरण: पास-थ्रू वेपॉइंट के लिए प्लेस आईडी का अनुरोध करना
यहां दिए गए उदाहरण में, तीन पास-थ्रू इंटरमीडिएट वेपॉइंट वाला अनुरोध दिखाया गया है. इनमें से हर एक में "via": true की जानकारी दी गई है:
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", "via": true }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true }, { "address": "1836 El Camino Real, Redwood City, CA 94063", "via": true } ], "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'
जवाब में geocodingResults कलेक्शन शामिल है. इसमें शुरुआत की जगह, मंज़िल, और दो इंटरमीडिएट वेपॉइंट के जगह के आईडी शामिल हैं. आपने अनुरोध इंडेक्स 0 और इंडेक्स 2 पर पते के हिसाब से इनकी जानकारी दी थी. एपीआई, geocodingResults से इंडेक्स 1 पर मौजूद इंटरमीडिएट वेपॉइंट को हटा देता है. ऐसा इसलिए होता है, क्योंकि आपने इसे अक्षांश और देशांतर निर्देशांकों का इस्तेमाल करके तय किया है:
{ "routes": [ { "distanceMeters": 54200, "duration": "2400s", "legs": [ { "distanceMeters": 54200, "duration": "2400s", "startLocation": { "latLng": { "latitude": 37.4220, "longitude": -122.0841 } }, "endLocation": { "latLng": { "latitude": 37.7786, "longitude": -122.3893 } } } ] } ], "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" } ] } }