रास्ता चुनने के बारे में जानकारी देने वाली गाइड: Roads Management Insights

इमेज

इस दस्तावेज़ में, सड़क प्रबंधन से जुड़ी अहम जानकारी (आरएमआई) प्रॉडक्ट के लिए, RoadSelection API का इस्तेमाल करके SelectedRoutes तय करने के सबसे सही तरीके बताए गए हैं. चुने गए रास्तों को सही तरीके से तय करना सबसे ज़रूरी है. इससे यह पक्का किया जा सकता है कि आपको उन सड़क सेगमेंट के लिए सटीक और भरोसेमंद ट्रैफ़िक डेटा मिले जिनकी आपको निगरानी करनी है. तकनीकी जानकारी के लिए, कृपया Road Selection API का आधिकारिक दस्तावेज़ देखें.

चुने गए रूट बनाने के मुख्य सिद्धांत

निगरानी के लिए SelectedRoute तय करते समय, आपको इन सिद्धांतों का पालन करना चाहिए. इससे यह पक्का किया जा सकेगा कि SelectedRoute सटीक है और डेटा मान्य है.

1. सड़क के किनारे की जगह के हिसाब से सटीक जानकारी दें

SelectedRoute को यात्रा की एक ही दिशा के बारे में जानकारी देनी चाहिए. डिवाइडर वाले हाइवे या मीडियन वाली सड़कों के लिए, आपको हर दिशा के लिए अलग-अलग SelectedRoute ऑब्जेक्ट बनाने चाहिए. उदाहरण के लिए, उत्तर की ओर जाने के लिए एक और दक्षिण की ओर जाने के लिए एक. पक्का करें कि आपने जिस दिशा के लिए मॉनिटरिंग करनी है उसके हिसाब से, सड़क के सही किनारे पर शुरुआती जगह, मंज़िल, और रास्ते में पड़ने वाले सभी वेपॉइंट मौजूद हों. अगर किसी ओरिजन या डेस्टिनेशन को डिवाइड किए गए हाइवे की गलत साइड पर रखा जाता है, तो इससे अनचाहे SelectedRoutes या डेटा से जुड़ी गड़बड़ियां हो सकती हैं.

2. कई लेवल वाली सड़कों और ओवरपास के लिए निर्देश

कई लेवल वाली जटिल सड़कों (जैसे, स्टैक किए गए हाइवे, ओवरपास, जटिल इंटरचेंज) पर, अक्षांश और देशांतर का एक जोड़ा अस्पष्ट हो सकता है. इससे रूट को गलत लेवल पर "स्नैप" किया जा सकता है. ऐसा होने से रोकने के लिए, आपको इंटरमीडिएट वेपॉइंट का इस्तेमाल करना चाहिए, ताकि रास्ते को सही सड़क सेगमेंट और लेवल पर ले जाया जा सके. एक या उससे ज़्यादा वेपॉइंट जोड़ने से, यह पक्का किया जा सकता है कि रूट आपकी ज़रूरत के हिसाब से हो.

3. मान्य शुरुआती और आखिरी पॉइंट तय करना

SelectedRoute, सुरंग के अंदर शुरू या खत्म नहीं हो सकता. SelectedRoute के लिए, यात्रा शुरू करने और खत्म करने की जगहें खुले में होनी चाहिए. चुने गए ऐसे रास्ते इस्तेमाल किए जा सकते हैं जिनमें सुरंगें आती हैं. हालांकि, मॉनिटरिंग सेगमेंट की शुरुआत या खत्म होने की जगह सुरंग के अंदर नहीं होनी चाहिए.

इमेज

4. रास्ते की सही लंबाई तय करना

