সুতরাং, শিরোনামটি কিছুটা বিশ্রী। আমি কিছু পটভূমি দেব, এবং তারপরে আমার প্রশ্ন জিজ্ঞাসা করব।
পটভূমি : আমি একটি ওয়েব জিআইএস অ্যাপ্লিকেশন বিকাশকারী হিসাবে কাজ করি তবে আমার অতিরিক্ত সময়ে আমি মানচিত্রের রেন্ডারিং এবং ডেটা ইন্টারচেঞ্জ ফর্ম্যাটগুলি উন্নত করে খেলছি। আমি কেবল 2 ডি স্পেসে কাজ করি।
একটি আকর্ষণীয় সমস্যা যার মুখোমুখি হয়েছি তা হ'ল আপনি যখন একটি ছোট স্কেল (জুম বেরিয়ে যাওয়ার) তে বহুভুজটি সরবরাহ করছেন তখন অনেকগুলি দ্বারকে অপ্রয়োজনীয় হয়। একটি চরম কেসটি হ'ল আপনার কাছে এমন একটি বহুভুজ রয়েছে যাতে 500,000 শীর্ষে কেবল একটি পিক্সেল নেয়। আপনি যদি এই ডেটাটি ব্রাউজারে প্রেরণ করেন তবে সেই শীর্ষবিন্দুগুলির মধ্যে 499,999 ডলার বাদ দেওয়ার অর্থটি হবে। আমরা যে উপায়টি অর্জন করি তা হ'ল কোনও সার্ভারে একটি চিত্র সরবরাহ করা এবং এটি পিএনজি হিসাবে প্রেরণ: ভয়েলা, এটি একটি বিষয়। কখনও কখনও, যদিও আমরা ব্রাউজারে ডেটা প্রেরণ করতে চাই যেখানে এটি এসভিজি (বা ক্যানভাস, বা ওয়েবজিএল) এর সাথে রেন্ডার করা যায় যাতে এটি ইন্টারেক্টিভ হতে পারে।
সমস্যা : দেখা যাচ্ছে যে আধুনিক ভৌগলিক ডেটা সেট ব্যবহার করে এসভিজির রেন্ডারিং ক্ষমতাগুলি ওভারলোড করা খুব সহজ। এই সীমাবদ্ধতাগুলি মোকাবেলার প্রয়াসে, আমি নির্ধারিত স্কেল এবং মানচিত্রের সীমার জন্য (এবং, প্রয়োজনে, একটি পরিচিত মানচিত্রের পিক্সেল প্রস্থ এবং উচ্চতার জন্য) কীভাবে কোনও ডেটা সেট দৃষ্টিশক্তিহীনভাবে হ্রাস করতে হবে তা নির্ধারণ করার চেষ্টা করছি ।
ডগলাস-পিউকার অ্যালগোরিদম ব্যবহার করে আমি ডেটা আকারে দুর্দান্ত হ্রাস পেয়েছি এবং আমি বিশ্বাস করি যে বহুভুজগুলি এক পিক্সেলের মধ্যে সত্য রাখতে আমি এটি পেতে সক্ষম হয়েছি। দুর্ভাগ্যক্রমে, ডগলাস-পিউকার টপোলজি সংরক্ষণ করেন না, সুতরাং বহুভুজগুলির মধ্যে সীমানা কীভাবে রেন্ডার হয়ে গেল তা বদলে গেল। উদ্দেশ্যটির সাথে খাপ খাইয়ে নেওয়ার জন্য আমি সহজেই অন্যান্য অ্যালগরিদমগুলি খুঁজে পেলাম না, তবে আমার খুব বেশি সিএস / অ্যালগরিদম ব্যাকগ্রাউন্ড নেই এবং আমি যদি সেগুলি দেখে থাকি তবে সেগুলি সনাক্ত করতে পারি না।