विश्व स्तर के लिए डिस्क स्थान और टाइल्स की संख्या


9

मैं वेबमैपिंग के लिए एक विश्व स्तर की टाइल पीढ़ी के परीक्षण के बारे में सोच रहा हूं।

इस संदर्भ में, मैं जानना चाहता हूं कि मैं टाइलों की संख्या की गणना कैसे कर सकता हूं (यदि मुझे याद है तो टीलेकैश के लिए 256x256) मुझे WGS84 निर्देशांक में n स्तरों की आवश्यकता होगी।

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

दो लक्ष्य हैं, समय लगेगा और डिस्क स्थान की आवश्यकता है।

किसी भी सुझाव का स्वागत है

संपादित करें:

मैंने इस स्क्रिप्ट को ज़ूम स्तर और आपकी डेटा सीमा के आधार पर उत्पन्न करने के लिए टाइल्स की संख्या की गणना करने के लिए पाया है। इस gist को देखें https://gist.github.com/1675606


जवाबों:



5

मैंने एक चीट-शीट बनाई जो दी गई ज़ूम-स्तरों के लिए टाइलों की कुल संख्या को सूचीबद्ध करती है।

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

level 1: 1 # Person
level 2: 5 # Car
level 3: 21 # House building
level 4: 85 # Square
level 5: 341 # Small neighbourhood
level 6: 1,365 # Football stadium
level 7: 5,461 # Small farm
level 8: 21,845 # Central park New York
level 9: 87,381 # Entire airport
level 10: 349,525 # Small city (Copenhagen)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Large city (London)
level 13: 22,369,621 # Medium Island (Mallorca)
level 14: 89,478,485 # Large Island (Sicily)
level 15: 357,913,941 # Small country (Denmark, Estonia, Taiwan)
level 16: 1,431,655,765 # Medium Country (Korea, Greece)
level 17: 5,726,623,061 # Region (Southern Europe, Arabian Peninsula)
level 18: 22,906,492,245 # Small continent or large country (China)
level 19: 91,625,968,981 # Medium continent (Africa) or huge country (Russia) 
level 20: 366,503,875,925 # Asia
level 21: 1,466,015,503,701 # The World

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

level 1: 1 # The World
level 2: 5 # Large contenents
level 3: 21 # Medium continents, huge countries
level 4: 85 # Small continents, large countries
level 5: 341 # Region (Southern Europe, Arabian Peninsula)
level 6: 1,365 # Medium Country (Korea, Greece)
level 7: 5,461 # Small country (Denmark, Estonia, Taiwan)
level 8: 21,845 # Large Island (Sicily)
level 9: 87,381 # Medium Island (Mallorca)
level 10: 349,525 # Large city (London)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Small city (Copenhagen)
level 13: 22,369,621 # Entire airport
level 14: 89,478,485 # Central park New York
level 15: 357,913,941 # Small farm
level 16: 1,431,655,765 # Football stadium
level 17: 5,726,623,061 # Small neighbourhood
level 18: 22,906,492,245 # Square
level 19: 91,625,968,981 # House building 
level 20: 366,503,875,925 # Car
level 21: 1,466,015,503,701 # Person

1

यह बहुत पुराना सवाल है, लेकिन हाथ में काम के आधार पर (कम से कम) दो महत्वपूर्ण कैवेट हैं।

  1. कार्य में टाइल निर्माण प्रक्रिया के विशिष्ट प्रबंधन के बिना (बहुत) बड़ी संख्या में खाली टाइलों का प्रतिपादन हो सकता है।
  2. अधिकांश भंडारण पर 4KB न्यूनतम क्लस्टर आकार (उर्फ ब्लॉक आकार) के कारण, टाइल पिरामिड की डिस्क का आकार इसके घटक फ़ाइल आकारों के योग से अपेक्षा से बहुत अधिक (100% से अधिक) हो सकता है ।

(2) बहुत पहले से ही समझाया गया है, लेकिन एक उदाहरण के रूप में मेरे पास एक टाइल पिरामिड है जहां कुल फ़ाइल का आकार 168 एमबी है, लेकिन डिस्क पर इसका आकार 600 एमबी से अधिक है। यह सही (1) प्राप्त करने के लिए कहीं अधिक महत्वपूर्ण बनाता है।

