অঞ্চলগুলির সাথে কাজ করা

অঞ্চলগুলি হল একটি শক্তিশালী KML বৈশিষ্ট্য যা আপনাকে কার্যক্ষমতার ত্যাগ ছাড়াই Google আর্থে খুব বড় ডেটাসেট যোগ করতে দেয়৷ ডেটা শুধুমাত্র তখনই লোড এবং আঁকা হয় যখন এটি ব্যবহারকারীর দৃষ্টিভঙ্গির মধ্যে পড়ে এবং স্ক্রিনের একটি নির্দিষ্ট অংশ দখল করে। অঞ্চলগুলি ব্যবহার করে, আপনি ডেটার জন্য আলাদা স্তরের বিশদ সরবরাহ করতে পারেন, যাতে সূক্ষ্ম বিবরণগুলি কেবল তখনই লোড হয় যখন ডেটা স্ক্রিনের একটি অংশ পূরণ করে যা বিশদগুলি দৃশ্যমান হওয়ার জন্য যথেষ্ট বড়।

মূল ধারণা

যেকোনো বৈশিষ্ট্যে একটি অঞ্চল থাকতে পারে। একটি অঞ্চল একটি স্থানচিহ্নের জ্যামিতি বা একটি ওভারলে চিত্রের দৃশ্যমানতাকে প্রভাবিত করে৷ অঞ্চলগুলি প্রভাবিত জ্যামিতি বা ওভারলে এর culling এবং লেভেল-অফ-ডিটেইল আচরণ উভয়ই সংজ্ঞায়িত করে। অঞ্চলগুলি কেএমএল অনুক্রমের মাধ্যমে উত্তরাধিকারসূত্রে প্রাপ্ত হয় এবং অনুক্রমের নিম্ন স্তরে সংজ্ঞায়িত বৈশিষ্ট্যগুলির দৃশ্যমানতাকে প্রভাবিত করে৷

এই বিভাগটি নিম্নলিখিত মূল ধারণাগুলি বর্ণনা করে যা অঞ্চলগুলি বোঝার জন্য প্রয়োজনীয়:

উত্তরাধিকার

KML-এ, কিছু ক্লাস একটি "বেস" ক্লাস থেকে উদ্ভূত হয়। প্রাপ্ত ক্লাসগুলি তাদের বেস ক্লাসের সমস্ত উপাদানের উত্তরাধিকারী হয় এবং তাদের নিজস্ব কিছু নির্দিষ্ট উপাদান যুক্ত করে। (এটি অবজেক্ট-ওরিয়েন্টেড সিস্টেমের একটি সাধারণ কৌশল।) সুবিধার জন্য, এই বিভাগটি সমস্ত প্রাপ্ত ক্লাস তালিকাভুক্ত করার পরিবর্তে বেস ক্লাসকে নির্দেশ করে। উদাহরণ স্বরূপ:

  • বৈশিষ্ট্য শব্দটি বৈশিষ্ট্য থেকে উদ্ভূত যে কোনো KML উপাদানকে বোঝায়: ডকুমেন্ট, ফোল্ডার, গ্রাউন্ডওভারলে, নেটওয়ার্কলিঙ্ক, ফটোওভারলে, প্লেসমার্ক এবং স্ক্রিনওভারলে।
  • জ্যামিতি KML-এর যেকোনো জ্যামিতিক উপাদানকে বোঝায়: পয়েন্ট, পলিগন, লিনিয়াররিং, লাইনস্ট্রিং, মডেল, মাল্টিজিওমেট্রি।
  • ওভারলে ওভারলে থেকে প্রাপ্ত উপাদানগুলিকে বোঝায়: গ্রাউন্ডওভারলে, ফটোওভারলে এবং স্ক্রিন ওভারলে।

KML উপাদানের মধ্যে উত্তরাধিকার দেখানো একটি চিত্রের জন্য KML রেফারেন্স দেখুন।

সীমান্ত বক্স

একটি অঞ্চলে একটি <LatLonAltBox> আছে যা আপনার ডেটার জন্য একটি বাউন্ডিং বক্স সংজ্ঞায়িত করে। একটি বাউন্ডিং বক্স হল একটি ভলিউম যা বস্তু বা ডেটা পয়েন্টের একটি সেটকে আবদ্ধ করে। একটি গ্রাউন্ডওভারলেতে <LatLonBox> এর মতো, একটি অঞ্চলের <LatLonAltBox> এর উত্তর, দক্ষিণ, পূর্ব এবং পশ্চিম সীমানা রয়েছে। যদি অঞ্চলের ডেটা 3D হয়, বা উচ্চতায় 2D হয়, তাহলে অঞ্চলের <LatLonAltBox>-এও একটি ন্যূনতম উচ্চতা, <minAltitude> এবং সর্বাধিক উচ্চতা, <maxAltitude> অন্তর্ভুক্ত করতে হবে।

