डिफ़ॉल्ट रूप से, एपीआई इंटरमीडिएट वेपॉइंट को रास्ते में पड़ने वाले स्टॉप के तौर पर मानता है.
हालांकि, किसी इंटरमीडिएट वेपॉइंट को पास-थ्रू 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'
पास-थ्रू वेपॉइंट के लिए पतों या जगह के आईडी का इस्तेमाल करना
हमारा सुझाव है कि सटीक पास-थ्रू रूटिंग के लिए, अक्षांश और देशांतर के निर्देशांकों का इस्तेमाल करें. हालांकि, पते की स्ट्रिंग या जगह के आईडी का इस्तेमाल करके भी इंटरमीडिएट वेपॉइंट तय किए जा सकते हैं.
जब किसी पास-थ्रू वेपॉइंट के लिए पते या जगह के आईडी का इस्तेमाल किया जाता है, तो एपीआई जगह की जानकारी को इंटरपोलेट करता है और उसे नेविगेट की जा सकने वाली सबसे नज़दीकी सड़क पर स्नैप करता है. सड़क से स्नैप करने की इस प्रोसेस की वजह से, कभी-कभी सटीक निर्देशांकों की तुलना में रास्ते में अंतर या गड़बड़ियां हो सकती हैं.
अगर आपने पते की स्ट्रिंग या Plus Code का इस्तेमाल करके कोई वेपॉइंट तय किया है, तो एपीआई उस जगह को जियोकोड करता है. साथ ही, रिस्पॉन्स में 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" } ] } }