चुना गया रास्ता, ज़रूरत के हिसाब से तय किया जा सकता है. इसे अलग-अलग स्केल पर तय किया जा सकता है:

  • छोटे रास्ते: चुने गए रास्ते की लंबाई एक शहर ब्लॉक जितनी भी हो सकती है. यह शहरी इलाकों में ज़्यादा बारीकी से विश्लेषण करने के लिए फ़ायदेमंद है.
  • एक जैसे रूट: एक जैसी रिपोर्टिंग के लिए, एक जैसी दूरी वाले SelectedRoutes तय किए जा सकते हैं. उदाहरण के लिए, हर 0.5 मील.
  • लंबे रास्ते: चुने गए रास्ते में, सड़क का लंबा और लगातार हिस्सा शामिल हो सकता है. यह पूरे हाइवे कॉरिडोर या अहम चौराहों के बीच की मुख्य सड़कों की निगरानी करने के लिए सबसे सही है.

SelectedRoute की ऐसी समयावधि चुनें जो आपकी निगरानी और विश्लेषण की ज़रूरतों के हिसाब से सबसे सही हो.

5. ऊर्ध्वाधर दूरी वाली सड़कों के सेगमेंट की पहचान करना (सुरंगें, फ़्लाइओवर, पुल वगैरह)

अक्षांश और देशांतर के निर्देशांकों का इस्तेमाल करके सड़क के सेगमेंट तय करते समय, उन स्थितियों का ध्यान रखना ज़रूरी है जिनमें सड़क के कई सेगमेंट एक ही दो डाइमेंशन वाली भौगोलिक जगह पर मौजूद होते हैं, लेकिन वे वर्टिकल तौर पर अलग-अलग होते हैं. ऐसा अक्सर सुरंगों, फ़्लाइओवर, ओवरपास, और पुलों जैसी संरचनाओं के साथ होता है. सिर्फ़ अक्षांश और देशांतर पर भरोसा करने से, ऊंचाई को ध्यान में नहीं रखा जाता. इससे चुने गए रास्ते और नेविगेशन में गड़बड़ियां हो सकती हैं. उदाहरण के लिए, किसी सुरंग से गुज़रने वाली सड़क का ओवरहेड अक्षांश और देशांतर, उसके ऊपर की सतह पर मौजूद सड़क के सेगमेंट के अक्षांश और देशांतर के बराबर होगा. इसी तरह, फ़्लाइओवर या पुल, अपने नीचे मौजूद सड़क के साथ हॉरिज़ॉन्टल कोऑर्डिनेट शेयर करेगा. ऊपर-नीचे मौजूद इन सेगमेंट के बीच अंतर न करने पर, राउटिंग सिस्टम ट्रैफ़िक को गलत तरीके से कम लेवल वाली सड़क पर भेज सकता है. ऐसा तब होता है, जब ट्रैफ़िक को ज़्यादा लेवल वाली सड़क पर भेजना हो या इसके उलट.

इस उदाहरण में, बॉस्टन में 42.362347, -71.055935 पर एक बड़ी सुरंग है, जिसे बिग डिग कहा जाता है.

इमेज

जब हम किसी सड़क पर वेपॉइंट रखते हैं, तो उसके सटीक भौगोलिक निर्देशांकों में थोड़ी सी भी गड़बड़ी होने पर, रास्ते की जानकारी में काफ़ी अंतर आ सकता है. रास्ते में पड़ने वाली जगहों की जानकारी को ध्यान में रखना, चुने गए रास्ते का चुनाव करने वाले एल्गोरिदम के लिए एक अहम फ़ैक्टर है.

उदाहरण के लिए, मान लें कि किसी टनल के ठीक अंदर एक वेपॉइंट सेट किया गया है. अगर इस वेपॉइंट की जगह की जानकारी को आस-पास की सड़क के हिसाब से थोड़ा-बहुत बदल दिया जाता है, तो राउटिंग इंजन एक अलग रास्ता जनरेट कर सकता है. ऐसा तब होता है, जब अक्षांश और देशांतर के निर्देशांक लगभग एक जैसे होते हैं. इस घटना से पता चलता है कि सटीक वेपॉइंट इनपुट करना कितना ज़रूरी है. साथ ही, इससे यह भी पता चलता है कि रास्ते को ऑप्टिमाइज़ करने में कितनी मुश्किलों का सामना करना पड़ता है. खास तौर पर, उन इलाकों में जहां सड़कों का नेटवर्क और भौगोलिक विशेषताएं जटिल होती हैं.