এই বাউন্ডিং বক্সের সাথে যুক্ত বস্তুগুলি আঁকা হয় যখন (1) অঞ্চলটি দৃশ্যের মধ্যে আসে এবং (2) <LatLonAltBox>-এর প্রক্ষিপ্ত অনস্ক্রিন আকার সেই অঞ্চলের জন্য নির্দিষ্ট পিক্সেল পরিসরের মধ্যে পড়ে, যেমনটি বিস্তারিত স্তরে (LOD) বর্ণনা করা হয়েছে। এই উভয় শর্ত পূরণ হলে, অঞ্চলটিকে "সক্রিয়" বলা হয়।

বিস্তারিত স্তর (LOD)

অঞ্চলগুলির সাথে সম্পর্কিত দ্বিতীয় গুরুত্বপূর্ণ ধারণাটি হল লেভেল অফ ডিটেইল বা সংক্ষেপে এলওডি । যেহেতু একটি কম্পিউটার স্ক্রিনে সীমিত পরিমাণে স্থান রয়েছে, তাই জিনিসগুলি সেট আপ করা সবচেয়ে কার্যকর যাতে প্রচুর পরিমাণে ডেটা লোড হয় শুধুমাত্র যখন ডেটা পর্যাপ্তভাবে প্রদর্শন করার জন্য পর্যাপ্ত পিক্সেল থাকে। যখন অঞ্চলটি স্ক্রিনের একটি অপেক্ষাকৃত ছোট অংশ গ্রহণ করে (সম্ভবত কারণ ব্যবহারকারী এটিকে অনেক দূরত্ব থেকে দেখছেন, বা এটি একটি সমতল এলাকা তির্যকভাবে দেখা হচ্ছে), LOD প্রক্রিয়া আপনাকে (KML লেখক) একটি নির্দিষ্ট করার অনুমতি দেয় কম রেজোলিউশন সহ ডেটাসেট সম্পূর্ণ-রেজোলিউশন ডেটার জন্য প্রতিস্থাপিত হবে। এই নিম্ন-রেজোলিউশন ডেটাসেট দ্রুত লোড হয়, এবং যেহেতু এটি যেভাবেই হোক স্ক্রিনের একটি ছোট অংশ দখল করে, ব্যবহারকারী সম্ভবত পার্থক্যটি বুঝতে পারে না।

একটি অঞ্চলে, <minLodPixels> এবং <maxLodPixels> উপাদানগুলি আপনাকে স্ক্রিনের একটি এলাকা নির্দিষ্ট করতে দেয় (বর্গাকার পিক্সেলে)। যখন আপনার ডেটা স্ক্রিনে প্রজেক্ট করা হয়, তখন দৃশ্যমান হওয়ার জন্য এটিকে অবশ্যই স্ক্রীনের একটি এলাকা দখল করতে হবে যা <minLodPixels> এর চেয়ে বড় এবং <maxLodPixels> এর চেয়ে কম। একবার এই অঞ্চলের অনুমিত আকার এই সীমার বাইরে চলে গেলে, এটি আর দৃশ্যমান হয় না এবং অঞ্চলটি নিষ্ক্রিয় হয়ে যায়।

বিশেষ ক্ষেত্রে যেখানে আপনি ডেটাকে অসীম আকারে সক্রিয় করতে চান, <maxLodPixels> এর জন্য −1 (ডিফল্ট) উল্লেখ করুন।

উদাহরণ 1: একটি গ্রাউন্ড ওভারলে জন্য অঞ্চল

প্রথমে, আসুন একটি সাধারণ উদাহরণ দেখি যা স্থল স্তরে একটি 2D ওভারলের জন্য একটি অঞ্চল তৈরি করে। এই উদাহরণটি 1991 সালে মাউন্টেন ভিউ, ক্যালিফোর্নিয়ার একটি অংশ দেখানো ঐতিহাসিক ডেটা সম্বলিত একটি গ্রাউন্ড ওভারলে ব্যবহার করে। ব্যবহারকারী যখন এলাকায় জুম করে, ওভারলেটি দৃশ্যমান হয়। ওভারলেটি প্রথম দৃশ্যমান হলে কেমন দেখায় তা এখানে (উদাহরণ ফাইলটিতে ওভারলেটিকে আরও ভালভাবে আলাদা করার জন্য একটি সাদা লাইনস্ট্রিংও রয়েছে):

এই উদাহরণে, <minLodPixels> হল 128, যার মানে হল গ্রাউন্ডওভারলে যখন স্ক্রীনে 128 বর্গ পিক্সেল দখল করে তখন দৃশ্যে আসে। (উদাহরণটি <maxLodPixels>-এর জন্য -1-এর ডিফল্ট মান ব্যবহার করে, যার মানে ব্যবহারকারী এই কোণে জুম করলে এটি দৃশ্যমান থাকবে।) এই ওভারলেটির জন্য ব্যবহৃত চিত্রটি 256 বর্গ পিক্সেল বর্গক্ষেত্র।

