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

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

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

  • मार्कर: Marker3DElement, Marker3DInteractiveElement

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

  • मॉडल: Model3DElement, Model3DInteractiveElement

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

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

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

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

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

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

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

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

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

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

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

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

  • इसे ज़मीन से जोड़ें: यह सबसे आसान तरीका है. इसमें सुविधा, इलाके के हिसाब से अपने-आप अडजस्ट हो जाएगी. यह मोड, DTM मॉडल का इस्तेमाल करता है.
  • इसे कोई भी ऊंचाई + रिलेटिव मोड दें: आपके पास कोई ऊंचाई असाइन करने का विकल्प होता है. इसके बाद, RELATIVE_TO_GROUND का इस्तेमाल करें. इससे सुविधाओं को डीटीएम मॉडल के हिसाब से सेट किया जाता है. इसके अलावा, RELATIVE_TO_MESH का इस्तेमाल करें. इससे सुविधाओं को डीएसएम मॉडल के ऊपर रखा जाता है.
  • ऊंचाई की जानकारी पाने के लिए किसी दूसरी सेवा का इस्तेमाल करें: किसी सुविधा की जगह की सटीक डीटीएम ऊंचाई पाने के लिए, 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 मीटर) का इस्तेमाल करके मार्कर को उस ऊंचाई पर रखता है. यह मार्कर, स्टोनहेंज के किसी एक पत्थर के ऊपर दिखता है. ऐसा, समुद्र तल से ऊंचाई की दी गई वैल्यू के हिसाब से होता है.

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

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 (Purple Line)

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

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

ABSOLUTE (White Line)

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

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

RELATIVE_TO_GROUND (Orange Line)

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

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

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

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