3D मैप में ऊंचाई के मोड और सुविधाओं के बारे में जानकारी

3D मैप पर लाइनों, पॉलीगॉन, मॉडल या मार्कर जैसी सुविधाओं के लिए ऊंचाई तय करते समय, कई ऐसे फ़ैक्टर होते हैं जो उनकी जगह पर असर डाल सकते हैं. ये फ़ैक्टर, सीन में और सीन की रेंडरिंग के साथ उस सुविधा के इंटरैक्ट करने के तरीके, दोनों पर असर डालते हैं. इस दस्तावेज़ में, 3D मैप पर 'AltitudeMode' का इस्तेमाल करने के बारे में बताया गया है. साथ ही, इसमें सुविधाओं के लिए ऊंचाई को मैनेज करने का तरीका भी बताया गया है.

यहां बताया गया है कि AltitudeMode का इस्तेमाल, अलग-अलग तरह की सुविधाओं के साथ कैसे किया जा सकता है:

  • मार्कर: Marker3DElement, Marker3DInteractiveElement

    जगह की ऊंचाई और एक्सट्रूज़न की जानकारी दें.

  • मॉडल: Model3DElement, Model3DInteractiveElement

    मॉडल के ऐंकर पॉइंट की ऊंचाई तय करें. इसका इस्तेमाल, सीन में मॉडल को सही जगह पर रखने के लिए किया जाना चाहिए.

  • पॉलीलाइन: Polyline3DElement, Polyline3DInteractiveElement

    यह तय करें कि पॉलीलाइन के साथ-साथ, ऊंचाई को पोज़िशन पॉइंट पर कैसे लागू किया जाता है.

  • पॉलीगॉन: Polygon3DElement, Polygon3DInteractiveElement

    इससे यह तय किया जाता है कि पॉलीगॉन के साथ-साथ, ऊंचाई को पोज़िशन पॉइंट पर कैसे लागू किया जाता है.

3D एनवायरमेंट में ऊंचाई का इस्तेमाल कैसे किया जाता है

किसी 3D सीन में पॉइंट डालते समय, उनकी फ़ाइनल पोज़िशन पर कैप्चर की गई 3D इमारतों या पेड़ों जैसे ऑब्जेक्ट की मौजूदगी का असर पड़ता है. दो मुख्य सिद्धांतों को समझना ज़रूरी है:

  • डिजिटल टेरेन मॉडल (डीटीएम): यह "बिना पेड़-पौधों वाली ज़मीन" की ऊंचाई को दिखाता है. इसे ज़मीन की प्राकृतिक बनावट के तौर पर समझें. इसमें कोई इमारत, पेड़ या अन्य स्ट्रक्चर शामिल नहीं होते. सभी इलाकों के लिए, डीटीएम का इस्तेमाल किया जाता है. यह डीटीएम, पृथ्वी की ऊंचाई का आधार होता है. इसकी गणना EGM96 का इस्तेमाल करके की जाती है.
  • डिजिटल सरफ़ेस मॉडल (डीएसएम): यह "ऊपरी सतह" की ऊंचाई को दिखाता है. इसमें इमारतें, पेड़, और अन्य स्ट्रक्चर शामिल होते हैं. जिन इलाकों में सुविधाओं को कैप्चर किया गया है (खास तौर पर शहरी इलाकों में, जहां इमारतों का नज़ारा ज़्यादा दिखता है), वहां दिखने वाली सतह, बेस टेरेन से ज़्यादा दिखेगी.

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

3D मैप की एक इमेज, जिसमें डिजिटल टेरेन मॉडल (डीटीएम) और डिजिटल सरफ़ेस मॉडल (डीएसएम) के बीच का अंतर दिखाया गया है.

जब सुविधाओं में ऊंचाई का डेटा मौजूद न हो