ব্যবহারকারী এটিতে জুম করলে ছবিটি কেমন দেখায় তা এখানে:

এবং এটি অদৃশ্য হওয়ার ঠিক আগে কাত হওয়া চিত্রটি কেমন দেখায় কারণ এটি <minLodPixels> মানের চেয়ে কম স্ক্রীন স্থান ব্যবহার করে:

এই ডেটার জন্য <LatLonAltBox>-এ <minAltitude> এবং <maxAltitude> উপাদানগুলি অন্তর্ভুক্ত করার প্রয়োজন নেই কারণ ডেটা সমতল এবং স্থল স্তরে রয়েছে। এই অঞ্চলের <LatLonAltBox>-এ ডেটার জন্য বাউন্ডিং বক্সটি গ্রাউন্ড ওভারলে-এর <LatLonBox>-এর সীমানার অনুরূপ, যেমনটি নীচের KML ফাইলে দেখানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Flat Region</name>
<Region>
<LatLonAltBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<GroundOverlay>
<name>Mountain View DOQQ</name>
<Icon>
<href>files/image.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonBox>
</GroundOverlay> </Document> </kml>

এছাড়াও, KML ফাইলের মধ্যে, লক্ষ্য করুন যে অঞ্চলটি চিত্রের (বা জ্যামিতি) একটি ভাইবোন যার দৃশ্যমানতা এটি প্রভাবিত করে।

এখন আপনি KML ফাইল পরীক্ষা করার সময় পেয়েছেন, Google Earth এ ওভারলে লোড করতে নিম্নলিখিত লিঙ্কটিতে ক্লিক করুন৷ তারপরে বিভিন্ন দৃষ্টিভঙ্গি নিয়ে পরীক্ষা করুন এবং দেখুন কখন অঞ্চলটি দৃশ্যমান এবং দৃশ্যের বাইরে আসে, এটির কতটা স্ক্রীন এরিয়ার প্রয়োজন তার উপর নির্ভর করে। মনে রাখবেন যে আপনি যদি ভিউটিকে যথেষ্ট দূরে কাত করেন বা আপনি যদি কিছুটা জুম আউট করেন, ওভারলেটি অদৃশ্য হয়ে যায় কারণ এটি <minLodPixels> প্রয়োজনীয়তা পূরণ করতে খুব কম স্ক্রীন স্থান নেয়।

Google Earth-এ উদাহরণ দেখুন (historicOverlay.kmz)

উচ্চতা

উদাহরণ 2: একটি 3D মডেলের জন্য অঞ্চল

নীচের উদাহরণটি দেখায় যে কীভাবে একটি অঞ্চল তৈরি করতে হয় যেখানে স্থল স্তরে 3D বস্তু রয়েছে। এই অঞ্চলের জন্য <LatLonAltBox> 300 মিটারের একটি <maxAltitude> ধারণ করে কারণ এটি বিল্ডিংয়ের উচ্চতা। আপনি সম্ভবত এই ভবনগুলিকে নিউ ইয়র্ক সিটিতে জাতিসংঘের কমপ্লেক্স হিসাবে চিনতে পারবেন।

এটা লক্ষ্য করা গুরুত্বপূর্ণ যে অঞ্চলের <LatLonAltBox> সীমানা মডেলের দ্রাঘিমাংশ এবং অক্ষাংশের সীমানার সাথে অগত্যা ঠিক মেলে না। মডেলের স্থানাঙ্কগুলি তার নিজস্ব স্থানীয় উত্সের সাথে আপেক্ষিক, যা পৃথিবীতে মডেলের প্রকৃত অবস্থান থেকে অফসেট হতে পারে৷

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>3D Region on ground</name>
<Placemark>
<name>United Nations Headquarters</name>
<visibility>0</visibility>
<Region>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
<LatLonAltBox>
<north>40.750683130314</north>
<south>40.748162385230</south>
<east>-73.966608428427</east>
<west>-73.969476624071</west>
<minAltitude>0</minAltitude>
<maxAltitude>300</maxAltitude>
<altitudeMode>absolute</altitudeMode>

</LatLonAltBox>
</Region>
<Model>
<altitudeMode>absolute</altitudeMode>
<Location>
<longitude>-73.967763927199</longitude>
<latitude>40.749458312255</latitude>
<altitude>0.406173708576</altitude>
</Location>
<Link>
<href>models/un.dae</href>
</Link>
</Model>
</Placemark>
</Document>
</kml>

Google Earth এ ফাইলটি লোড করতে নিম্নলিখিত লিঙ্কে ক্লিক করুন। আবার, বিল্ডিংগুলি কখন দৃশ্যমান হয় এবং কখন সেগুলি দৃশ্য থেকে সরানো হয় তা দেখতে বিভিন্ন দৃষ্টিকোণ নিয়ে পরীক্ষা করুন।

