किसी रास्ते का हिसाब लगाने के लिए, आपको कम से कम रास्ते की शुरुआती जगह और मंज़िल की जानकारी देनी होगी. इन जगहों को रास्ते में वेपॉइंट के तौर पर सेट किया जाता है.
शुरुआती और आखिरी जगह के अलावा, अलग-अलग तरह के वेपॉइंट तय किए जा सकते हैं. साथ ही, यह भी तय किया जा सकता है कि किसी रास्ते के लिए वेपॉइंट को कैसे मैनेज किया जाए. ज़्यादा जानकारी और उदाहरणों के लिए, ये विषय देखें:
- वाहन की दिशा और सड़क के किनारे की जानकारी देना
- इंटरमीडिएट वेपॉइंट तय करना
- रास्ते में कोई स्टॉप सेट करना
- किसी रास्ते से गुज़रने के लिए कोई पॉइंट सेट करना
- अपने रास्ते पर स्टॉप के क्रम को ऑप्टिमाइज़ करना
किसी रूट के लिए जगहें तय करना
किसी जगह को दिखाने के लिए, Waypoint (REST) या Waypoint (gRPC) ऑब्जेक्ट बनाएं. वेपॉइंट की परिभाषा में, किसी जगह की जानकारी इनमें से किसी भी तरीके से दी जा सकती है:
- जगह का आईडी (सुझाया गया)
- अक्षांश/देशांतर के कोऑर्डिनेट
- पते की स्ट्रिंग ("शिकागो, इलिनॉय" या "डार्विन, नॉर्दर्न टेरिटरी, ऑस्ट्रेलिया")
- नेविगेशन पॉइंट टोकन
- प्लस कोड
किसी अनुरोध में सभी वेपॉइंट के लिए, एक ही तरीके से जगहें तय की जा सकती हैं. इसके अलावा, उन्हें मिक्स भी किया जा सकता है. उदाहरण के लिए, शुरुआती वेपॉइंट के लिए अक्षांश/देशांतर निर्देशांकों का इस्तेमाल किया जा सकता है. साथ ही, डेस्टिनेशन वेपॉइंट के लिए जगह के आईडी का इस्तेमाल किया जा सकता है.
बेहतर परफ़ॉर्मेंस और सटीक नतीजों के लिए, अक्षांश/देशांतर निर्देशांक या पते की स्ट्रिंग के बजाय जगह के आईडी का इस्तेमाल करें. जगह के आईडी, जगहों की खास तौर पर पहचान करते हैं. साथ ही, ये रूटिंग के लिए जियोकोडिंग के फ़ायदे देते हैं. जैसे, ऐक्सेस पॉइंट और ट्रैफ़िक वैरिएबल. इनसे, लोकेशन की जानकारी देने के अन्य तरीकों से होने वाली इन समस्याओं से बचा जा सकता है:
- अक्षांश/देशांतर के निर्देशांकों का इस्तेमाल करने से, जगह की जानकारी को उन निर्देशांकों के सबसे नज़दीकी सड़क पर स्नैप किया जा सकता है. ऐसा हो सकता है कि वह सड़क, प्रॉपर्टी तक पहुंचने का ऐक्सेस पॉइंट न हो या वह सड़क ऐसी न हो जिससे मंज़िल तक जल्दी या सुरक्षित तरीके से पहुंचा जा सके.
- रास्ते का हिसाब लगाने से पहले, Routes API को पते की स्ट्रिंग को जियोकोड करना होगा, ताकि उन्हें अक्षांश/देशांतर के निर्देशांकों में बदला जा सके. इस कन्वर्ज़न से परफ़ॉर्मेंस पर असर पड़ सकता है.
किसी जगह को जगह के आईडी के तौर पर तय करना
किसी वेपॉइंट की जगह की जानकारी देने के लिए, प्लेस आईडी का इस्तेमाल किया जा सकता है. अक्षांश और देशांतर के निर्देशांकों को सड़कों के हिसाब से सेट किया जाता है. इसलिए, कुछ मामलों में आपको जगह के आईडी से बेहतर नतीजे मिल सकते हैं.
Geocoding API और Places API (नया) (इसमें ऑटोकंप्लीट (नया) भी शामिल है) से जगह के आईडी वापस पाएं. जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह के आईडी के बारे में खास जानकारी देखें.
इस उदाहरण में, origin और destination, दोनों के लिए जगह का आईडी पास करने के लिए, placeId प्रॉपर्टी का इस्तेमाल किया गया है:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
किसी जगह की जानकारी को अक्षांश और देशांतर के निर्देशांक के तौर पर सेट करना
किसी वेपॉइंट में जगह की जानकारी देने के लिए, अक्षांश/देशांतर के निर्देशांकों का इस्तेमाल करके, जगह की जानकारी (REST) या जगह की जानकारी (gRPC) तय करें.
उदाहरण के लिए, latitude और longitude निर्देशांकों का इस्तेमाल करके, रास्ते origin और destination के लिए कोई वेपॉइंट तय करें:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
जगह की जानकारी को पते के तौर पर सेट करना
पते की स्ट्रिंग, पते को दिखाने वाली स्ट्रिंग होती है. जैसे, "1600 Amphitheatre Parkway, Mountain View, CA". जियोकोडिंग, पते की स्ट्रिंग को अक्षांश और देशांतर के निर्देशांकों में बदलने की प्रोसेस है. जैसे, अक्षांश 37.423021 और देशांतर -122.083739.
जब वेपॉइंट की जगह के तौर पर पते की स्ट्रिंग पास की जाती है, तो Routes API, स्ट्रिंग को अक्षांश और देशांतर के निर्देशांकों में बदलने के लिए, उसे अंदरूनी तौर पर जियोकोड करता है.
उदाहरण के लिए, किसी रास्ते का हिसाब लगाने के लिए, पते की स्ट्रिंग का इस्तेमाल करके रास्ते के लिए origin और destination वेपॉइंट तय करें:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
इस उदाहरण में, Routes API दोनों पतों को जियोकोड करता है, ताकि उन्हें अक्षांश और देशांतर के निर्देशांकों में बदला जा सके.
अगर पते की वैल्यू अस्पष्ट है, तो Routes API मिलते-जुलते पतों से अलग करने के लिए, खोज शुरू कर सकता है. उदाहरण के लिए, "1st Street" वैल्यू, "1st street NE" या "1st St SE" के लिए पूरी या आंशिक वैल्यू हो सकती है. यह नतीजा, Geocoding API से मिले नतीजे से अलग हो सकता है. जगह के आईडी का इस्तेमाल करके, गलत जानकारी देने से बचा जा सकता है.
पते के लिए क्षेत्र सेट करना
अगर आपने वेपॉइंट की जगह के तौर पर अधूरा पता डाला है, तो हो सकता है कि एपीआई, जियोकोड किए गए गलत अक्षांश/देशांतर निर्देशांकों का इस्तेमाल करे. उदाहरण के लिए, ड्राइविंग के रास्ते के लिए, ऑरिजिन के तौर पर "टॉलेडो" और डेस्टिनेशन के तौर पर "मैड्रिड" सेट करके अनुरोध किया जाता है:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
इस उदाहरण में, "टॉलेडो" को स्पेन का शहर नहीं, बल्कि अमेरिका के ओहियो राज्य का शहर माना गया है. इसलिए, अनुरोध करने पर खाली कलेक्शन दिखता है. इसका मतलब है कि कोई रास्ता मौजूद नहीं है:
{ [] }
एपीआई को किसी खास इलाके के हिसाब से नतीजे दिखाने के लिए कॉन्फ़िगर किया जा सकता है. इसके लिए, regionCode पैरामीटर शामिल करें. यह पैरामीटर, क्षेत्र के कोड को दो वर्णों वाली सीसीटीएलडी ("टॉप-लेवल डोमेन") वैल्यू के तौर पर दिखाता है. ज़्यादातर ccTLD कोड, ISO 3166-1 कोड के जैसे ही होते हैं. हालांकि, कुछ अपवाद भी हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है. तकनीकी तौर पर, यह "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन और नॉर्दर्न आयरलैंड" के लिए है.
"टॉलेडो" से "मैड्रिड" तक के रास्ते की जानकारी के लिए किए गए अनुरोध में regionCode पैरामीटर शामिल करने पर, सही नतीजे मिलते हैं. ऐसा इसलिए, क्योंकि "टॉलेडो" को स्पेन के एक शहर के तौर पर समझा जाता है:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
जवाब में अब स्पेन के टॉलेडो से स्पेन के मैड्रिड तक का रास्ता शामिल है:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
नेविगेशन पॉइंट टोकन के तौर पर किसी जगह की जानकारी देना
नेविगेशन पॉइंट टोकन एक स्ट्रिंग होती है. यह किसी जगह और रास्ते के बारे में अतिरिक्त जानकारी को एन्कोड करती है. नेविगेशन पॉइंट टोकन, एंट्री पॉइंट, लोडिंग डॉक या पिक-अप के लिए तय की गई जगहों के आस-पास मौजूद ऐक्सेस पॉइंट के लिए सटीक रूटिंग की सुविधा दे सकते हैं. यह सुविधा, खाने की डिलीवरी या राइड शेयरिंग जैसी सेवाओं के लिए मददगार होती है. इन सेवाओं में, पिकअप या ड्रॉपऑफ़ पॉइंट की जानकारी साफ़ तौर पर नहीं दी गई होती है.
Geocoding API के Destinations तरीके को कॉल करके, नेविगेशन पॉइंट टोकन पाया जा सकता है.
नेविगेशन पॉइंट टोकन तय करने के लिए:
- Geocoding API के
SearchDestinationsतरीके सेnavigationPointTokenपाएं. ज़्यादा जानकारी के लिए, Geocoding API से जुड़ा दस्तावेज़ देखें. navigationPointTokenको पास करके, एक वेपॉइंट बनाएं.
यहां दिए गए उदाहरण में, origin और destination, दोनों के लिए नेविगेशन पॉइंट टोकन पास करने के लिए, navigation_point_token प्रॉपर्टी का इस्तेमाल किया गया है:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
Plus Code के तौर पर किसी जगह की जानकारी देना
कई लोगों के पास सटीक पता नहीं होता. इस वजह से, उन्हें डिलीवरी पाने में मुश्किल हो सकती है. इसके अलावा, पते की जानकारी देने वाले लोग, डिलीवरी को ज़्यादा सटीक जगहों पर स्वीकार करना पसंद कर सकते हैं. जैसे, पीछे का दरवाज़ा या लोडिंग डॉक.
प्लस कोड, उन लोगों या जगहों के लिए मोहल्ले के पते की तरह होते हैं जिनके पास कोई असल पता नहीं होता. सड़क के नाम और नंबर वाले पतों के बजाय, Plus Code अक्षांश/देशांतर निर्देशांकों पर आधारित होते हैं. इन्हें संख्याओं और अक्षरों के तौर पर दिखाया जाता है.
Google ने प्लस कोड डेवलप किए हैं, ताकि हर व्यक्ति और हर जगह को पते का फ़ायदा मिल सके. प्लस कोड, जगह के रेफ़रंस का एक एन्कोड किया गया वर्शन होता है. यह अक्षांश/देशांतर के कोऑर्डिनेट से मिलता है. यह किसी इलाके को दिखाता है: 1/8000 डिग्री गुणा 1/8000 डिग्री (भूमध्य रेखा पर करीब 14 मीटर x 14 मीटर) या इससे छोटा. प्लस कोड का इस्तेमाल, उन जगहों पर मोहल्ले के पतों की जगह किया जा सकता है जहां वे मौजूद नहीं हैं या जहां इमारतों के नंबर नहीं हैं या सड़कों के नाम नहीं हैं.
Plus Codes को ग्लोबल कोड या कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाना चाहिए:
- ग्लोबल कोड में चार वर्णों का एरिया कोड और छह या उससे ज़्यादा वर्णों का लोकल कोड शामिल होता है.
उदाहरण के लिए, "1600 Amphitheatre Parkway, Mountain View, CA" पते के लिए, ग्लोबल कोड "849V" और लोकल कोड "CWC8+R9" है. इसके बाद, जगह की वैल्यू के तौर पर "849VCWC8+R9" बताने के लिए, पूरे 10 वर्णों वाले Plus Code का इस्तेमाल करें.
- कंपाउंड कोड में छह या उससे ज़्यादा वर्णों का लोकल कोड होता है. साथ ही, इसमें जगह की जानकारी भी शामिल होती है.
उदाहरण के लिए, "450 Serra Mall, Stanford, CA 94305, USA" पते का लोकल कोड "CRHJ+C3" है. अगर पता एक से ज़्यादा हिस्सों में बंटा हुआ है, तो पते के स्थानीय कोड को शहर, राज्य, पिन कोड, और देश के नाम के साथ जोड़ें. जैसे, "CRHJ+C3 स्टैनफ़र्ड, कैलिफ़ोर्निया 94305, अमेरिका".
उदाहरण के लिए,
originऔरdestinationके लिए Plus Code का इस्तेमाल करके, रास्ते के लिए वेपॉइंट तय करके रास्ते का हिसाब लगाएं:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
प्लस कोड, Google Maps Platform के एपीआई में काम करते हैं. इनमें ये एपीआई शामिल हैं: Autocomplete (New), Place Details (New), और Geocoding API. उदाहरण के लिए, Geocoding API का इस्तेमाल करके, अक्षांश/देशांतर निर्देशांकों से बताई गई जगह की रिवर्स जियोकोडिंग की जा सकती है. इससे उस जगह का Plus Code पता लगाया जा सकता है.