इमेज

इमेज

6.सभी सड़कों को ट्रैक नहीं किया जा सकता

चुने गए रास्ते को हमेशा ट्रैक नहीं किया जा सकता

  • रजिस्टर किए गए "अधिकार क्षेत्र" से बाहर
  • "सड़क की उपयोगिता" कम है
    • इस वजह से, समय के साथ ट्रैक करने की सुविधा में बदलाव हो सकता है

पुष्टि की प्रोसेस एसिंक्रोनस तरीके से होती है ⇒ देखें कि रजिस्टर किए गए SelectedRoutes ने इस प्रोसेस को पूरा कर लिया हो

SelectedRoute की परिभाषा के लिए सबसे सही तरीके

चुने गए रास्ते की परिभाषाओं और उससे मिलने वाले डेटा की क्वालिटी को बेहतर बनाने के लिए, इन सबसे सही तरीकों को अपनाएं.

बीच के वेपॉइंट (मिडल पॉइंट) का इस्तेमाल करना

चुने गए रूट छोटे और आसान होने पर भी, कम से कम एक इंटरमीडिएट वेपॉइंट शामिल करने का सुझाव दिया जाता है.

  • क्यों?
    • रास्ते की जानकारी: इससे यह पक्का किया जाता है कि चुना गया रास्ता, आपकी पसंद के हिसाब से हो. खास तौर पर, तब जब शुरुआती जगह और मंज़िल के बीच कई रास्ते मौजूद हों.
    • लूप की सुविधा चालू करता है: लूप या "आउट-एंड-बैक" SelectedRoutes को सही तरीके से दिखाने के लिए ज़रूरी है. इनमें शुरुआती और मंज़िल एक ही होती है.
    • रास्ते में बदलाव का पता लगाने की सुविधा बेहतर होती है: जितने ज़्यादा वेपॉइंट दिए जाएंगे, उतने ही आसानी से उन डेटा पॉइंट का पता लगाया जा सकेगा और उन्हें फ़्लैग किया जा सकेगा जहां ट्रैफ़िक, चुने गए रास्ते से अलग हो सकता है.
  • कैसे?
    • जियोस्पेशल फ़ंक्शन का इस्तेमाल करके, प्रोग्राम के हिसाब से किसी चुने गए रास्ते के बीच का पॉइंट पता लगाया जा सकता है.
    • उदाहरण (BigQuery): ST_LINEINTERPOLATEPOINT फ़ंक्शन का इस्तेमाल करें.
    • उदाहरण (JavaScript): Turf.js लाइब्रेरी से along फ़ंक्शन का इस्तेमाल करें.

बाहरी सिस्टम से रूट मैच करना

अगर किसी बाहरी जीआईएस या किसी ऐसे सिस्टम से रास्ते का डेटा इंपोर्ट किया जा रहा है जो किसी दूसरे रोड नेटवर्क पर बनाया गया है, तो हो सकता है कि निर्देशांक, Google के रोड नेटवर्क से पूरी तरह मेल न खाएं. इससे "अनचाहे रास्ते" मिल सकते हैं.

  • समस्या ठीक करने का तरीका:
    1. सड़क के किनारे की जांच करें: सबसे पहले, पुष्टि करें कि आपका शुरुआती पॉइंट और मूल जगह, सड़क के सही किनारे पर है.
    2. स्नैप-टू-रोड: Roads API v2 matchPath तरीके का इस्तेमाल करके, अपने मौजूदा रास्ते के डेटा को Google के सड़क नेटवर्क पर स्नैप करें.
    3. मैन्युअल तरीके से अडजस्ट करना और फिर से बनाना: Google के रास्तों से मेल खाने के लिए, किसी टूल में अपने वेपॉइंट को मैन्युअल तरीके से अडजस्ट करें. इसके बाद, Routes API के computeRoute तरीके का इस्तेमाल करें. इसमें ट्रैफ़िक की जानकारी को "unaware" पर सेट करें, ताकि Google के नेटवर्क के हिसाब से एक साफ़ पॉलीलाइन जनरेट की जा सके.
    4. ट्रेस करना: अगर कोई और तरीका काम नहीं करता है, तो जीआईएस टूल में Google के सड़क नेटवर्क पर अपना डेटा ओवरले करें. इसके बाद, नए वेपॉइंट बनाने के लिए, रास्ते को मैन्युअल तरीके से ट्रेस करें.