Google Earth-এ উদাহরণ দেখুন (unitedNations.kmz)

উদাহরণ 3: উচ্চতায় একটি 2D ওভারলের জন্য অঞ্চল

এই উদাহরণটি দেখায় যে আপনি কীভাবে একটি নির্দিষ্ট উচ্চতায় পৃথিবীর পৃষ্ঠের উপরে প্রদর্শন করতে একটি 2D ওভারলে যুক্ত করবেন। এই কৌশলটি আবহাওয়ার ফ্রন্ট এবং এয়ার ট্র্যাফিক প্যাটার্ন দেখানো ডেটার জন্য উপযোগী। এখানে, উদাহরণটি সমুদ্রপৃষ্ঠ থেকে 100,000 মিটার উচ্চতায় একটি ছোট মেঘের আবরণ দেখায়।

অঞ্চলের <LatLonAltBox> <minAltitude> এবং <maxAltitude> উপাদান উভয়ের জন্য 100,000 মিটারের একটি মান নির্দিষ্ট করে। (উভয় উপাদানের জন্য মান একই, যেহেতু ওভারলে 2D এবং কোন বেধ নেই।) <altitudeMode> পরম , যার মানে এই মান সমুদ্রপৃষ্ঠের সাথে আপেক্ষিক।

লক্ষ্য করুন যে GroundOverlay-এর <altitude> মানটিও 100,000 (অর্থাৎ, এটি অঞ্চলের সীমানা বাক্সের উচ্চতার মানের সাথে মেলে), এবং GroundOverlay-এর <altitudeMode> অঞ্চলের <altitudeMode>-এর জন্য নির্দিষ্ট করা মানের সাথে মেলে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Flat Region at altitude</name>
<GroundOverlay>
<name>Cloud overlay</name>
<Region>
<LatLonAltBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
<minAltitude>100000</minAltitude>
<maxAltitude>100000</maxAltitude>
<altitudeMode>absolute</altitudeMode>

</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<Icon>
<href>files/image.PNG</href>
</Icon>
<altitude>100000</altitude>
<altitudeMode>absolute</altitudeMode>

<LatLonBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

Google Earth-এ উদাহরণ দেখুন (cloudRegion.kmz)

ফেইড এক্সটেনশন

আপনি একটি অঞ্চলের জন্য একটি বিবর্ণ সীমাও নির্দিষ্ট করতে পারেন, যা একটি বস্তুকে স্বচ্ছ থেকে অস্বচ্ছ এবং আবার ফিরে যেতে সুন্দরভাবে স্থানান্তর করতে দেয়। যখন অঞ্চলটি সর্বাধিক দৃশ্যমান আকারে থাকে তখন Google আর্থ সম্পূর্ণ স্বচ্ছ থেকে সম্পূর্ণ অস্বচ্ছ পর্যন্ত র‌্যাম্প নির্ধারণ করতে maxFadeExtent ব্যবহার করে এবং যখন অঞ্চলটি তার সর্বনিম্ন দৃশ্যমান আকারে থাকে তখন ফেড র‌্যাম্প নির্ধারণ করতে এটি minFadeExtent ব্যবহার করে। ফেড রেঞ্জগুলি ঐচ্ছিক, কিন্তু তারা লাইনস্ট্রিং বা বিভিন্ন রেজোলিউশনের বহুভুজের মধ্যে "পপ" প্রভাবকে বাধা দেয়। বিবর্ণ কর্মক্ষমতা পরিপ্রেক্ষিতে খুব ব্যয়বহুল এবং চিত্রের সাথে ব্যবহার করা উচিত নয়।

দ্রষ্টব্য: স্থানচিহ্ন আইকন ব্যতীত সমস্ত বস্তুর জন্য ফেড পরিসর প্রযোজ্য। এই আইকনগুলি আঁকা হয় যখন ফেইড রেঞ্জ 0.5-এর বেশি হয়।

নীচের উদাহরণটি ব্যাখ্যা করে যে কীভাবে বিবর্ণ সীমা একটি লাইনস্ট্রিংকে প্রভাবিত করে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Region in Placemark LineString</name>
<description>
The LineString corners mark the extent
of the Region LatLonAltBox.
The LineString minFadeExtent (at greatest range)
is 1/4 of the maxFadeExtent (at closest range)..
</description>
<Placemark>
<name>Region LineString</name>
<LineString>
<coordinates>
22,50,0
28,50,0
28,45,0
22,45,0
22,50,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>50</north>
<south>45</south>
<east>28</east>
<west>22</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024</maxLodPixels>
<minFadeExtent>128</minFadeExtent>
<maxFadeExtent>512</maxFadeExtent>

