जब 3D मैप पर मौजूद सुविधाओं के लिए ऊंचाई तय की जाती है, जैसे कि लाइनें, पॉलीगॉन, मॉडल या मार्कर, तो कई चीज़ें उनके प्लेसमेंट पर असर डाल सकती हैं. ये चीज़ें, सीन के अंदर और सीन की रेंडरिंग, उस सुविधा के साथ कैसे इंटरैक्ट करती है, दोनों पर असर डाल सकती हैं. इस दस्तावेज़ में, 3D मैप पर 'AltitudeMode' के इस्तेमाल के बारे में बताया गया है. साथ ही, सुविधाओं के लिए ऊंचाई को मैनेज करने का तरीका भी बताया गया है.
यहां बताया गया है कि कई तरह की सुविधाओं के साथ AltitudeMode का इस्तेमाल कैसे किया जा सकता है:
मार्कर: Marker3DElement, Marker3DInteractiveElement
जगह की ऊंचाई और एक्सट्रूज़न की जानकारी दें.
मॉडल: Model3DElement, Model3DInteractiveElement
मॉडल के ऐंकर पॉइंट पर ऊंचाई तय करें. सीन में सही पोज़िशनिंग के लिए, इसका इस्तेमाल ओरिएंटेशन के साथ किया जाना चाहिए.
पॉलीलाइन: Polyline3DElement, Polyline3DInteractiveElement
यह तय करें कि पॉलीलाइन के साथ-साथ पोज़िशन पॉइंट पर ऊंचाई कैसे लागू की जाए.
पॉलीगॉन: Polygon3DElement, Polygon3DInteractiveElement
यह तय करें कि किसी पॉलीगॉन के साथ पोज़िशन पॉइंट पर ऊंचाई कैसे लागू की जाए.
3D एनवायरमेंट में ऊंचाई का इस्तेमाल कैसे किया जाता है
3D सीन में पॉइंट सेट करते समय, उनकी आखिरी पोज़िशन पर कैप्चर की गई 3D बिल्डिंग या पेड़ों जैसे ऑब्जेक्ट की मौजूदगी का असर पड़ता है. इसके लिए, दो मुख्य कॉन्सेप्ट को समझना ज़रूरी है:
- डिजिटल टेरेन मॉडल (डीटीएम): यह "बेयर अर्थ" एलिवेशन को दिखाता है. इसे ज़मीन के प्राकृतिक आकार के तौर पर देखें, जिसमें कोई इमारत, पेड़ या अन्य संरचनाएं शामिल नहीं हैं. सभी इलाकों को डीटीएम से अंडरपिन किया जाता है. यह ग्लोब की ऊंचाई का आधार होता है. इसकी गणना EGM96 का इस्तेमाल करके की जाती है.
- डिजिटल सरफ़ेस मॉडल (डीएसएम): यह "सबसे ऊपरी सतह" की ऊंचाई दिखाता है. इसमें इमारतें, पेड़, और अन्य स्ट्रक्चर शामिल हैं. जिन इलाकों में सुविधाओं को कैप्चर किया गया है वहां दिखने वाली सतह, बेस इलाके से ऊंची दिखेगी. खास तौर पर, शहरी इलाकों में जहां इमारतों की संख्या ज़्यादा है.
डीटीएम और डीएसएम के बीच का अंतर समझना ज़रूरी है. इससे यह समझने में मदद मिलती है कि अलग-अलग ऐल्टिट्यूड मोड, इन डिजिटल एलिवेशन मॉडल (डीईएम) के साथ कैसे इंटरैक्ट करते हैं. ऐसा इसलिए, क्योंकि सतह के मॉडल की वजह से, सुविधाओं की प्लेसमेंट धुंधली हो सकती है या उस पर असर पड़ सकता है. नीचे दिए गए डायग्राम में, दोनों के बीच का अंतर देखा जा सकता है:

जब सुविधाओं में ऊंचाई का डेटा मौजूद न हो
अगर आपके पास ऐसा डेटा है जिसमें ऊंचाई की जानकारी नहीं है या Routes या Places जैसी Google की किसी दूसरी सेवा के डेटा का इस्तेमाल किया जा रहा है, तो आपको अक्सर नतीजे में मिली ज्यामिति में ऊंचाई की जानकारी नहीं मिलेगी. ऐसे मामलों में, सीन में सुविधा को शामिल करने के लिए, आपको AltitudeMode को ध्यान से चुनना होगा:
- इसे ज़मीन पर क्लैंप करें: यह सबसे आसान तरीका है. इसमें सुविधा, इलाके के हिसाब से अपने-आप काम करेगी. इस मोड में डीटीएम मॉडल का इस्तेमाल किया जाता है.
- इसे अपनी पसंद की ऊंचाई + रिलेटिव मोड दें: अपनी पसंद की ऊंचाई असाइन की जा सकती है. इसके बाद, RELATIVE_TO_GROUND (यह डीटीएम मॉडल के हिसाब से सुविधाएं देता है) या RELATIVE_TO_MESH (यह डीएसएम मॉडल के ऊपर फ़्लोट करता है) का इस्तेमाल किया जा सकता है.
- ऊंचाई की जानकारी पाने के लिए किसी दूसरी सेवा का इस्तेमाल करना: सुविधा की जगह पर डीटीएम की सटीक ऊंचाई की जानकारी पाने के लिए, Google Maps Platform Elevation API जैसी सेवा का इस्तेमाल किया जा सकता है. अगर यह कोई लाइन या पॉलीगॉन है, तो आपको लाइन या पॉलीगॉन बनाने वाले हर पॉइंट के लिए ऐसा करना होगा.
AltitudeMode के विकल्पों का क्या मतलब है और इनका इस्तेमाल कब करना चाहिए?
किसी सुविधा को तय करते समय, AltitudeMode के चार विकल्प दिए जा सकते हैं:
ABSOLUTE
मान लें कि कोई हवाई जहाज़ समुद्र तल से 10,000 फ़ीट की ऊंचाई पर उड़ रहा है. इसकी ऊंचाई तय होती है. इससे कोई फ़र्क़ नहीं पड़ता कि यह किसी पहाड़ के ऊपर से उड़ रहा है या घाटी के ऊपर से.
इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को समुद्र तल के औसत स्तर (ईजीएम96 का इस्तेमाल करके कैलकुलेट किया गया) के हिसाब से दिखाया जाता है. सुविधा के ऊंचाई वाले निर्देशांक को समुद्र तल से सटीक ऊंचाई के तौर पर समझा जाता है.
इसका इस्तेमाल कब करें: ऐसी सुविधाओं के लिए जिनकी सटीक ऊंचाई की जानकारी हो. जैसे, फ़्लाइट पाथ, सटीक गहराई वाली डूबी हुई चीज़ें या फ़िक्स्ड-पॉइंट वाले वैज्ञानिक उपकरण.
CLAMP_TO_GROUND
इसे ऐसे समझें जैसे किसी पहाड़ी पर पिकनिक के लिए चादर बिछाई गई हो. पहाड़ी चाहे कितनी भी खड़ी या समतल हो, कंबल हमेशा दिखने वाली सतह पर सपाट रहता है.
इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को इस तरह से दिखाया जाता है कि वह सीधे ज़मीन पर रखा हुआ लगे. ये ज़मीन के लेवल पर ही रहेंगे और इलाके के हिसाब से दिखेंगे. भले ही, ऊंचाई की कोई भी वैल्यू दी गई हो. इस सुविधा के ऊंचाई वाले निर्देशांक को अनदेखा कर दिया जाता है. इसे सीधे तौर पर इलाके की सतह (डीटीएम) पर प्रोजेक्ट किया जाता है.
इसका इस्तेमाल कब करना चाहिए: ऐसी सुविधाओं के लिए जो हमेशा इलाके के हिसाब से होनी चाहिए. जैसे, सड़कें, बाड़, पगडंडियां, प्रॉपर्टी की सीमाएं या इमारतों का बेस.
RELATIVE_TO_GROUND
मान लें कि एक हॉट एयर बलून, ज़मीन की नैचुरल ऊंचाई (डीटीएम) से 100 मीटर ऊपर उड़ रहा है. अगर ज़मीन की ऊंचाई बढ़ती है, तो गुब्बारा भी ऊपर जाता है. इससे "ज़मीन" से 100 मीटर की दूरी बनी रहती है.
इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को ज़मीन की सतह (डीटीएम) के हिसाब से दिखाया जाता है. सुविधा के ऊंचाई वाले निर्देशांक को, उसकी हॉरिज़ॉन्टल पोज़िशन पर इलाके की ऊंचाई से ऑफ़सेट के तौर पर समझा जाता है.
इसका इस्तेमाल कब करना चाहिए: उन ऑब्जेक्ट के लिए जिन्हें प्राकृतिक इलाके से ऊपर एक जैसी ऊंचाई बनाए रखने की ज़रूरत होती है. जैसे, ग्रामीण इलाकों में कम्यूनिकेशन टावर या ओवरहेड लाइनें.
RELATIVE_TO_MESH
यह किसी ड्रोन की तरह है जो किसी भी चीज़ के ऊपर एक तय ऊंचाई पर उड़ता है, चाहे वह खाली ज़मीन हो, किसी इमारत की छत हो या किसी पेड़ का ऊपरी हिस्सा हो. यह सबसे ज़्यादा दिखने वाली सतह (डीएसएम) के हिसाब से अडजस्ट हो जाता है.
इसका इस्तेमाल कैसे करें: ऑब्जेक्ट की ऊंचाई को ज़मीन+इमारत+जल धरातल (डीएसएम) के सबसे ऊंचे हिस्से के हिसाब से दिखाया जाता है. सुविधा के ऊंचाई वाले निर्देशांक को डीएसएम की ऊंचाई से ऑफ़सेट के तौर पर समझा जाता है.
इसका इस्तेमाल कब करना चाहिए: उन ऑब्जेक्ट के लिए जिन्हें किसी भी चीज़ (डीटीएम, इमारतें, पानी) के ऊपर एक तय ऊंचाई पर फ़्लोट करना ज़रूरी है. यह छतों पर मार्कर या उन सुविधाओं के लिए उपयोगी है जो दिखने वाले सीन के हिसाब से डाइनैमिक तौर पर अडजस्ट होती हैं.
ज़्यादा जानकारी के लिए, AltitudeMode कॉन्सटेंट का दस्तावेज़ देखें.
विज़ुअल के उदाहरण और काम के ऐप्लिकेशन
इन उदाहरणों में, स्टोनहेंज नाम की जगह का इस्तेमाल करके यह दिखाया गया है कि AltitudeMode के अलग-अलग विकल्प, सुविधा के प्लेसमेंट पर कैसे असर डालते हैं. इन उदाहरणों में, पहले मार्कर की पोज़िशनिंग के बारे में बताया गया है. इसके बाद, लाइनों और एरिया के बारे में बताया गया है. इनके लिए कुछ अलग-अलग बातों का ध्यान रखना ज़रूरी है.
पोज़िशन मार्कर
मान लें कि पिन मार्कर को इस तरह से रखा गया है:
const markerLocation = { lat: 51.1789, lng: -1.8262, altitude: 102.23 };
इसे नीचे दिए गए सीन में सफ़ेद पिन के तौर पर देखा जा सकता है:

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

