डिफ़ॉल्ट रूप से, एपीआई इंटरमीडिएट वेपॉइंट को किसी रूट पर पड़ने वाले स्टॉप के तौर पर मानता है.
हालांकि, इंटरमीडिएट वेपॉइंट को पास-थ्रू via वेपॉइंट के तौर पर कॉन्फ़िगर किया जा सकता है. इससे वाहन बिना रुके, इस वेपॉइंट से गुज़र सकता है.
किसी खास रूट को आकार देने या उसमें बदलाव करने के लिए, पास-थ्रू वेपॉइंट का इस्तेमाल करें. रूट को पिकअप या ड्रॉप-ऑफ़ के अलग-अलग स्टॉप में बांटने के बजाय, पास-थ्रू वेपॉइंट, राउटिंग इंजन को डेस्टिनेशन पर जाने के रास्ते में किसी खास जगह से गुज़रने के लिए मजबूर करता है. उदाहरण के लिए, किसी पसंदीदा सड़क के सेगमेंट पर जाने या किसी खतरे से बचने के लिए.
किसी रूट में ऑरिजिन, एक या उससे ज़्यादा पास-थ्रू इंटरमीडिएट वेपॉइंट, और डेस्टिनेशन शामिल होता है. इसमें सिर्फ़ एक रूट लेग होता है, जो ऑरिजिन को सीधे डेस्टिनेशन से जोड़ता है.
किसी इंटरमीडिएट वेपॉइंट को पास-थ्रू वेपॉइंट के तौर पर कॉन्फ़िगर करने के लिए, वेपॉइंट की
via प्रॉपर्टी को true पर सेट करें. यह सेटिंग REST
Waypoint रिसॉर्स या gRPC
Waypoint मैसेज में की जा सकती है.
Routes API, पतों, Place ID, और अक्षांश और देशांतर
निर्देशांकों को स्वीकार करता है. हालांकि, अक्षांश और देशांतर या latLng, निर्देशांक, पास-थ्रू वेपॉइंट के लिए रूट में सबसे सटीक बदलाव उपलब्ध कराते हैं.
जब मैप पर वेपॉइंट को खींचकर रूट बनाए जाते हैं, तब via प्रॉपर्टी सबसे ज़्यादा कारगर होती है. इस तरीके से, आपको रीयल टाइम में यह देखने में मदद मिलती है कि फ़ाइनल रूट कैसा दिखता है. साथ ही, आपको वेपॉइंट को ऐसी जगहों पर रखने में मदद मिलती है जहां आसानी से पहुंचा जा सके.
उदाहरण: पास-थ्रू वेपॉइंट सेट करना
यहां दिए गए उदाहरण में, पूरे computeRoutes POST अनुरोध में, इंटरमीडिएट
वेपॉइंट पर "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'
पास-थ्रू वेपॉइंट के लिए पतों या Place ID का इस्तेमाल करना
हमारा सुझाव है कि पास-थ्रू राउटिंग के लिए, अक्षांश और देशांतर निर्देशांकों का इस्तेमाल करें. हालांकि, इंटरमीडिएट वेपॉइंट को पता स्ट्रिंग या Place ID का इस्तेमाल करके भी तय किया जा सकता है.
पास-थ्रू वेपॉइंट के लिए, पता या जगह का आईडी का इस्तेमाल करने पर, एपीआई जगह को इंटरपोलेट करता है और उसे सबसे नज़दीकी नेविगेट किए जा सकने वाले रास्ते पर स्नैप करता है. कभी-कभी, सड़क पर स्नैप करने की इस प्रोसेस की वजह से, सटीक निर्देशांकों की तुलना में रूट में बदलाव या गड़बड़ियां हो सकती हैं.
अगर पता स्ट्रिंग या प्लस कोड का इस्तेमाल करके कोई वेपॉइंट तय किया जाता है, तो एपीआई
जगह को जियोकोड करता है और जवाब में
geocodingResults.intermediates
कलेक्शन में, मैच करने वाला Place ID दिखाता है.
intermediates कलेक्शन में मौजूद हर एलिमेंट के लिए, यह पता लगाने के लिए कि अनुरोध में मौजूद कौनसे इंटरमीडिएट वेपॉइंट के लिए, जवाब में Place ID मिला है, intermediateWaypointRequestIndex प्रॉपर्टी का इस्तेमाल करें.
उदाहरण: पास-थ्रू वेपॉइंट के लिए Place ID का अनुरोध करना
यहां दिए गए उदाहरण में, तीन पास-थ्रू इंटरमीडिएट
वेपॉइंट वाला अनुरोध दिखाया गया है. इनमें से हर वेपॉइंट के लिए, "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 कलेक्शन शामिल होता है. इसमें ऑरिजिन, डेस्टिनेशन, और उन दो इंटरमीडिएट वेपॉइंट के Place ID शामिल होते हैं जिन्हें आपने अनुरोध इंडेक्स 0 और इंडेक्स 2 पर पते के हिसाब से तय किया था. एपीआई, इंडेक्स 1 पर मौजूद इंटरमीडिएट वेपॉइंट को geocodingResults से हटा देता है, क्योंकि आपने इसे अक्षांश और देशांतर निर्देशांकों का इस्तेमाल करके तय किया था:
{ "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" } ] } }