</Lod>
</Region>
</Placemark>
</Document>
</kml>

Google Earth-এ উদাহরণ দেখুন (fadeLineString.kml)

নেস্টিং অঞ্চল

অঞ্চলগুলির একটি সাধারণ ব্যবহার হল তাদের বাসা বাঁধা, বড় অঞ্চলগুলি মোটা রেজোলিউশনের সাথে যুক্ত এবং ছোট, ভিতরের অঞ্চলগুলি ক্রমবর্ধমান সূক্ষ্ম স্তরের বিবরণের সাথে যুক্ত। নিম্নলিখিত চিত্রে, প্রতিটি অঞ্চলের একটি LOD সীমার সেট রয়েছে যা পিক্সেলে অঞ্চলের প্রজেক্টেড স্ক্রীনের আকার নির্দিষ্ট করে যা সংশ্লিষ্ট অঞ্চলের সক্রিয় হওয়ার জন্য প্রয়োজনীয়। ব্যবহারকারীর দৃষ্টিভঙ্গি যত কাছাকাছি আসে, সূক্ষ্ম স্তরের বিশদ (LOD) সহ অঞ্চলগুলি সক্রিয় হয়ে ওঠে কারণ অঞ্চলটি আরও বেশি স্ক্রীন স্থান নেয়৷ সূক্ষ্ম LOD সহ অঞ্চলগুলি পূর্বে লোড করা অঞ্চলগুলিকে মোটা LOD দিয়ে প্রতিস্থাপন করে।

পরপর নেস্টেড অঞ্চলগুলি সক্রিয় হওয়ার সাথে সাথে তারা করতে পারে

  • প্রতিটি অঞ্চলের সাথে সম্পর্কিত ডেটা সংগ্রহ করুন (নিচে বর্ণিত সুপার-ওভারলে উদাহরণের মতো)
  • পূর্বে লোড করা অঞ্চলের ডেটা নতুন ডেটা দিয়ে প্রতিস্থাপন করুন (আগের চিত্রে চিত্রিত)

একটি শিশু অঞ্চলে একটি <LatLonAltBox> সম্পূর্ণরূপে তার অভিভাবক অঞ্চলের <LatLonAltBox> এর মধ্যে থাকা উচিত। অঞ্চলগুলি ফোল্ডার এবং NetworkLink অনুক্রমের মাধ্যমে উত্তরাধিকারসূত্রে প্রাপ্ত হয়। স্থানীয়ভাবে সংজ্ঞায়িত অঞ্চলগুলি ফোল্ডারের অনুক্রমের উচ্চতর সংজ্ঞায়িত অঞ্চলগুলির চেয়ে অগ্রাধিকার নেয়৷ নিম্নোক্ত উদাহরণটি ব্যাখ্যা করে যে কীভাবে একটি অঞ্চলের স্থানীয় স্কোপ অনুক্রমের উচ্চতর সংজ্ঞায়িত একটি অঞ্চলকে ওভাররাইড করে। এই উদাহরণে, স্থানচিহ্ন "ইউক্রেন অঞ্চল" এর মূল নথি থেকে অঞ্চলটিকে উত্তরাধিকারসূত্রে প্রাপ্ত করে৷ ফোল্ডার "romaniaFolder" তার নিজস্ব অঞ্চল নির্দিষ্ট করে, যা প্লেসমার্ক "romaniaRegion" দ্বারা ব্যবহৃত হয়। সর্বাধিক দক্ষতার জন্য নেটওয়ার্কলিঙ্কের মধ্যে অঞ্চলগুলি কীভাবে ব্যবহার করবেন তার আরও উদাহরণের জন্য অঞ্চল-ভিত্তিক নেটওয়ার্ক লিঙ্কগুলির "স্মার্ট" লোডিং-এর পরবর্তী বিভাগটি দেখুন।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <Folder> <name>romaniaFolder</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark> </Folder> </Document> </kml>

পূর্ববর্তী উদাহরণে দেখানো অঞ্চল-ভিত্তিক নেটওয়ার্কলিঙ্ক হল গুগল আর্থ-এ একটি খুব বড় ডেটাসেট প্রকাশ করার সবচেয়ে কার্যকর উপায়। নেটওয়ার্কলিঙ্কের সাথে একত্রে অঞ্চলগুলি ব্যবহার করে, আপনি পয়েন্টারগুলির একটি শ্রেণিবিন্যাস তৈরি করতে পারেন, যার প্রতিটি একটি নির্দিষ্ট উপ-অঞ্চলের দিকে নির্দেশ করে। নিচের KML ফাইলে দেখানো <viewRefreshMode> -এ একটি onRegion বিকল্প রয়েছে, যা অঞ্চলটি সক্রিয় থাকলেই অঞ্চলের ডেটা লোড করতে নির্দিষ্ট করে। আপনি যদি একাধিক স্তরের বিশদ সহ নেস্টেড অঞ্চলগুলি প্রদান করেন তবে ব্যবহারকারীর দৃষ্টিভঙ্গি পরবর্তী লোডটিকে ট্রিগার করলেই কেবলমাত্র তখনই বেশি পরিমাণে ডেটা লোড হয়৷ সুপার-ওভারলে- এর নিম্নলিখিত বিভাগটি একটি বিশদ উদাহরণ প্রদান করে।