अगर आपके पास ऐसा डेटा है जिसमें ऊंचाई की जानकारी नहीं है या आपने Google की किसी दूसरी सेवा, जैसे कि Routes या Places सेवाओं से डेटा का इस्तेमाल किया है, तो अक्सर आपको जवाब में मिली ज्यामिति में ऊंचाई की जानकारी नहीं मिलेगी. ऐसे मामलों में, सीन में सुविधा को शामिल करने के लिए, आपको AltitudeMode को ध्यान से चुनना होगा:

  • इसे ज़मीन से जोड़ें: यह सबसे आसान तरीका है. इसमें सुविधा, इलाके के हिसाब से अपने-आप सेट हो जाएगी. यह मोड, DTM मॉडल का इस्तेमाल करता है.
  • इसे कोई भी ऊंचाई + रिलेटिव मोड दें: आपके पास कोई ऊंचाई असाइन करने का विकल्प होता है. इसके बाद, RELATIVE_TO_GROUND (यह सुविधा, सुविधाओं को DTM मॉडल के हिसाब से सेट करती है) या RELATIVE_TO_MESH (यह सुविधा, सुविधाओं को DSM मॉडल के ऊपर सेट करती है) का इस्तेमाल किया जा सकता है.
  • ऊंचाई की जानकारी पाने के लिए किसी दूसरी सेवा का इस्तेमाल करें: किसी सुविधा की जगह की सटीक डीटीएम ऊंचाई पाने के लिए, Google Maps Platform Elevation API जैसी किसी सेवा का इस्तेमाल किया जा सकता है. अगर यह लाइन या पॉलीगॉन है, तो आपको लाइन या पॉलीगॉन बनाने वाले हर पॉइंट के लिए ऐसा करना होगा.

AltitudeMode विकल्पों का क्या मतलब है और इनका इस्तेमाल कब करना चाहिए?

किसी सुविधा को तय करते समय, AltitudeMode के चार विकल्प दिए जा सकते हैं:

ABSOLUTE

मान लें कि कोई हवाई जहाज़ समुद्र तल से 10,000 फ़ीट की ऊंचाई पर उड़ रहा है. इसकी ऊंचाई तय होती है. इससे कोई फ़र्क़ नहीं पड़ता कि यह किसी पहाड़ के ऊपर उड़ रहा है या किसी घाटी के ऊपर.

इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को समुद्र तल से औसत ऊंचाई के हिसाब से दिखाया जाता है. इसकी गणना EGM96 का इस्तेमाल करके की जाती है. इस सुविधा के लिए, ऊंचाई के कोऑर्डिनेट को समुद्र तल से सटीक ऊंचाई के तौर पर माना जाता है.

इसका इस्तेमाल कब करें: इसका इस्तेमाल उन सुविधाओं के लिए करें जिनकी ऊंचाई के बारे में सटीक जानकारी उपलब्ध है. जैसे, फ़्लाइट के रास्ते, पानी में डूबे हुए ऑब्जेक्ट की सटीक गहराई या फ़िक्स्ड पॉइंट वाले वैज्ञानिक उपकरण.

CLAMP_TO_GROUND

किसी पहाड़ी की ढलान पर पिकनिक के लिए बिछाई गई चादर के बारे में सोचें. पहाड़ी चाहे कितनी भी ढलान वाली हो या समतल हो, कंबल हमेशा दिखने वाली सतह पर समतल रहता है.

इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को सीधे तौर पर ज़मीन पर रखा गया है. ये ज़मीन पर ही दिखेंगी और इलाके की बनावट के हिसाब से दिखेंगी. भले ही, ऊंचाई की कोई भी वैल्यू दी गई हो. इस सुविधा के ऊंचाई वाले निर्देशांक को अनदेखा किया जाता है. इसे सीधे तौर पर इलाके की सतह (डीटीएम) पर प्रोजेक्ट किया जाता है.

इसका इस्तेमाल कब करें: उन सुविधाओं के लिए जिनका हमेशा इलाके के हिसाब से होना ज़रूरी है. जैसे, सड़कें, बाड़, पगडंडियां, प्रॉपर्टी की सीमाएं या इमारतों का बेस.

RELATIVE_TO_GROUND

एक हॉट एयर बलून की कल्पना करें, जो ज़मीन की ऊंचाई (डीटीएम) से 100 मीटर ऊपर उड़ता है. ज़मीन ऊपर की ओर होने पर, गुब्बारा भी ऊपर की ओर जाता है. हालांकि, "बिना पेड़-पौधों वाली ज़मीन" से इसकी दूरी 100 मीटर बनी रहती है.

इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को ज़मीन की सतह (डीटीएम) के हिसाब से दिखाया जाता है. इस सुविधा के ऊंचाई वाले निर्देशांक को, इसकी हॉरिज़ॉन्टल पोज़िशन पर इलाके की ऊंचाई से ऑफ़सेट के तौर पर समझा जाता है.