डेटा को साफ़ करना और उसकी पुष्टि करना

BigQuery में मिलने वाला डेटा, असल दुनिया की स्थितियों को दिखाता है. आपको डेटा को साफ़ करने के चरण लागू करने चाहिए, ताकि ऐसे डेटा को फ़िल्टर किया जा सके जो आपके चुने गए मुख्य रूट को नहीं दिखाता है.

रास्ते में बदलाव होने पर जानकारी देना

RMI की सुविधा, Routes API की मदद से काम करती है. यह हमेशा मान्य रास्ता दिखाने की कोशिश करेगा. अगर आपने जो SelectedRoute चुना है वह ब्लॉक है या उस पर बहुत ज़्यादा ट्रैफ़िक है, तो एपीआई ऐसा रास्ता दिखा सकता है जो घूमकर जाता है और आपके तय किए गए इंटरमीडिएट वेपॉइंट से अलग होता है. उदाहरण के लिए, अगर आपके SelectedRoute में A -> B -> C का रास्ता बताया गया है, तो हो सकता है कि रास्ते में बदलाव होने की वजह से, आपको A -> C का रास्ता दिखाया जाए.

उदाहरण के लिए, अगर हम इस रास्ते को प्लॉट करते हैं: https://www.google.com/maps/dir/OR-213,+Oregon+City,+OR+97045/Caufield,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/643+OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/Oregon+City,+OR+97045/Washington+Dr,+Oregon+City,+OR+97045/@45.3754391,-122.5822044,15.2z/data=!4m50!4m49!1m5!1m1!1s0x549570b9f466b4a1:0x6390dd57f70701fd!2m2!1d-122.5787!2d45.3231933!1m5!1m1!1s0x549570ca19ded1b3:0xd28eaf8da19c4509!2m2!1d-122.5756369!2d45.3303343!1m5!1m1!1s0x549576c6b4992137:0xb6ed1e1848a8e2a5!2m2!1d-122.5841289!2d45.3640919!1m5!1m1!1s0x549576c0c48ee6f1:0x86497e036c5dd444!2m2!1d-122.5850086!2d45.3662193!1m5!1m1!1s0x549576bfbca6fa93:0xf6b573219354d3f!2m2!1d-122.5851045!2d45.3696112!1m5!1m1!1s0x549576be3782e5db:0xd0ea93d91e8a0792!2m2!1d-122.5857424!2d45.371047!1m5!1m1!1s0x5495769635216053:0x150f4a4f811b98d6!2m2!1d-122.5870571!2d45.3752342!1m5!1m1!1s0x54957697b928b269:0x2b114f280e6ab0f0!2m2!1d-122.5875209!2d45.3760557!3e0?entry=ttu&g_ep=EgoyMDI1MTAxMy4wIKXMDSoASAFQAw%3D%3D हमें एक बड़ा डाइवर्शन दिख रहा है. ऐसा सड़क की कुछ स्थितियों की वजह से हो सकता है. हालांकि, अगर इसे ठीक नहीं किया जाता है, तो इससे गलत डेटा इकट्ठा हो सकता है

इमेज

