ডিস্ক স্পেস এবং ওয়ার্ল্ড লেয়ারের জন্য টাইলগুলির সংখ্যা


9

আমি ওয়েবম্যাপিংয়ের জন্য একটি ওয়ার্ল্ড লেয়ারের টাইলস প্রজন্মের পরীক্ষা করার কথা ভাবছি।

এই প্রসঙ্গে, আমি জানতে চাই যে কীভাবে আমি টাইলসের সংখ্যা গণনা করতে পারি (যদি মনে থাকে তবে টাইলচের জন্য 256x256) আমার ডাব্লুজিএস 84 স্থানাঙ্কের n স্তরের প্রয়োজন হবে।

সম্ভবত আমি প্রিজেনারেটেড টাইলস এবং ফ্লাই জেনারেশনের সাথে একটি সংমিশ্রণ সমাধান ব্যবহার করব তবে প্রতিটি ডিস্ক তৈরি করা হয়েছে এবং এটি ফাইলগুলির সংখ্যা উপস্থাপন করবে কিনা তা উপলক্ষে আমাকে ডিস্কের উপলভ্য শেষে জানতে হবে।

দুটি লক্ষ্য রয়েছে, এটি সময় নেবে এবং ডিস্কের স্থান প্রয়োজন।

যে কোনও তথ্য স্বাগত

সম্পাদনা:

জুম স্তর এবং আপনার ডেটার পরিমাণের উপর নির্ভর করে টাইলগুলি উত্পন্ন করার সংখ্যা গণনা করার জন্য আমি এই স্ক্রিপ্টটি পেয়েছি। এই सारটি https://gist.github.com/1675606 দেখুন


উত্তর:



5

আমি একটি প্রতারণা-শীট তৈরি করেছি যা প্রদত্ত জুম-স্তরের জন্য টাইলগুলির মোট সংখ্যার তালিকা করে।

এটিতে দুটি টেবিল রয়েছে। এক ব্যক্তি একটি টাইল থেকে লোক দেখানো থেকে শুরু করে নির্দিষ্ট স্কেলে জিনিসগুলি দেখানোর জন্য প্রয়োজনীয় জুম-স্তরের সংখ্যা দেখায় One

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% এর বেশি) বেশি হতে পারে।

(২) বেশ ইতিমধ্যে ব্যাখ্যা করা হয়েছে, তবে উদাহরণ হিসাবে আমার কাছে একটি টাইল পিরামিড রয়েছে যেখানে মোট ফাইলের আকার 168MB, তবে ডিস্কে এর আকার 600MB এর বেশি। এটি (1) সঠিকভাবে অর্জন করা আরও বেশি গুরুত্বপূর্ণ করে তোলে।

(1) হিসাবে: আপনার 'ওয়ার্ল্ড ফাইল' কাজটিতে কেবল দেশের সীমানা জড়িত কিনা তা বিবেচনা করুন।

সীমানা নয় এমন যে কোনও টাইল দুটি 'ওয়েল্ট' টাইলগুলির মধ্যে একটি - একটি 'সমুদ্র' টাইল (নীল) যে কোনও দেশের অভ্যন্তরে নয়, বা একটি ব্লকের (ভরাট) টাইল যা সম্পূর্ণরূপে একটির মধ্যে নেই তার সাথে পরিবেশন করা যেতে পারে জাতীয় সীমান্ত কেবল সীমার একটি অংশ অন্তর্ভুক্ত টাইলগুলিকে রেন্ডার করা দরকার - বাকিগুলিকে 'ডিফল্ট' করা যায়।