इसका इस्तेमाल कब करना चाहिए: उन ऑब्जेक्ट के लिए जिनकी ऊंचाई को प्राकृतिक इलाके से एक जैसा बनाए रखना ज़रूरी है. जैसे, ग्रामीण इलाकों में कम्यूनिकेशन टावर या ओवरहेड लाइनें.

RELATIVE_TO_MESH

यह किसी ड्रोन के तय ऊंचाई ऊपर उड़ने जैसा है. यह ऊंचाई, ड्रोन के नीचे मौजूद चीज़ों के हिसाब से तय होती है. जैसे, ज़मीन, इमारत की छत या पेड़ की सबसे ऊपरी शाखा. यह सबसे ज़्यादा दिखने वाली सतह (डीएसएम) के हिसाब से अडजस्ट होता है.

इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को, ज़मीन+इमारत+पानी की सतह (डीएसएम) की सबसे ज़्यादा ऊंचाई के हिसाब से दिखाया जाता है. इस सुविधा के लिए ऊंचाई के कोऑर्डिनेट को, डीएसएम की ऊंचाई से ऑफ़सेट के तौर पर माना जाता है.

इसका इस्तेमाल कब करें: इसका इस्तेमाल उन ऑब्जेक्ट के लिए करें जिन्हें किसी भी चीज़ (डीटीएम, इमारतें, पानी) से कुछ ऊंचाई पर तैरने की ज़रूरत होती है. यह छतों पर मार्कर या उन सुविधाओं के लिए फ़ायदेमंद है जो दिखने वाले सीन के हिसाब से अपने-आप अडजस्ट हो जाती हैं.

ज़्यादा जानकारी के लिए, AltitudeMode कॉन्स्टेंट का दस्तावेज़ देखें.

विज़ुअल उदाहरण और व्यावहारिक इस्तेमाल

इन उदाहरणों में, स्टोनहेंज नाम की जगह का इस्तेमाल किया गया है. इससे यह पता चलता है कि अलग-अलग AltitudeMode विकल्पों से, सुविधा की प्लेसमेंट पर क्या असर पड़ता है. इन उदाहरणों में, सबसे पहले पोज़िशनिंग मार्कर के बारे में बताया गया है. इसके बाद, लाइनों और एरिया के बारे में बताया गया है. इन दोनों के लिए, कुछ अलग-अलग बातों का ध्यान रखना होता है.

पोजीशन मार्कर

मान लें कि पिन मार्कर को इस तरह रखा गया है:

const markerLocation = { lat: 51.1789, lng: -1.8262, altitude: 102.23 };

नीचे दिए गए सीन में, इसे सफ़ेद पिन के तौर पर देखा जा सकता है:

3D मैप सीन में सफ़ेद पिन मार्कर दिख रहा है. इससे मार्कर की डिफ़ॉल्ट जगह के बारे में पता चलता है.

अब यहां दी गई इमेज देखें. इसमें अलग-अलग ऊंचाई वाले मोड का इस्तेमाल करके, अलग-अलग रंगों के पिन दिखाए गए हैं.

3D मैप सीन की इमेज. इसमें अलग-अलग ऊंचाई वाले मोड का इस्तेमाल करके, कई पिन (सफ़ेद, बैंगनी, नारंगी, नीले) दिखाए गए हैं. ये सभी पिन स्टोनहेंज के आस-पास मौजूद हैं.

आइए, देखते हैं कि ऊंचाई के बढ़ते क्रम में, अलग-अलग AltitudeMode से मार्कर की पोज़िशन पर क्या असर पड़ता है.

CLAMP_TO_GROUND (बैंगनी पिन)

यह पिन, ऊंचाई की वैल्यू को अनदेखा करता है और ज़मीन की सबसे नज़दीकी ऊंचाई से जुड़ जाता है. इसे सफ़ेद पिन के ठीक नीचे देखा जा सकता है. यह ज़मीन से "जुड़ा" होता है.

तकनीकी तौर पर, यह मोड असल ऊंचाई को नज़रअंदाज़ करता है और पिन को सबसे नज़दीकी डीटीएम ऊंचाई पर सेट करता है.

ABSOLUTE (White Pin)

यह पिन, समुद्र तल से ऊंचाई की सटीक वैल्यू (102.23 मीटर) का इस्तेमाल करके मार्कर को उस ऊंचाई पर रखता है. यह ऊंचाई, समुद्र तल से ऊंचाई (ईजीएम96) के हिसाब से स्टोनहेंज के किसी एक पत्थर के ऊपर दिखती है.