পার্ট 1: প্যারেন্ট ফাইল

এই উদাহরণটি চালানোর জন্য, যথারীতি প্রথম অংশটি সংরক্ষণ করুন। দ্বিতীয় অংশটিকে romaniaRegion.kml হিসাবে সংরক্ষণ করুন যাতে নেটওয়ার্কলিঙ্ক সক্রিয় হয়ে গেলে অঞ্চলটি লোড করতে সক্ষম হয়।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <NetworkLink> <name>romania NetworkLink</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Link> <href>romaniaRegion.kml</href> <viewRefreshMode>onRegion</viewRefreshMode> </Link> </NetworkLink> </Document> </kml>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>romania Document</name>
<Region>
<LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox>
<Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod>
</Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0
28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark>
</Document>
</kml>

সুপার-ওভারলে

প্রশ্ন : আমি কিভাবে বিশ্বের সাথে একটি 47MB ছবি শেয়ার করতে পারি?
উত্তরঃ এক সময়ে এক টুকরো।

প্রশ্নঃ সবাই এটা করার চেষ্টা করলে কি হবে?
উত্তর : আপনি যদি অঞ্চল-ভিত্তিক নেটওয়ার্ক লিঙ্ক ব্যবহার করেন এবং এই টিউটোরিয়ালে বর্ণিত আপনার চিত্রের জন্য একাধিক স্তরের বিশদ সরবরাহ করেন-কোন সমস্যা নেই!

এই বিভাগটি বর্ণনা করে যে কীভাবে একটি "সুপার-ওভারলে" তৈরি করা যায়—অঞ্চল এবং নেটওয়ার্কলিঙ্কগুলির একটি শ্রেণিবিন্যাস যা দক্ষতার সাথে চিত্রের একটি বড় সেট পরিবেশন করতে ব্যবহার করা যেতে পারে। উপযুক্ত রেজোলিউশনের টাইলগুলি লোড করা হয় যখন ইমেজরি এলাকার কিছু অংশ দৃশ্যমান হয়, উচ্চতর রেজোলিউশনের টাইলগুলি ভিউপয়েন্ট কাছাকাছি আসার সাথে সাথে লোড হয়৷ একটি 1024-বাই-768 স্ক্রিনে 7008-বাই-6720-পিক্সেল চিত্র প্রদর্শন করার চেষ্টা করা প্রচেষ্টার অপচয়। আরও কী, ব্যবহারকারী যদি পৃথিবীর পৃষ্ঠ থেকে মাইল উপরে থাকে, তবে সেই সমস্ত ডেটা মুষ্টিমেয় পিক্সেলগুলিতে বদ্ধ হয়ে যেতে পারে এবং কর্মক্ষমতা হতাশাজনক। সুপার-ওভারলে, যেমন আমাদের নমুনা মাউন্টেন ভিউ, ক্যালিফোর্নিয়ার একটি 1991 DOQQ দেখাচ্ছে, আপনাকে নেটওয়ার্কলিঙ্কগুলির সুবিধা নিতে এবং (1) একটি প্রদত্ত অঞ্চল দৃশ্যের মধ্যে রয়েছে কিনা এবং (2) এর প্রক্ষিপ্ত আকার উপযুক্ত কিনা তা নির্ধারণ করার অনুমতি দেয় বর্তমান দৃষ্টিকোণ থেকে। যদি অঞ্চলটি "সক্রিয়" হয় (উভয় শর্ত পূরণ করা হয়), নেটওয়ার্কলিঙ্ক অঞ্চলের সাথে সম্পর্কিত ডেটা লোড করে। যদি অঞ্চলটি নিষ্ক্রিয় থাকে তবে কোনও ডেটা লোড হয় না। আপনি যদি মূল চিত্রটিকে ক্রমবর্ধমান বিশদ স্তর সহ চিত্রগুলির একটি শ্রেণিবিন্যাসে উপবিভক্ত করেন, Google আর্থ বর্তমান দৃশ্যের সাথে সবচেয়ে উপযুক্ত চিত্রগুলি লোড করতে পারে৷

এই চিত্রের অনুক্রমটি কীভাবে ব্যবহার করা হয় তা দেখতে, এই নমুনা ফাইলটি Google আর্থ-এ লোড করুন এবং আগ্রহের জায়গাটিতে জুম ইন এবং আউট করে পরীক্ষা করুন: মাউন্টেন ভিউ হিস্টোরিয়াল DOQQ

