विश्व प्रतिपादन

मैपबॉक्स लीड प्रोग्रामर यंग हैन ने FOSS4G सम्मेलन से अपनी प्रस्तुति की एक प्रतिलेख पोस्ट किया।

MapBox को ओपन सोर्स टाइलमिल मैपिंग डिज़ाइन स्टूडियो और टाइलस्ट्रीम टाइल सर्वर के डेवलपर के रूप में जाना जाता है। उन्होंने हाल ही में एक नया मैपबॉक्स स्ट्रीट्स सिस्टम जारी किया है - गूगल स्ट्रीट्स का एक एनालॉग, लेकिन ओपनवर्कपाइप खुले नक्शे पर। यह एक वैश्विक मानचित्रण सेवा है जो व्यक्तिगत घरों, सुरंगों, मेट्रो स्टेशनों आदि के स्तर पर ज़ूमिंग के साथ है।

रेंडरिंग द वर्ल्ड नामक एक प्रस्तुति में, कंपनी के प्रमुख प्रोग्रामर ने इस बारे में बात की कि वे पूरे ग्रह के लिए ज़ूम के उस स्तर पर टाइल कैसे उत्पन्न करने में कामयाब रहे।



यदि आप वैश्विक स्तर पर आवश्यक टाइलों की संख्या की गणना करते हैं, तो डेटा वॉल्यूम खगोलीय जाते हैं। इस प्रणाली में, z0 स्केल पूरे विश्व के नक्शे के लिए एक टाइल से मेल खाती है, z1 स्तर पर मानचित्र में चार टुकड़े होते हैं, z2 स्तर पर - 16 टुकड़े, और इसी तरह। सामान्य तौर पर, प्रत्येक स्तर z पर टाइलों की संख्या 4 z होती है

पूरी तरह से उच्च सर्वर प्रदर्शन को मानते हुए, प्रति सेकंड 1000 टाइलें और 400 बाइट्स का एक न्यूनतम टाइल आकार, फिर स्तर z17 पर हमें 200 दिनों के प्रतिपादन की आवश्यकता होती है, और मानचित्र डेटा की मात्रा 10.3 टेराबाइट्स होती है।



इस तरह की संख्याओं के साथ, यहां तक ​​कि मजबूत प्रतिपादन अनुकूलन निर्णायक प्रभाव नहीं देता है। यदि आप इसे दो बार गति देते हैं, तो रेंडरिंग समय केवल 200 से 100 दिनों तक बढ़ जाएगा, जो दोनों मामलों में अस्वीकार्य है।

वर्तमान में आने वाले उपयोगकर्ताओं के लिए विशिष्ट अनुरोधों के लिए वास्तविक समय में प्रतिपादन के लिए सर्वर की संख्या में समस्या का एक और प्रकार एक साधारण वृद्धि हो सकती है।



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

उन्होंने पूरी दुनिया को z17 में रेंडर करने का प्रबंधन कैसे किया? वे समझदारी से मामले के पास पहुंचे। भौगोलिक डेटा के विश्लेषण से पता चलता है कि पृथ्वी की सतह के आधे से अधिक हिस्से को वास्तव में प्रदान करने की आवश्यकता नहीं है। लगभग 60% टाइलें साधारण नीले वर्ग हैं - महासागरों का क्षेत्र। स्कूल में, वे सिखाते हैं कि महासागर सतह के 70-80% हिस्से पर कब्जा कर लेता है, लेकिन वास्तव में नीले वर्गों के बारे में 60%, क्योंकि अंटार्कटिका और ग्रीनलैंड एक विशाल क्षेत्र को कवर करते हैं।



यह वर्णमाला के अक्षरों की तरह है, जिनमें से 50% को पाठ से हटाया जा सकता है, और इससे पाठ अपना अर्थ नहीं खोएगा।

आगे कार्य को अनुकूलित करते हुए, मैपबॉक्स डेवलपर्स ने विश्लेषण करना शुरू किया कि पृथ्वी की सतह का कितना प्रतिशत जानकारी लोड नहीं करता है और इसे अनदेखा किया जा सकता है। समुद्र के अलावा, उन्होंने भूमि क्षेत्र की पहचान की, जो समुद्र तट के पास स्थित नहीं है। यह पता चला कि लगभग हमेशा वे सजातीय "खाली" टाइलें भी हैं। सामान्य तौर पर, केवल 2% टाइलें तटीय क्षेत्र पर आती हैं। और अगर आप शहरों, सड़कों और मानव जीवन की किसी भी वस्तु को लेते हैं, तो वे केवल 1% पृथ्वी पर ध्यान देने योग्य हैं!



इस प्रकार, z स्तर पर टाइल्स की संख्या अब 4 z के बराबर नहीं है, क्योंकि प्रत्येक स्तर पर उपयोगी क्षेत्र के 1% में, एक एकल उपयोगी टाइल को उत्पन्न करने की आवश्यकता है।



MapBox द्वारा बनाई गई MBTiles टाइल भंडारण प्रणाली टाइलों को अतिरेक में खाते में संग्रहीत करने की अनुमति देती है, अर्थात, समान टाइलों को डुप्लिकेट नहीं किया जाता है, लेकिन बस एक नमूना देखें। इसलिए 10.3 टेराबाइट्स के बजाय, इस प्रणाली में z17 के स्तर पर पृथ्वी का पूरा क्षेत्र 200 गीगाबाइट है। और टाइल सर्वर के 200 दिनों के काम के बजाय, उपयोगी क्षेत्र के 2% के प्रतिपादन में केवल 4 दिन लगते हैं।

Source: https://habr.com/ru/post/In142089/


All Articles