तकनीकी तौर पर, यह मोड ऊंचाई की दी गई वैल्यू का इस्तेमाल करके, पिन को समुद्र तल से तय की गई ऊंचाई पर रखता है. इस उदाहरण में, यह ऊंचाई स्टोनहेंज की लोकेशन पर मौजूद किसी एक पत्थर के सबसे ऊपरी हिस्से की है.

RELATIVE_TO_GROUND (ऑरेंज पिन)

यह पिन, ज़मीन (डीटीएम) को आधार मानकर बनाई गई है. यह ज़मीन से 102.23 मीटर ऊपर है. यह पिन, हेंज में मौजूद पत्थर के नीचे की ज़मीन से ऊपर तैरती हुई दिखती है.

तकनीकी तौर पर, यह मोड अपने बेस को ज़मीन पर मौजूद असल DTM के लेवल पर सेट करता है. इसके बाद, पिन को इससे 102.23 मीटर ऊपर रखता है.

RELATIVE_TO_MESH (नीला पिन)

यह पिन, दिखने वाली सतह (डीएसएम) को अपने बेस के तौर पर इस्तेमाल करता है और खुद को उस सतह से 102.23 मीटर ऊपर रखता है. इस मोड में, पत्थर की ऊंचाई को मेज़रमेंट में शामिल किया जाता है. इसलिए, यह नारंगी पिन से थोड़ा ऊपर दिखता है.

तकनीकी तौर पर, यह मोड मेष (डीएसएम) को बेस के तौर पर इस्तेमाल करता है और जगह की जानकारी को उससे ऊपर की ऊंचाई पर रखता है. डीएसएम, स्टैंडिंग स्टोन के सबसे ऊपर होता है. इसलिए, इस पिन की ऊंचाई का आकलन करते समय, इस अतिरिक्त ऊंचाई को भी शामिल किया जाता है. इससे यह पिन, RELATIVE_TO_GROUND पिन की तुलना में थोड़ा ऊपर अलाइन हो जाता है.

लाइनें और इलाके जोड़ना

लाइन और एरिया के लिए, सुविधा में मौजूद पॉइंट की ऊंचाई (चाहे बताई गई हो या नहीं) और इस्तेमाल किया जा रहा AltitudeMode, दोनों ज़रूरी हैं. आइए, स्टोनहेंज के साथ एक लाइन की जांच करें. इसमें ये ऊंचाई दी गई हैं:

const lineCoords = [
   { lat: 51.1786, lng : -1.8266, altitude: 101.36 },
   { lat: 51.1787, lng : -1.8264, altitude: 101.18 },
   { lat: 51.178778, lng : -1.826354, altitude: 104.89 },
   { lat: 51.178815, lng : -1.826275, altitude: 107.55 },
   { lat: 51.178923, lng : -1.825980, altitude: 105.53 },
   { lat: 51.1791, lng : -1.8258, altitude: 100.29 },
   { lat: 51.1792, lng : -1.8257, altitude: 100.29 }
];

नीचे दी गई इमेज में, इस लाइन को सफ़ेद रंग में दिखाया गया है. इसमें ऐब्सलूट पोज़िशनिंग का इस्तेमाल किया गया है.

इस 3D मैप में, स्टोनहेंज के चारों ओर एक सफ़ेद लाइन दिखाई गई है. इसे ऐब्सलूट पोज़िशनिंग का इस्तेमाल करके बनाया गया है.

नीचे दी गई इमेज में, अलग-अलग ऊंचाई वाले मोड का इस्तेमाल करके लाइनों को दिखाया गया है. आइए, हम इन सभी के बारे में बारी-बारी से बात करते हैं. हम सबसे कम से लेकर सबसे ज़्यादा तक के क्रम में बात करेंगे.

3D मैप की एक इमेज, जिसमें स्टोनहेंज के आस-पास अलग-अलग ऊंचाई पर, अलग-अलग रंगों (बैंगनी, सफ़ेद, नारंगी, नीला) की लाइनें दिखाई गई हैं.

CLAMP_TO_GROUND (बैंगनी लाइन)