आइए, देखते हैं कि अलग-अलग AltitudeMode, ऊंचाई के बढ़ते क्रम में मार्कर की पोज़िशनिंग पर कैसे असर डालते हैं.
CLAMP_TO_GROUND (बैंगनी पिन)
यह पिन, ऊंचाई की वैल्यू को अनदेखा करता है और खुद को ज़मीन की सबसे नज़दीकी ऊंचाई से अटैच करता है. यह आपको सफ़ेद पिन के ठीक नीचे दिखेगा. यह पिन, ज़मीन पर "क्लैंप" की तरह काम करता है.
तकनीकी तौर पर, यह मोड असल ऊंचाई को अनदेखा करता है और पिन को सबसे नज़दीकी डीटीएम ऊंचाई पर सेट करता है.
ABSOLUTE (सफ़ेद पिन)
यह पिन, समुद्र तल (ईजीएम96) से ऊपर की ऊंचाई पर मार्कर को रखने के लिए, ऊंचाई की सटीक वैल्यू (102.23 मीटर) का इस्तेमाल करता है. यह स्टोनहेंज के पत्थरों में से एक के ऊपर दिखता है, जैसा कि इसकी दी गई ऊंचाई से पता चलता है.
तकनीकी तौर पर, यह मोड पिन को समुद्र तल से तय ऊंचाई पर रखने के लिए, दी गई ऊंचाई की असल वैल्यू का इस्तेमाल करता है. इस उदाहरण में, यह स्टोनहेंज की जगह है, लेकिन यह किसी एक पत्थर के सबसे ऊपर है.
RELATIVE_TO_GROUND (नारंगी पिन)
यह पिन, ज़मीन (डीटीएम) को अपना बेस मानती है और खुद को ज़मीन के लेवल से 102.23 मीटर ऊपर रखती है. इससे ऐसा लगता है कि यह पिन, हेंज में पत्थर के नीचे मौजूद प्राकृतिक ज़मीन के ऊपर तैर रही है.
तकनीकी तौर पर, यह मोड अपने बेस को ज़मीन पर मौजूद असल डीटीएम के लेवल पर सेट करता है. इसके बाद, पिन को उससे 102.23 मीटर ऊपर रखता है.
मेश के हिसाब से (नीला पिन)
यह पिन, दिखने वाली सतह (डीएसएम) को अपने बेस के तौर पर इस्तेमाल करता है और खुद को उस सतह से 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 }
];
नीचे दी गई इमेज में, इस लाइन को सफ़ेद रंग में दिखाया गया है. इसके लिए, ऐब्सलूट पोज़िशनिंग का इस्तेमाल किया गया है.

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