কেন? কারণ নির্দিষ্ট ধরণের সমস্ত ব্লক টাইলস (টাইপ করুন (সমুদ্র, স্থল), বা টাইপ (সমুদ্র, দেশ এ, দেশ বি, ইত্যাদি) একরকম হবে be

'ব্লক' টাইল প্রতিটি দেশের জন্য এক রঙ হতে পারে, বা পুরো বিশ্বের জন্য একটি রঙ, বা একটি ফাঁকা টাইল (যদি আপনি একটি পটভূমিতে দেশের রূপরেখাকে উপরিভাগে দেখিয়ে থাকেন)।

'ব্লক' টাইলগুলি কেবল একবার রেন্ডার করা প্রয়োজন (উদাহরণস্বরূপ, 1 256x256 টাইল, সম্পূর্ণ পছন্দসই রঙে পূর্ণ)।

টাইলস তৈরি করা হচ্ছে, আপনি পরীক্ষা করতে পারেন

(ক) যদি এর 'পিতামাতা' - একটি কম জুম স্তরে টাইল উপস্থিত থাকে; এবং

(খ) যদি এটি 'ব্লক' টাইল হয় (অর্থাত্ এটি সম্পূর্ণরূপে এক রঙে পূর্ণ)।

যদি (ক) টাইলটি রেন্ডার করার প্রয়োজন হয় না; যদি পিতামাতার অস্তিত্ব না থাকে তবে এটি কারণ পিতামাতার পুরোপুরি একটি ব্লক টাইল ছিল এবং এটি মুছে ফেলা হয়েছিল।

ক্ষেত্রে (খ) (যেখানে পিতামাতার উপস্থিত রয়েছে তাই টাইল পরীক্ষা করা দরকার), যদি এটি কোনও ব্লক টাইল থাকে তবে এটি নিরাপদে টাইল পিরামিড থেকে মুছতে পারে। (ব্লক-টাইল-নেসের জন্য পরীক্ষাটি কেবল ফাইল আকারের উপর ভিত্তি করে one এক রঙের সম্পূর্ণ 256x256 টাইলটি খুব সুনির্দিষ্ট আকারের এবং 'উপযুক্ত সামগ্রী' টাইল একই আকারের হওয়ার সম্ভাবনা শূন্য হয়)।

নির্মাণ প্রক্রিয়া চলাকালীন এই টাইলসগুলি মোছা টাইল-রেন্ডারিং লুপের সাথে ন্যূনতম সময় যোগ করে, তবে বিপুল পরিমাণে ডিস্কের স্থান সাশ্রয় করে। বিকল্পটি হ'ল সমস্ত কিছু রেন্ডার করা এবং তারপরে পুনরাবৃত্তভাবে ব্লক টাইলসের জন্য পিরামিড অনুসন্ধান করুন এবং সেগুলি মুছুন: এটি আরও বেশি সময় নেয়।

একবার পিরামিডটি তৈরি হয়ে গেলে, টাইল কল প্রক্রিয়াটি 'ব্লক' টাইলকে ডিফল্ট করতে পারে যদি এটি টাইলস / জেড / এক্স / ওয়াই সন্ধান করে এবং একটি 404 পেয়ে যায়।

এটি কেন হয় তা দেখতে, শীর্ষস্থানীয় কোয়াড্রেন্ট পুরোপুরি খালি যেখানে এমন 256x256 জুম = 1 রেন্ডারিংয়ের কথা বিবেচনা করুন। আপনি দৃ certain়তার সাথে জানেন যে জুম = 2 এ 4 টি টাইলগুলি একই অঞ্চল জুড়ে রয়েছে empty একইভাবে, জুম = 3 এ আরও 16 টি টাইল।

তাই টাইলিং প্রক্রিয়া চলাকালীন যে কোনও সময় যেখানে টাইলটি একটি ব্লক রঙ (বা খালি থাকে), উচ্চ স্তরের জুমের সমস্ত সময় এড়ানো যায়।

এটি টাইলিং প্রক্রিয়াতে প্রচুর পরিমাণে সঞ্চয় এবং প্রচুর সময় সাশ্রয় করে।

এই ক্যাভ্যাটগুলির জন্য একটি সতর্কতা: আরও জটিল টাইলিং কাজ বিভিন্ন জুম স্তরে বিভিন্ন স্তরকে স্যুইচ করবে। যদি এটি হয় তবে জুম স্তরটি যেখানে রেন্ডার সেটে অন্তর্ভুক্ত রয়েছে সেখানে 'প্যারেন্ট' পরীক্ষা করা হবে না তা নিশ্চিত করার জন্য দুর্দান্ত যত্ন নিতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.