आरएमआई के लिए, ये डाइवर्ट किए गए रिकॉर्ड कम काम के होते हैं. ऐसा इसलिए, क्योंकि ये उस चुने गए रूट के बारे में जानकारी नहीं देते जिसे मॉनिटर किया जा रहा है.

  • कार्रवाई: इन लाइनों को सिर्फ़ मिटाएं नहीं. आपको इन गड़बड़ियों को विश्लेषण के लिए फ़्लैग करना चाहिए, ताकि यह पता चल सके कि ये गड़बड़ियां कब और क्यों हो रही हैं.
  • रास्ते में बदलाव की जानकारी देने का तरीका: प्रोग्राम के हिसाब से रास्ते में बदलाव की जानकारी देने के दो मुख्य तरीके हैं:
    1. वेपॉइंट मैच नहीं हो रहा है: देखें कि क्या दिखाए गए रास्ते की ज्यामिति में, आपके तय किए गए सभी इंटरमीडिएट वेपॉइंट शामिल नहीं हैं.
    2. दूरी में अंतर: देखें कि दिखाए गए रास्ते की distance, आपके SelectedRoute की अनुमानित दूरी से काफ़ी अलग है या नहीं. आम तौर पर, थ्रेशोल्ड के तौर पर 5% का अंतर तय किया जाता है.
  • रास्ते में बदलाव का पता लगाने के लिए BigQuery का उदाहरण: SelectedRoutes टेबल (जिसमें तय की जाने वाली दूरी की जानकारी होती है) को RouteResponses टेबल के साथ जोड़ा जा सकता है. साथ ही, CASE स्टेटमेंट का इस्तेमाल करके फ़्लैग बनाया जा सकता है.

"MultiLineString" ज्यामिति को हैंडल करना

BigQuery के GEOGRAPHY डेटा टाइप की एक सीमा है: यह एक ऐसे LineString को सेव नहीं कर सकता जो खुद को ओवरलैप करता हो. उदाहरण के लिए, घुमावदार यू-टर्न, ऐसा रास्ता जो डाइवर्शन की वजह से खुद पर वापस आ जाता है.

  • समस्या: ऐसा होने पर, BigQuery, ज्यामिति को MultiLineString के तौर पर सेव करता है. साथ ही, हो सकता है कि रास्ते के कुछ हिस्से मौजूद न हों.
  • कार्रवाई: आपको अपने मुख्य विश्लेषण से इन रिकॉर्ड को फ़िल्टर करना चाहिए.
    1. BigQuery फ़िल्टर: WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString" का इस्तेमाल करें
  • समाधान:
    1. अगर ओवरलैप किसी अन्य रास्ते की वजह से होता है, तो रिकॉर्ड को ऊपर बताए गए तरीके से फ़िल्टर किया जा सकता है.
    2. अगर आपके चुने गए रास्ते में ओवरलैप है, तो आपको उसे फिर से तय करना होगा. इसके लिए, चुने गए रास्ते को दो या उससे ज़्यादा अलग-अलग SelectedRoute ऑब्जेक्ट में बांटें.

टाइमज़ोन में बदलाव

RMI BigQuery एक्सपोर्ट में मौजूद सभी टाइमस्टैंप डेटा, कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी) में दिया जाता है. स्थानीय टाइमज़ोन में रिपोर्टिंग या विश्लेषण के लिए, आपको इन टाइमस्टैंप को बदलना होगा.

  • समय बदलने के लिए BigQuery का उदाहरण: DATETIME और TIMESTAMP फ़ंक्शन का इस्तेमाल करके, यूटीसी टाइमस्टैंप को किसी स्थानीय टाइमज़ोन में बदलें. जैसे, 'America/Los_Angeles'.

नतीजा

इस गाइड में बताए गए सबसे सही तरीकों का पालन करके, यह पक्का किया जा सकता है कि आपके चुने गए रूट की परिभाषाएं सटीक और भरोसेमंद हों. इससे Roads Management Insights प्रॉडक्ट से, ट्रैफ़िक का भरोसेमंद और कार्रवाई करने लायक डेटा मिलता है. सड़क के मैनेजमेंट से जुड़ी ज़रूरतों के लिए, आरएमआई का पूरा फ़ायदा पाने के लिए, रास्तों को सही तरीके से तय करना, सड़क की जटिल ज्यामिति को मैनेज करना, और मिले हुए डेटा की पुष्टि करना ज़रूरी है.

लेखक

सार्थक गांगोपाध्याय: Google Maps Devrel नाओया मोरितानी: Google Maps Devrel