একটি খুব বড় ডেটাসেট দক্ষতার সাথে লোড করতে অঞ্চল-ভিত্তিক নেটওয়ার্ক লিঙ্কগুলি ব্যবহার করার উদাহরণ। আসল ছবিটি 7008 x 6720 পিক্সেল। এখানে দেখানো তির্যক দৃশ্যটি এই চিত্রটিকে উপস্থাপন করার জন্য মাত্র পাঁচটি ছোট টাইল লোড করে। (টাইল সীমানা হাইলাইট করার জন্য সাদা লাইনস্ট্রিং যোগ করা হয়েছে।) এই অ্যাপ্লিকেশনটি মাউন্টেন ভিউ শহরের (একটি 1991 DOQQ) ঐতিহাসিক চিত্র উপস্থাপনা দেখায়।

একটি সুপার-ওভারলে জন্য আপনার ডেটা প্রস্তুত করা হচ্ছে

নমুনা সুপার-ওভারলেতে, মূল মাউন্টেন ভিউ চিত্রটি শত শত ছোট গ্রাউন্ডওভারলেতে বিভক্ত। এই ওভারলে, বা টাইলস , একটি পাঁচ-স্তরের অনুক্রমের মধ্যে সাজানো হয়। উদাহরণের উদ্দেশ্যে, এখানে আলোচনা একটি সাধারণ তিন-স্তরের শ্রেণিবিন্যাস এবং 21টি ওভারলেগুলির একটি সেট ব্যবহার করে, তবে জড়িত নীতিগুলি একই। মনে রাখবেন যে অঞ্চল-ভিত্তিক নেটওয়ার্ক লিঙ্কগুলির একটি শ্রেণিবিন্যাস তৈরি করার জন্য এটি শুধুমাত্র একটি পদ্ধতি এবং এই প্রক্রিয়াটি বাস্তবায়নের অন্যান্য উপায় রয়েছে।

একটি সুপার-ওভারলে তৈরি করতে, আপনাকে এটি করতে হবে

  1. চিত্রগুলিকে পরিচালনাযোগ্য খণ্ডে উপবিভক্ত করে প্রস্তুত করুন (256-বাই-256 পিক্সেল প্রস্তাবিত), এবং
  2. KML ফাইলগুলি তৈরি করুন যা অঞ্চল, লিঙ্ক, নেটওয়ার্ক লিঙ্ক এবং এই ক্ষেত্রে, গ্রাউন্ডওভারলে সমন্বিত ফাইলগুলি সেট আপ করে৷

ছবি প্রস্তুত করুন

আপনার টাইলগুলির জন্য একটি আদর্শ আকার চয়ন করুন, যেগুলি উপবিভক্ত চিত্রগুলি (বিভিন্ন রেজোলিউশনের) যা Google আর্থ তাদের সংশ্লিষ্ট অঞ্চলগুলি সক্রিয় হওয়ার সাথে সাথে লোড করবে৷ উদাহরণের জন্য, আমরা আমাদের টাইলগুলির জন্য 256-বাই-256 পিক্সেল ব্যবহার করব, যা পরিচালনা করার জন্য যথেষ্ট ছোট আকারের।

  1. আসল, পূর্ণ-রেজোলিউশন চিত্র দিয়ে শুরু করুন। এটিকে n টাইলগুলিতে উপবিভক্ত করুন এবং তারপর সেই টাইলগুলির প্রতিটিকে n টাইলগুলিতে উপবিভক্ত করুন।
    আপনার কাছে প্রদত্ত আকারের টাইলস না হওয়া পর্যন্ত উপবিভাজন চালিয়ে যান (আমাদের উদাহরণে, 256-বাই-256 পিক্সেল)।

    ধরা যাক আমাদের আসল চিত্রটি 1024-বাই-1024 পিক্সেল।
    যখন আমরা এটিকে উপবিভাজন করি তখন নিম্নোক্ত শ্রেণিবিন্যাস হবে।

  2. অনুক্রমের প্রতিটি টাইলের নমুনা আপনার বেছে নেওয়া মানক আকারে (উদাহরণস্বরূপ, 256-বাই-256 পিক্সেল)।
    এই পুনঃনমুনাকৃত টাইলগুলিতে কম বিশদ থাকবে, তবে বেশি সক্রিয় অঞ্চলগুলির সাথে যুক্ত হবে৷
    দূরবর্তী দৃষ্টিভঙ্গি, তাই বিস্তারিত ক্ষতি ব্যবহারকারীর কাছে অদৃশ্য হবে।

