डिफ़ॉल्ट रूप से, एपीआई इंटरमीडिएट वेपॉइंट को रास्ते में पड़ने वाले स्टॉप के तौर पर मानता है.
हालांकि, इंटरमीडिएट वेपॉइंट को पास-थ्रू 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 ऐरे में मैच करने वाला Place ID दिखाता है.
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" } ] } }