यह लाइन, हर पॉइंट के लिए तय की गई ऊंचाई को अनदेखा करती है. इसके बजाय, यह लाइन सीधे तौर पर ज़मीन (डीटीएम) के ऊपर "ड्रेप" करती है. यह ज़मीन के हिसाब से चलता है. यह इसके ऊपर मौजूद इमारतों या पत्थरों जैसी किसी भी चीज़ को अनदेखा करता है.

तकनीकी तौर पर, यह मोड ऊंचाई की असल वैल्यू को नज़रअंदाज़ करता है. साथ ही, लाइन को डीटीएम पर इस तरह से दिखाता है कि वह ज़मीन के नीचे के हिस्से के हिसाब से दिखे. साथ ही, यह लाइन के ऊपर मौजूद सुविधाओं के मेश को नज़रअंदाज़ करता है.

ABSOLUTE (White Line)

इस लाइन में हर पॉइंट के लिए सटीक ऊंचाई का इस्तेमाल किया गया है. इस वजह से, लाइन कुछ पत्थरों के ऊपर से गुज़रती है. यह हर पॉइंट के बीच सीधी लाइनों से कनेक्ट होता है. अगर पॉइंट काफ़ी बार नहीं होते हैं, तो कभी-कभी ऐसा लग सकता है कि यह ऑब्जेक्ट से होकर गुज़र रहा है.

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

RELATIVE_TO_GROUND (ऑरेंज लाइन)

यह लाइन, नैचुरल ग्राउंड (डीटीएम) को आधार के तौर पर इस्तेमाल करती है. साथ ही, हर पॉइंट को ज़मीन के लेवल से ऊपर तय की गई ऊंचाई पर रखती है.

तकनीकी तौर पर, यह मोड DTM को बेस के तौर पर इस्तेमाल करता है. साथ ही, लाइन की जगहों को उससे जुड़ी ऊंचाई पर रखता है.

RELATIVE_TO_MESH (नीली लाइन)

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

तकनीकी तौर पर, यह मोड मेष (डीएसएम) को बेस के तौर पर इस्तेमाल करता है और जगहों को मेष के हिसाब से, तय की गई ऊंचाई पर रखता है. ज़मीन पर मौजूद अलग-अलग सुविधाओं के हिसाब से, लाइन में बदलाव हो सकता है.

सेट करें.

जब लाइनों के लिए ऊंचाई की जानकारी नहीं दी जाती है

अब हम एक ही लाइन के निर्देशांकों पर विचार करते हैं, लेकिन इसमें ऊंचाई की जानकारी नहीं दी गई है:

const lineCoords = [
   { lat: 51.1786, lng : -1.8266 },
   { lat: 51.1787, lng : -1.8264 },
   { lat: 51.178778, lng : -1.826354 },
   { lat: 51.178815, lng : -1.826275 },
   { lat: 51.178923, lng : -1.825980 },
   { lat: 51.1791, lng : -1.8258 },
   { lat: 51.1792, lng : -1.8257 }
];

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

स्टोनहेंज के आस-पास अलग-अलग रंगों (नारंगी, नीला) की लाइनें दिखाने वाला 3D मैप. ऊंचाई का डेटा न होने की वजह से, सफ़ेद और बैंगनी लाइनें मर्ज हो रही हैं.

नीली रेखा (RELATIVE_TO_MESH) फिर से मेश (DSM) को आधार के रूप में उपयोग करती है. ऊंचाई की जानकारी न दिए जाने की वजह से, यह सिर्फ़ पॉइंट को सीधे तौर पर मेश के ऊपर ओवरले करता है. ध्यान दें कि यह लाइन को मेश पर नहीं रखता, बल्कि मेश पर दिए गए पॉइंट को सीधे तौर पर कनेक्ट करता है. हालांकि, कुछ उदाहरणों में यह ठीक लग सकता है, लेकिन अन्य सुविधाओं के साथ इस्तेमाल करने पर, इससे दिखने से जुड़ी समस्याएं हो सकती हैं. इस समस्या के बारे में अगले सेक्शन में बताया गया है.

मेष और लाइनों का इंटरैक्शन. अब हम दूसरी पॉलीलाइन देख सकते हैं. यह इमेज उसी इलाके की है, लेकिन इसमें ज़्यादा ज़मीन शामिल है. इसके अलावा, इसमें डीटीएम के ऊपर डीएसएम की ज़्यादा जानकारी भी है.