নীচের চিত্রটি দেখায় যে কীভাবে দৃষ্টিভঙ্গি এবং নেস্টেড অঞ্চলগুলির সংজ্ঞা নির্ধারণ করে যে কোন টাইলগুলি আসলে লোড করা হয়েছে৷ চিত্রের এই বড় অংশের নমুনার জন্য তিনটি স্তরের বিশদ প্রদান করা হয়েছে। যখন ব্যবহারকারী সর্বাধিক দূরত্ব থেকে অঞ্চলটি দেখে, তখন Google আর্থ থাম্বনেইল ভিউ প্রদর্শন করে। এই দৃশ্যটি তার সমগ্র LatLonAltBox জুড়ে প্রসারিত (কিন্তু যেহেতু প্রক্ষিপ্ত আকার ছোট—256 বর্গ পিক্সেল—ভিজ্যুয়াল তথ্যের কোনো প্রকৃত ক্ষতি নেই)। ব্যবহারকারী দৃশ্যে জুম ইন করার সাথে সাথে অঞ্চলটিকে চারটি অঞ্চলে ভাগ করা হয়েছে। এই চারটি "টাইল" এর প্রত্যেকটির থাম্বনেইল চিত্রের মতো একই আকার রয়েছে তবে আরও বিশদ চিত্র সরবরাহ করে।

ব্যবহারকারী যদি এলাকাতে জুম বাড়াতে থাকে, তাহলে ব্যবহারকারী কতটা কাছাকাছি যায় তার উপর নির্ভর করে পূর্ণ রেজোলিউশনের চিত্রের কিছু অংশ দেখা যায়। দূরত্বের অঞ্চলগুলি কম বিশদ চিত্রগুলি ধরে রাখে যা প্রথমে লোড করা হয়েছিল৷ মাউন্টেন ভিউ DOQQ উদাহরণে, "বক্স" সক্ষম করুন এবং প্লেসমার্ক A এবং B চেক আউট করুন, যা অঞ্চলগুলির চারপাশে লাইনস্ট্রিং ব্যবহার করে এবং এক সময়ে অনুক্রমের একাধিক স্তর দেখায়৷

লক্ষ্য করুন যে নমুনাটি সমস্ত অঞ্চলের জন্য minLodPixels এবং maxLodPixels-এর জন্য একই মান ব্যবহার করে (শ্রেণিক্রমের সমস্ত স্তরে)। এটি LatLonAltBox যা নির্ধারণ করে কোন স্তরের শ্রেণিবিন্যাস লোড করা উচিত এবং অঞ্চলের মধ্যে কোন টাইল(গুলি)।

KML ফাইল প্রস্তুত করুন

প্রতিটি চিত্রের জন্য, একটি KML ফাইল প্রস্তুত করুন যা একটি অঞ্চল এবং একটি নেটওয়ার্ক লিঙ্কের সাথে গ্রাউন্ড ওভারলেকে সংযুক্ত করে৷ এই সেটের প্রতিটি KML ফাইলে নিম্নলিখিত উপাদান রয়েছে:

  • একটি অঞ্চল (LatLonAltBox, minLodPixels, এবং maxLodPixels সহ যাতে Google আর্থ নির্ধারণ করতে পারে যে কোনো নির্দিষ্ট সময়ে অঞ্চলটি সক্রিয় কিনা)
  • চাইল্ড ফাইলে নেটওয়ার্ক লিঙ্কের একটি সেট (হায়ারার্কির পরবর্তী স্তরের টাইলস)
  • এই অঞ্চলের জন্য স্থল ওভারলে

এই নমুনা মাউন্টেন ভিউ DOQQ উদাহরণের জন্য শীর্ষ-স্তরের KML ফাইল দেখায়। maxLodPixels-এর জন্য, এটি -1 নির্দিষ্ট করে, যার বিশেষ অর্থ হল "সক্রিয় থেকে অসীম আকার।" এই স্পেসিফিকেশন ছাড়া, সমগ্র শ্রেণিবিন্যাস কখনই ট্রিগার করা যাবে না।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink>
<name>SuperOverlay: MV DOQQ</name>
<Region>
<LatLonAltBox>
<north>37.44140625</north>
<south>37.265625</south>
<east>-121.9921875</east>
<west>-122.16796875</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
</Lod>
</Region>
<Link>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/mv-070501/1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
</kml>

নিম্নলিখিত ফাইলটি মাউন্টেন ভিউ DOQQ উদাহরণে একটি অঞ্চল দেখায় ( 179.kml )। এই ফাইলটিতে পাঁচটি href ট্যাগ রয়েছে: চারটি চিত্র অনুক্রমের পরবর্তী স্তরের চারটি KML ফাইলকে উল্লেখ করে এবং একটি এই টাইলের জন্য GroundOverlay-এর জন্য ব্যবহৃত চিত্র ফাইলকে নির্দেশ করে৷

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<NetworkLink>
<name>001120</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>180.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001121</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>185.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001122</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>190.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001123</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>195.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<GroundOverlay>
<drawOrder>5</drawOrder>
<Icon>
<href>179.JPEG</href>
</Icon>

<LatLonBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>