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