const lineCoords = [
    { lat: 51.188404, lng: -1.779059, altitude: 70.69 },
    { lat: 51.187955, lng: -1.780143, altitude: 77.25 },
    { lat: 51.187658, lng: -1.781552, altitude: 68.97 },
    { lat: 51.187376, lng: -1.782447, altitude: 99.02 },
    { lat: 51.186912, lng: -1.783692, altitude: 104.35 },
    { lat: 51.185855, lng: -1.788368, altitude: 86.91 },
];

जब हम पहले की तरह ही तरीकों और रंगों का इस्तेमाल करके प्रज़ेंटेशन देखते हैं, तो हमें यह व्यू मिलता है:

3D मैप की इमेज. इसमें अलग-अलग रंगों (बैंगनी, सफ़ेद, नारंगी, नीला) की कई लाइनें दिखाई गई हैं. ये लाइनें, पेड़ों और अलग-अलग ऊंचाई वाले इलाके पर बनी हैं.

बैंगनी रंग CLAMP_TO_GROUND के लिए है. यह ज़मीन के साथ-साथ चलता है. सफ़ेद रंग ABSOLUTE है. इसमें सीधी लाइनें उन पॉइंट को जोड़ती हैं जो स्पेस में बिलकुल सही जगह पर मौजूद हैं. ऑरेंज और नीले रंग की लाइनें, SURFACE (DTM) या MESH (DSM) के वर्शन के बारे में बताती हैं. ध्यान दें कि नीचे की सुविधाओं की ऊंचाई की वजह से, नीले रंग की लाइन थोड़ी अलग है.

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

3D मैप में पेड़ों से गुज़रती हुई लाइनें दिखाई गई हैं. इसमें ओक्ल्यूड किए गए सेगमेंट को दिखाया गया है, ताकि यह पता चल सके कि सेगमेंट ओक्ल्यूड किए गए हैं: सही.

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

लाइनों और इलाके के बीच इंटरैक्शन से जुड़ी समस्याओं को हल करना

एक अन्य उदाहरण में, हम उसी इलाके में कुछ अन्य कलाकृतियां देख सकते हैं. इनके बारे में हमें ऊंचाई के खास मोड का इस्तेमाल करते समय पता होना चाहिए.

यहां हमारे पास एक ऐसा क्षेत्र है जो काफ़ी हद तक डीटीएम के लेवल पर है. इसमें मेश में ऊपर की ओर कुछ ही अतिरिक्त जानकारी है. ऐसा उस इलाके में भी हो सकता है जहां इलाके के मॉडल के ऊपर 3D कवरेज नहीं है. नीचे दी गई जगह के बारे में जानकारी देखें:

const lineCoords = [
   { lat: 51.194642, lng: -1.782636, altitude: 99.10 },
   { lat: 51.193974, lng: -1.783952, altitude: 99.86 },
   { lat: 51.192203, lng: -1.787175, altitude: 96.14 },
   { lat: 51.190024, lng: -1.790250, altitude: 105.92 },
   { lat: 51.187491, lng: -1.793580, altitude: 102.60 },
   { lat: 51.183690, lng: -1.798745, altitude: 95.69 },
];

इमेज में देखा जा सकता है कि लाइनों का रंग पहले जैसा ही है: (सफ़ेद : ABSOLUTE, नीला : RELATIVE_TO_MESH, बैंगनी : CLAMP_TO_GROUND, नारंगी : RELATIVE_TO_GROUND).

3D मैप की इस इमेज में, अपेक्षाकृत समतल इलाके पर अलग-अलग रंग की लाइनें (सफ़ेद, नीली, बैंगनी, नारंगी) दिखाई गई हैं. इसमें विज़ुअल आर्टफ़ैक्ट को हाइलाइट किया गया है, जहां लाइनें ज़मीन में गायब हो जाती हैं.

यहां हमें कई आर्टफ़ैक्ट दिख रहे हैं. इनमें से पहला यह है कि सतह पर कवर न होने की वजह से, नारंगी (RELATIVE_TO_GROUND) और नीली (RELATIVE_TO_MESH) लाइनें (ज़्यादातर) एक ही जगह पर हैं. नीली लाइन को आखिरी बार ड्रा किया गया है, इसलिए इसे दिखाया जा रहा है.