CLAMP_TO_GROUND (बैंगनी लाइन)
यह लाइन, हर पॉइंट के लिए तय की गई ऊंचाई को अनदेखा करती है. इसके बजाय, यह लाइन को सीधे ज़मीन (डीटीएम) पर "ड्रेप" करती है. यह इलाके की बनावट के हिसाब से काम करता है. साथ ही, यह इमारतों या पत्थरों जैसी किसी भी चीज़ की मौजूदगी को अनदेखा करता है.
तकनीकी तौर पर, यह मोड ऊंचाई की असल वैल्यू को अनदेखा करता है और डीटीएम पर लाइन को ड्रेप करता है. यह लाइन, मौजूदा इलाके के हिसाब से होती है और इसके ऊपर मौजूद सुविधाओं के मेश को अनदेखा करती है.
ABSOLUTE (White Line)
यह लाइन, हर पॉइंट के लिए सटीक ऊंचाई का इस्तेमाल करती है. इस वजह से, लाइन कुछ पत्थरों के ऊपर से गुज़रती है. यह हर पॉइंट के बीच सीधी लाइनों से जुड़ा होता है. अगर पॉइंट काफ़ी नहीं हैं, तो कभी-कभी ऐसा लग सकता है कि यह ऑब्जेक्ट से होकर गुज़र रहा है.
तकनीकी तौर पर, यह मोड हर पॉइंट के लिए तय की गई ऊंचाई के हिसाब से काम करता है. यह पॉइंट को सीधी लाइनों से जोड़ता है. इसका मतलब है कि अगर ऊंचाई की वैल्यू के हिसाब से ज़रूरी हो, तो यह मेश (उदाहरण के लिए: पत्थर) से होकर गुज़र सकता है. इस स्थिति के बारे में आगे के सेक्शन में बताया गया है.
RELATIVE_TO_GROUND (नारंगी लाइन)
यह लाइन, नैचुरल ग्राउंड (डीटीएम) को अपने बेस के तौर पर इस्तेमाल करती है. साथ ही, हर पॉइंट को उस ग्राउंड लेवल से ऊपर, तय की गई ऊंचाई पर रखती है.
तकनीकी तौर पर, यह मोड डीटीएम को बेस के तौर पर इस्तेमाल करता है. साथ ही, इसके हिसाब से लिस्ट की गई ऊंचाई पर लाइन की जगहों को सेट करता है.
मेश के हिसाब से (नीली लाइन)
यह लाइन, दिखने वाली सतह को अपने बेस के तौर पर इस्तेमाल करती है. इसमें इमारतें और पत्थर शामिल हैं. इसके बाद, यह हर पॉइंट को उस मेश के ऊपर तय की गई ऊंचाई पर रखता है. इससे, दिखने वाले लैंडस्केप के हिसाब से लाइन के आकार को असरदार तरीके से दोहराया जाता है.
तकनीकी तौर पर, यह मोड मेश (डीएसएम) को बेस के तौर पर इस्तेमाल करता है और जगहों को उसके ऊपर तय की गई ऊंचाई पर रखता है. मेश के आधार पर, ज़मीन पर मौजूद अलग-अलग सुविधाओं के हिसाब से लाइन में बदलाव हो सकता है.
जब लाइनों के लिए ऊंचाई की जानकारी न दी गई हो
अब, मान लें कि लाइन के निर्देशांक वही हैं, लेकिन ऊंचाई की जानकारी नहीं दी गई है:
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 }
];
इस स्थिति में, जहां ऊंचाई की जानकारी नहीं दी गई है, लाइनें अक्सर मिलती-जुलती जगहों पर दिखती हैं. सफ़ेद, नारंगी, और बैंगनी रंग की लाइनें एक ही लाइन (नारंगी, क्योंकि इसे आम तौर पर आखिर में बनाया जाता है) में मर्ज हो सकती हैं. ऐसा इसलिए, क्योंकि ये सभी डिफ़ॉल्ट रूप से एक जैसी ग्राउंड-लेवल पोज़िशनिंग पर सेट होती हैं. इसे यहां देखा जा सकता है:

नीली लाइन (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 },
];
जब हम पहले वाले तरीकों (और रंगों) का इस्तेमाल करके प्रज़ेंटेशन देखते हैं, तो हमें यह व्यू मिलता है:

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

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

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

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