जैसा कि (1): विचार करें कि क्या आपकी 'वर्ल्ड फाइल' जॉब में केवल देश की सीमाएँ शामिल हैं।

कोई भी टाइल जो एक सीमा नहीं है, उसे दो 'ऊँची' टाइलों में से किसी एक के साथ परोसा जा सकता है - एक देश के अंदर कहीं भी 'सी' टाइल (नीली) या पूरी तरह से भीतर आने वाली टाइलों के लिए 'ब्लॉक' (भराव) टाइल के लिए नहीं। राष्ट्रीय सीमा। केवल टाइलें जिनमें सीमा के एक खंड को शामिल किया जाना आवश्यक है - बाकी को 'डिफ़ॉल्ट' किया जा सकता है।

ऐसा क्यों है? क्योंकि एक विशिष्ट प्रकार ((समुद्र, भूमि) (या समुद्र, देश ए, देश बी, आदि) में सभी प्रकार की टाइलें समान होंगी।

'ब्लॉक' टाइल प्रत्येक देश के लिए एक रंग हो सकती है, या पूरी दुनिया के लिए एक रंग हो सकती है, या एक खाली टाइल (यदि आप एक पृष्ठभूमि पर देश की रूपरेखा ओवरले कर रहे हैं)।

'ब्लॉक' टाइलों को केवल एक बार प्रदान करने की आवश्यकता होती है (जैसे, 1 256x256 टाइल, पूरी तरह से वांछित रंग से भरी हुई)।

जब टाइलें बनाई जा रही हों, तो आप परीक्षण कर सकते हैं

(ए) यदि इसके 'अभिभावक' - एक कम ज़ूम स्तर पर टाइल - मौजूद है; तथा

(ख) यदि यह एक 'ब्लॉक' टाइल है (यानी, यह पूरी तरह से एक रंग से भरा है)।

मामले में (ए) टाइल को प्रदान करने की आवश्यकता नहीं है; यदि माता-पिता का अस्तित्व नहीं है, क्योंकि माता-पिता पूरी तरह से एक ब्लॉक टाइल थे और हटा दिए गए थे।

मामले में (बी) (जहां माता-पिता मौजूद हैं, इसलिए टाइल का परीक्षण करने की आवश्यकता है), अगर यह एक ब्लॉक टाइल है तो इसे सुरक्षित रूप से टाइल पिरामिड से हटाया जा सकता है। (ब्लॉक-टाइल-नेस के लिए परीक्षण बस फ़ाइल के आकार पर आधारित है। एक रंग का पूरी तरह से 256x256 टाइल एक बहुत ही सटीक आकार है, और संभावना है कि 'उचित सामग्री' टाइल समान आकार शून्य है)।

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

पिरामिड बनने के बाद, टाइल कॉल प्रक्रिया 'ब्लॉक' टाइल को डिफ़ॉल्ट कर सकती है यदि यह टाइल / z / x / y की तलाश में जाती है और 404 मिलती है।

यह देखने के लिए कि यह मामला क्यों है, एक 256x256 ज़ूम = 1 के प्रतिपादन पर विचार करें जहां शीर्ष वृत्त का चतुर्थ भाग पूरी तरह से खाली है। आप निश्चित रूप से जानते हैं कि ज़ूम = 2 पर 4 टाइलें जो एक ही क्षेत्र को कवर करती हैं, वे भी खाली होंगी। इसी तरह, जूम = 3 और इसके बाद के 16 टाइल्स।

इसलिए किसी भी समय टाइलिंग प्रक्रिया के दौरान जहां टाइल एक ब्लॉक रंग है (या खाली है), हर समय ज़ूम के उच्च स्तर पर ध्यान नहीं दिया जा सकता है।

यह बड़ी मात्रा में भंडारण, और टाइलिंग प्रक्रिया में बहुत समय बचाता है।

इन कैविट्स के लिए एक चेतावनी: अधिक जटिल टाइलिंग कार्य विभिन्न ज़ूम स्तरों पर विभिन्न परतों पर स्विच करेगा। यदि यह मामला है, तो यह सुनिश्चित करने के लिए बहुत सावधानी बरती जानी चाहिए कि ज़ूम स्तर एक होने पर 'पैरेंट' परीक्षण नहीं किया जाता है जहां रेंडर सेट में एक नई परत शामिल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.