हम यह भी देख सकते हैं कि बैंगनी रंग की लाइन (CLAMP_TO_GROUND) ज़मीन के साथ-साथ चलती है और इसे पहाड़ी पर देखा जा सकता है. वहीं, सफ़ेद रंग की लाइन (ABSOLUTE) को पहाड़ी में गायब होते हुए देखा जा सकता है, क्योंकि सिर्फ़ पॉइंट कनेक्ट किए गए हैं और सीधी लाइनें ज़मीन से होकर गुज़रती हैं.

इस इमेज में, बैंगनी रंग की लाइन को छिपाने पर यह साफ़ तौर पर देखा जा सकता है.

3D मैप में, सफ़ेद और नीली लाइनें एक पहाड़ी में गायब होती दिख रही हैं. साथ ही, बैंगनी लाइन छिपी हुई है. इससे, ऐब्सलूट और रिलेटिव-टू-मेश लाइनों के विज़ुअल आर्टफ़ैक्ट दिख रहे हैं.

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

  • रिलेटिव मेज़रमेंट (RELATIVE_TO_GROUND या RELATIVE_TO_MESH) के लिए: रिलेटिव ऊंचाई की वैल्यू का इस्तेमाल करते समय, किसी लाइन या पॉलीगॉन के साथ ज़्यादा पॉइंट बनाने से, सुविधा को ज़्यादा सही लेवल पर रखा जा सकेगा. इससे एलिवेशन प्रोफ़ाइल बेहतर तरीके से दिखेगी. अगर आपके डेटा में ये इंटरमीडियरी पॉइंट मौजूद नहीं हैं, तो उन्हें जोड़ने के लिए इंटरपोलेशन फ़ंक्शन का इस्तेमाल किया जा सकता है. जैसे, Google Maps Platform की Geometry लाइब्रेरी में मौजूद Interpolate फ़ंक्शन. इसके बाद, इन नए पॉइंट को ऐसी वैल्यू दी जा सकती हैं जिन्हें एलिवेशन प्रोफ़ाइल के ऊपर रखा जाएगा. इसके बाद, पॉइंट को जोड़ने वाली किसी भी लाइन की लंबाई सीमित कर दी जाएगी और विज़ुअल प्रज़ेंटेशन को बेहतर बनाया जाएगा.
  • निरपेक्ष ऊंचाई (ABSOLUTE) की जानकारी देने वाली सुविधाओं के लिए: ABSOLUTE सुविधाओं के लिए, ज़्यादा पॉइंट में ऊंचाई की असल वैल्यू होनी चाहिए. मौजूदा ऐब्सलूट वैल्यू के बीच इंटरपोलेट करने से, ऐसा पॉइंट नहीं मिलेगा जो मेश के ऊपर की किसी भी वैल्यू को सटीक तरीके से दिखाता हो. ऐसा इसलिए, क्योंकि यह सिर्फ़ पॉइंट A और पॉइंट B के बीच का औसत होगा.

खास जानकारी

हमें उम्मीद है कि इस दस्तावेज़ में, आपको फ़ोटो जैसा दिखने वाला 3D मैप बनाने के लिए AltitudeMode विकल्पों के बारे में पूरी जानकारी मिली होगी. इसमें यह भी बताया गया है कि ABSOLUTE, CLAMP_TO_GROUND, RELATIVE_TO_GROUND, और RELATIVE_TO_MESH, मार्कर, लाइनें, और पॉलीगॉन जैसी अलग-अलग सुविधाओं की प्लेसमेंट और रेंडरिंग पर कैसे असर डालते हैं.

इन मोड के साथ-साथ, डिजिटल टेरेन मॉडल (डीटीएम) और डिजिटल सरफ़ेस मॉडल (डीएसएम) के काम करने के तरीके को समझना ज़रूरी है. इससे, कम से कम विज़ुअल आर्टफ़ैक्ट के साथ सटीक और देखने में आकर्षक 3D मैप बनाए जा सकते हैं.

हमें उम्मीद है कि आप अपने प्रोजेक्ट में ऊंचाई के इन मोड का इस्तेमाल करके, 3D मैपिंग की पूरी क्षमता का फ़ायदा उठाएंगे. साथ ही, अपने उपयोगकर्ताओं के लिए दिलचस्प और शानदार अनुभव तैयार करेंगे. इसके अलावा, हमें अपने सुझाव/राय देंगे या शिकायत करेंगे.

योगदानकर्ता

मैट टून | Solutions Engineer, Geo Developer