रूट का हिसाब लगाने के लिए, आपको कम से कम रूट के शुरुआती और डेस्टिनेशन की जगहों की जानकारी देनी होगी. इन जगहों को रास्ते पर वेपॉइंट के तौर पर तय किया जाता है.
शुरुआती और आखिरी जगह के अलावा, अलग-अलग तरह के वेपॉइंट तय किए जा सकते हैं. साथ ही, यह भी तय किया जा सकता है कि किसी रास्ते के लिए वेपॉइंट को कैसे मैनेज किया जाए. ज़्यादा जानकारी और उदाहरणों के लिए, ये विषय देखें:
- वाहन की दिशा और सड़क के किनारे की जानकारी देना
- इंटरमीडिएट वेपॉइंट तय करना
- रास्ते में स्टॉप सेट करना
- किसी रास्ते से गुज़रने के लिए कोई पॉइंट सेट करना
- अपने रास्ते में स्टॉप के क्रम को ऑप्टिमाइज़ करना
किसी रास्ते के लिए जगहों की जानकारी देना
किसी जगह को दिखाने के लिए, Waypoint (REST) या Waypoint (gRPC) ऑब्जेक्ट बनाएं. वेपॉइंट की परिभाषा में, इनमें से किसी भी तरीके से जगह की जानकारी दी जा सकती है:
- जगह का आईडी (सुझाया गया)
- अक्षांश/देशांतर के कोऑर्डिनेट
- पते की स्ट्रिंग ("Chicago, IL" या "Darwin, NT, Australia")
- नेविगेशन पॉइंट टोकन
- Plus Code
अनुरोध में सभी वेपॉइंट के लिए जगहें, एक ही तरीके से तय की जा सकती हैं या उन्हें मिलाया जा सकता है. उदाहरण के लिए, शुरुआती वेपॉइंट के लिए अक्षांश/देशांतर निर्देशांकों का इस्तेमाल किया जा सकता है. साथ ही, मंज़िल के वेपॉइंट के लिए जगह के आईडी का इस्तेमाल किया जा सकता है.
बेहतर और सटीक नतीजे पाने के लिए, अक्षांश/देशांतर निर्देशांक या पते की स्ट्रिंग के बजाय, जगह के आईडी का इस्तेमाल करें. जगह के आईडी, यूनीक और साफ़ तौर पर जानकारी देने वाले होते हैं. साथ ही, ये रूटिंग के लिए जियोकोडिंग के फ़ायदे देते हैं. जैसे, ऐक्सेस पॉइंट और ट्रैफ़िक वैरिएबल. इनकी मदद से, ऐसी स्थितियों से बचा जा सकता है जो जगह की जानकारी देने के अन्य तरीकों से पैदा हो सकती हैं:
- अक्षांश/देशांतर निर्देशांकों का इस्तेमाल करने से, जगह की जानकारी उन निर्देशांकों के सबसे नज़दीकी सड़क पर स्नैप हो सकती है. ऐसा हो सकता है कि वह सड़क, प्रॉपर्टी का ऐक्सेस पॉइंट न हो या उस सड़क से मंज़िल तक जल्दी या सुरक्षित तरीके से न पहुंचा जा सके.
- पते की स्ट्रिंग को पहले Routes API से जियोकोड करना होगा, ताकि उन्हें अक्षांश/देशांतर निर्देशांकों में बदला जा सके. इसके बाद ही, रास्ते का हिसाब लगाया जा सकता है. इस कन्वर्ज़न से परफ़ॉर्मेंस पर असर पड़ सकता है.
जगह के आईडी के तौर पर कोई जगह तय करना
किसी वेपॉइंट की जगह की जानकारी देने के लिए, जगह के आईडी का इस्तेमाल किया जा सकता है. अक्षांश और देशांतर के निर्देशांक, सड़कों पर स्नैप किए जाते हैं. इसलिए, आपको कुछ मामलों में जगह के आईडी से बेहतर नतीजे मिल सकते हैं.
Geocoding API और Places API (नया) (इसमें ऑटोकंप्लीट (नया) भी शामिल है) से जगह के आईडी वापस पाना. जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह के आईडी की खास जानकारी देखें.
इस उदाहरण में, placeId प्रॉपर्टी का इस्तेमाल करके, origin और destination, दोनों के लिए जगह का आईडी पास किया गया है:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
अक्षांश और देशांतर निर्देशांक के तौर पर किसी जगह की जानकारी देना
वेपॉइंट में जगह की जानकारी देने के लिए, अक्षांश/देशांतर निर्देशांकों का इस्तेमाल करके, Location (REST) या Location (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 ("टॉप-लेवल डोमेन") वैल्यू के तौर पर तय करता है. ज़्यादातर 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को पास करके, एक वेपॉइंट बनाएं.
यहां दिए गए उदाहरण में, navigation_point_token प्रॉपर्टी का इस्तेमाल करके, origin और destination, दोनों के लिए नेविगेशन पॉइंट टोकन पास किया गया है:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
Plus Code के तौर पर किसी जगह की जानकारी देना
कई लोगों के पास सटीक पता नहीं होता. इस वजह से, उन्हें डिलीवरी पाने में मुश्किल हो सकती है. इसके अलावा, जिन लोगों के पास पता है वे किसी खास जगह पर डिलीवरी लेना पसंद कर सकते हैं. जैसे, पीछे का दरवाज़ा या लोडिंग डॉक.
Plus Codes, उन लोगों या जगहों के लिए मोहल्ले के पते की तरह होते हैं जिनका कोई असल पता नहीं होता. Plus Code, सड़क के नाम और नंबर वाले पतों के बजाय, अक्षांश/देशांतर के निर्देशांकों पर आधारित होते हैं. इन्हें संख्याओं और अक्षरों के तौर पर दिखाया जाता है.
Google ने Plus Codes को इसलिए डेवलप किया है, ताकि हर व्यक्ति और जगह को एक पता मिल सके. Plus Code, जगह की जानकारी देने वाला एक कोड होता है. इसे अक्षांश/देशांतर निर्देशांकों से बनाया जाता है. यह किसी इलाके को दिखाता है: डिग्री के 1/8000वें हिस्से से लेकर डिग्री के 1/8000वें हिस्से तक (भूमध्य रेखा पर करीब 14 मीटर x 14 मीटर) या इससे छोटा. Plus Codes का इस्तेमाल, मोहल्ले के पते के तौर पर किया जा सकता है. ऐसा उन जगहों पर किया जा सकता है जहां मोहल्ले के पते मौजूद नहीं हैं या जहां इमारतों को नंबर नहीं दिए गए हैं या सड़कों के नाम नहीं हैं.
Plus Code को ग्लोबल कोड या कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाना चाहिए:
- ग्लोबल कोड में चार वर्णों का एरिया कोड और छह या उससे ज़्यादा वर्णों का लोकल कोड होता है.
उदाहरण के लिए, "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 Stanford, CA 94305, USA".
उदाहरण के लिए, Plus Code का इस्तेमाल करके, रास्ते
originऔरdestinationके लिए वेपॉइंट तय करके रास्ते का हिसाब लगाएं:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
Plus Code, Google Maps Platform के एपीआई में काम करते हैं. इनमें ये एपीआई शामिल हैं: ऑटोकंप्लीट (नया), जगह की जानकारी (नया), और Geocoding API. उदाहरण के लिए, Geocoding API का इस्तेमाल करके, अक्षांश/देशांतर निर्देशांकों से बताई गई जगह की रिवर्स जियोकोडिंग की जा सकती है. इससे उस जगह का Plus Code पता लगाया जा सकता है.