KML 2.1 টিউটোরিয়াল

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

এখানে আলোচনা করা উপাদানগুলির বিশদ বিবরণের জন্য KML 2.1 রেফারেন্স এবং KML 2.1 স্কিমা দেখুন।

KML 2.1 এর হাইলাইটস

  • অঞ্চল - অঞ্চলগুলি কুলিং এবং বিশদ-বিশদ আচরণ প্রদান করে যা আপনাকে Google আর্থ-এ আপনার ডেটা কীভাবে উপস্থাপন করা হয় তা সূক্ষ্ম-টিউন করতে দেয়৷ নেটওয়ার্কলিঙ্কের সাথে ব্যবহার করা হলে, অঞ্চলগুলি রেজোলিউশনের একাধিক স্তরে ডেটা "স্মার্ট" লোড করার সাথে খুব বড় ডেটাসেটের স্ট্রিমিং সক্ষম করে ( সুপার-ওভারলেগুলির বিভাগটি দেখুন)। আপনি অঞ্চলগুলি ব্যবহার করে Google আর্থের স্তরগুলিও অনুকরণ করতে পারেন৷
  • টেক্সচারযুক্ত 3D মডেল - 3D বস্তুগুলিকে তাদের নিজস্ব স্থানাঙ্কের জায়গায় প্রাকৃতিকভাবে মডেল করা যেতে পারে এবং COLLADA™ ফাইল হিসাবে রপ্তানি করা যেতে পারে, তারপর Google Earth এ আমদানি করা হয় এবং পৃথিবীর পৃষ্ঠে স্থাপন করা হয়।
  • ক্রমবর্ধমান আপডেট - এখন আপনি নেটওয়ার্কলিঙ্কস দ্বারা লোড করা ডেটা ক্রমবর্ধমানভাবে আপডেট করতে পারেন — পূর্বে Google আর্থ-এ লোড করা KML ডেটা পরিবর্তন করা, যোগ করা এবং মুছে ফেলা।
  • মেয়াদ শেষ হওয়ার তারিখ/সময় - আপনি ডেটা রিফ্রেশ করতে একটি dateTime নির্দিষ্ট করতে পারেন যাতে ক্যাশে ফ্লাশ করা হয় এবং ডেটা বর্তমান থাকে।
  • রেডিও-বোতাম ফোল্ডার - ব্যবহারকারীকে একবারে একটি ফোল্ডারে শুধুমাত্র একটি আইটেম নির্বাচন করার অনুমতি দিতে, একটি রেডিওফোল্ডার নির্দিষ্ট করতে নতুন ListStyle উপাদান ব্যবহার করুন।

শীতল নমুনা

বৈশিষ্ট পরীক্ষা করে দেখুন!

এখানে কিছু প্রধান নতুন উপাদান রয়েছে যা আপনাকে KML 2.1-এ পরিচয় করিয়ে দেওয়া হবে:

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

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

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

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

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

মূল ধারণা

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

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

সীমান্ত বক্স

একটি অঞ্চলে একটি <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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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://earth.google.com/kml/2.1">
<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>

3D অবজেক্ট প্রদর্শন করা হচ্ছে

KML 2.1-এ, আপনি 3D মডেল আমদানি করতে পারেন—যেমন ভবন, সেতু, স্মৃতিস্তম্ভ এবং মূর্তি—COLLADA ইন্টারচেঞ্জ ফাইল ফর্ম্যাটে। SketchUp , 3D Studio Max, Softimage XSI, বা Maya-এর মতো অ্যাপ্লিকেশন ব্যবহার করে মডেলগুলিকে Google Earth থেকে তাদের নিজস্ব স্থানাঙ্কের জায়গায় স্বাধীনভাবে সংজ্ঞায়িত করা হয়। যখন একটি 3D মডেল Google আর্থে আমদানি করা হয়, তখন এটি অনুবাদ করা হয়, ঘোরানো হয় এবং আর্থ কোঅর্ডিনেট সিস্টেমে ফিট করার জন্য স্কেল করা হয়। Google Earth-এ ইতিমধ্যেই লোড করা মডেলগুলিকে KML 2.1-এ আরেকটি নতুন বৈশিষ্ট্য, <Update> উপাদান ব্যবহার করে পুনরায় অবস্থান ও আকার পরিবর্তন করা যেতে পারে।

নমুনা মডেল

অন্য যেকোন জ্যামিতি বস্তুর (পয়েন্ট, লাইনস্ট্রিং বা বহুভুজ) মতোই Google আর্থ-এ একটি মডেল ব্যবহার করা হয়। এখানে একটি KML ফাইলের একটি সাধারণ উদাহরণ যা একটি টেক্সচার্ড মডেল আমদানি করে।

মডেলের <লিঙ্ক> রেফারেন্স একটি পরম বা আপেক্ষিক ফাইল স্পেসিফিকেশন, বা একটি URL হতে পারে।

এই মডেলটি দেখতে, ফাইলটি লোড করুন MackyBldg.kmz , যা একটি আর্কাইভ যাতে সমস্ত প্রয়োজনীয় টেক্সচার এবং ওভারলে ফাইলের পাশাপাশি মডেলটি ধারণকারী এই doc.kml ফাইলটি রয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
<name>SketchUp Model of Macky Auditorium</name>
<description>University of Colorado, Boulder; model created by Noël Nemcik.</description> <LookAt>
<longitude>-105.2727379358738</longitude>
<latitude>40.01000594412381</latitude>
<altitude>0</altitude>
<range>127.2393107680517</range>
<tilt>65.74454495876547</tilt>
<heading>-27.70337734057933</heading> </LookAt> <Model id="model_4">
<altitudeMode>relativeToGround</altitudeMode>
<Location>
<longitude>-105.272774533734</longitude>
<latitude>40.009993372683</latitude>
<altitude>0</altitude>
</Location>
<Orientation>
<heading>0</heading>
<tilt>0</tilt>
<roll>0</roll>
</Orientation>
<Scale>
<x>1</x>
<y>1</y>
<z>1</z>
</Scale>
<Link>
<href>files/CU Macky.dae</href>
</Link>
</Model>
</Placemark>
</kml>

মডেলটি ভৌগলিকভাবে অবস্থান উপাদানের অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতার বৈশিষ্ট্যের সাথে অবস্থান করে। এই উদাহরণটি ওরিয়েন্টেশন এবং স্কেল উপাদানগুলির জন্য ডিফল্ট মান ব্যবহার করে, যা সম্পূর্ণতার জন্য এখানে অন্তর্ভুক্ত করা হয়েছে।

ওরিয়েন্টেশন উপাদান x ( টিল্ট ), y ( রোল ) এবং z ( শিরোনাম ) অক্ষের চারপাশে মডেলের ঘূর্ণন নির্দিষ্ট করে। y অক্ষ উত্তর নির্দেশ করে এবং দ্রাঘিমাংশ রেখার সমান্তরাল এবং x অক্ষ পূর্ব নির্দেশ করে এবং অক্ষাংশ রেখার সমান্তরাল। ঘূর্ণনগুলি ডিগ্রীতে নির্দিষ্ট করা হয়েছে, নিম্নোক্ত চিত্রে দেখানো ধনাত্মক ঘূর্ণন সহ।

একটি .kmz আর্কাইভ তৈরি করা হচ্ছে

একটি KMZ সংরক্ষণাগার হল একটি একক KML উপস্থাপনা তৈরি করতে ব্যবহৃত ফাইলগুলির সংগ্রহ। এই সংরক্ষণাগারটিতে .kml ফাইলে উল্লেখ করা সমস্ত স্থানীয় ফাইল রয়েছে, যেমন ছবি, টেক্সচার এবং মডেল। একটি KMZ সংরক্ষণাগার হল একটি স্বয়ংসম্পূর্ণ প্যাকেজ যা একটি নেটওয়ার্ক সার্ভারে হোস্ট করার প্রয়োজন নেই এবং সহজেই ই-মেইল করা যায় এবং একটি একক হিসাবে সংরক্ষণ করা যায়। গুগল আর্থ সরাসরি .kml এবং .kmz ফাইল পড়তে পারে।

doc.kml ফাইল এবং এটির উল্লেখ করা স্থানীয় ফাইলগুলি জিপ ফাইল ফর্ম্যাট ব্যবহার করে একটি সংরক্ষণাগারে সংকুচিত হয়। অনেক অ্যাপ্লিকেশন এই বিন্যাস উত্পাদন করতে পারেন. উইন্ডোজ সিস্টেমে WinZip, Macintosh সিস্টেমে Stuffit এবং Linux বা Macintosh সিস্টেমে zip হল জনপ্রিয় অ্যাপ্লিকেশন যা জিপ ফরম্যাট পড়তে ও লিখতে পারে। আপনি সরাসরি উইন্ডোজ এক্সপ্লোরার বা ম্যাক ফাইন্ডার ব্যবহার করে জিপ সংরক্ষণাগারগুলির সাথে কাজ করতে পারেন।

আপনি .zip ফাইল তৈরি করার পরে, ফাইল এক্সটেনশন পরিবর্তন করুন। kmz

ম্যাকি বিল্ডিংয়ের সম্পূর্ণ টেক্সচার্ড মডেল ধারণকারী KMZ আর্কাইভে এই ফাইলগুলি অন্তর্ভুক্ত রয়েছে:

  • doc.kml - উপরে দেখানো KML ফাইল, যা COLLADA (.dae) মডেল আমদানি করে এবং Google Earth এ রাখে। KMZ (ZIP) ফাইলের রুট ডিরেক্টরিতে এই ফাইলটি রাখুন।
  • textures.txt - মডেল ফাইলের টেক্সচার পাথগুলিকে (এখানে, CU Macky.dae) কেএমজেড ফাইলের ভিতরের পাথগুলিতে রিম্যাপ করতে ব্যবহৃত হয়। KMZ (ZIP) ফাইলের রুট ডিরেক্টরিতে এই ফাইলটি রাখুন। CU Macky .dae- তে উল্লেখ করা প্রতিটি টেক্সচারের textures.txt ফর্মের একটি লাইন রয়েছে:
<kmz_file_path> <COLLADA_file_path> [<KML_ID_of_model>]

<kmz_file_path> হল KMZ আর্কাইভের মধ্যে যেখানে টেক্সচারটি অবস্থিত সেখানে আপেক্ষিক পথ। এই পথটি CU Macky.dae- এর সাথে সম্পর্কিত, যা KMZ সংরক্ষণাগারের ফাইল/ ডিরেক্টরিতে রয়েছে। যেহেতু টেক্সচার ফাইল/ ডিরেক্টরিতে সংরক্ষণ করা হয়, তাই <kmz_file_path> ../files/ দিয়ে শুরু হওয়া উচিত।

<COLLADA_file_path> হল টেক্সচার ফাইলের নাম ঠিক যেমন এটি CU Macky .dae-তে প্রদর্শিত হয়।

[KML_ID] হল মডেলের KML ID যা এই টেক্সচার ব্যবহার করে। টেক্সচার একাধিক মডেল দ্বারা ব্যবহার করা যেতে পারে. এই পরামিতি ঐচ্ছিক।

এখানে উদাহরণের textures.txt ফাইল থেকে একটি উদ্ধৃতি দেওয়া হল:

<../files/CU-Macky---Center-StairsnoCulling.jpg> <CU-Macky---Center-StairsnoCulling.jpg> <model_4>
<../files/CU-Macky-4sideturretnoCulling.jpg> <CU-Macky-4sideturretnoCulling.jpg> <model_4>
<../files/CU-Macky-Back-NorthnoCulling.jpg> <CU-Macky-Back-NorthnoCulling.jpg> <model_4>
  • files/ ডিরেক্টরি - COLLADA ফাইল ধারণ করে যা মডেলের জ্যামিতি, টেক্সচার এবং উপাদানকে সংজ্ঞায়িত করে। ম্যাকি বিল্ডিংয়ের উদাহরণে, এই ডিরেক্টরিটিতে COLLADA ফাইল (CU Macky.dae) এবং সেইসাথে বিল্ডিংটি টেক্সচার করার জন্য ব্যবহৃত JPEG চিত্রগুলি ধারণকারী অসংখ্য ফাইল রয়েছে ( CU-Macky-BrickwallnoCulling.jpg, CU-Macky--Center-StairsnoCulling .jpg, CU_Macky-EastdetaildoornoCulling.jpg , এবং আরও অনেক কিছু)।

এই উদাহরণটি একটি KMZ আর্কাইভে ফাইল গঠন করার একটি উপায় ব্যাখ্যা করে। প্রকৃতপক্ষে, আপনি ফাইলগুলিকে আপনার কাছে যৌক্তিক মনে হয় এমন যেকোন কাঠামোতে সাজাতে পারেন, ঠিক যেমন আপনি ফাইলগুলিকে আপনার কম্পিউটারে ফোল্ডার বা ডিরেক্টরিতে সংগঠিত করেন। উদাহরণস্বরূপ, একটি images/ ডিরেক্টরিতে সমস্ত ছবি রাখা দরকারী হতে পারে। আপেক্ষিক রেফারেন্স (যেমন <href> উপাদানে উল্লেখ করা ফাইল যা NetworkLink, Link, Overlay/Icon, এবং Model-এ ব্যবহৃত হয়) doc.kml ফাইলের সাপেক্ষে নির্দিষ্ট করা হয়। আপনি যদি একটি চিত্র ডিরেক্টরি অন্তর্ভুক্ত করেন, তাহলে আপনার চিত্রগুলির জন্য <href> স্পেসিফিকেশন হবে: images/myBrickTexture.jpg , images/myMountainOverlay.png , এবং আরও অনেক কিছু)।

একটি NetworkLink-এ লোড হওয়া ডেটা ক্রমবর্ধমানভাবে পরিবর্তন করতে, Update উপাদানটি ব্যবহার করুন, যা NetworkLinkControl-এর একটি শিশু। আপডেটে যেকোন সংখ্যক পরিবর্তন, তৈরি এবং মুছুন উপাদান থাকতে পারে, যা ক্রমানুসারে প্রক্রিয়া করা হয়।

নীচের চিত্রটি ঘটনার ক্রম চিত্রিত করে।

  1. একটি নেটওয়ার্কলিঙ্ক "মূল" KML ফাইলটি Google Earth এ লোড করে। একটি উপাদান যা পরে আপডেট করা হবে যখন এটি প্রথম নির্দিষ্ট করা হয় তখন একটি স্পষ্ট আইডি সংজ্ঞায়িত করা প্রয়োজন৷ আইডি অবশ্যই একটি প্রদত্ত ফাইলের মধ্যে অনন্য হতে হবে।
  2. অন্য একটি NetworkLink একটি দ্বিতীয় KML ফাইল লোড করে যাতে ইতিমধ্যেই লোড করা KML অবজেক্টে আপডেট (পরিবর্তন, তৈরি এবং মুছে ফেলার যেকোন সমন্বয়) থাকে। আসল KML ডেটা সনাক্ত করতে আপডেট ফাইলটিতে দুটি রেফারেন্স রয়েছে:
  3. Google আর্থ-এর মধ্যে বস্তুগুলি সনাক্ত করতে, আপডেট উপাদানটি লক্ষ্যবস্তু (গুলি) পরিবর্তন করার জন্য সংজ্ঞায়িত মূল ফাইলটি সনাক্ত করতে targetHref উপাদান ব্যবহার করে। পরিবর্তন করা বস্তু(গুলি) বা নতুন অবজেক্টের জন্য ধারক সনাক্ত করতে, পরিবর্তন, তৈরি এবং মুছুন উপাদানগুলিতে একটি targetId বৈশিষ্ট্য রয়েছে যা সেই বস্তুগুলির আইডি উল্লেখ করে।

উদাহরণ পরিবর্তন করুন

নিম্নলিখিত উদাহরণটি নমুনা নেটওয়ার্ক লিঙ্ক এবং কেএমএল ডেটা ফাইলগুলির একটি সেট দেখায়৷ নমুনা চালানোর জন্য:

  1. Google Earth এ Point-load.kml ফাইলটি লোড করুন। এই ফাইলটিতে নেটওয়ার্কলিংক রয়েছে যা মূল ডেটা ফাইল লোড করে, যাতে দুটি পয়েন্ট থাকে ( Point.kml )।
  2. Google Earth-এ Update-load.kml ফাইলটি লোড করুন। এই ফাইলটিতে দ্বিতীয় নেটওয়ার্কলিঙ্ক রয়েছে, যা আপডেট ডেটা ( পয়েন্ট123 এর জন্য একটি নতুন নাম) ধারণকারী ফাইলটি লোড করে।

প্রথম ফাইলটিতে নেটওয়ার্কলিংক রয়েছে যা ডেটা ফাইল লোড করে, যেখানে দুটি পয়েন্ট রয়েছে। যে প্লেসমার্কগুলিতে এই পয়েন্টগুলি রয়েছে সেগুলির জন্য আইডি বরাদ্দ করা আছে৷ তৃতীয় ফাইলটিতে আরেকটি নেটওয়ার্কলিঙ্ক রয়েছে, যা আপডেট ফাইল যোগ করে। পরিবর্তন উপাদান পয়েন্ট123 -এর জন্য প্লেসমার্কের নাম পরিবর্তন করে।

এখানে এই উদাহরণে ব্যবহৃত চারটি ফাইল রয়েছে। প্রথমত, এটি হল Point-load.kml ফাইল, যাতে রয়েছে NetworkLink যা মূল ডেটা ফাইল ( Point.kml ) লোড করে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Loads Point.kml</name>
<Link>
<href>http://developers.google.com/kml/documentation/Point.kml</href>
</Link>
</NetworkLink>
</kml>

এখানে Point.kml ফাইলটি রয়েছে, যেখানে মূল ডেটা (দুই পয়েন্ট) রয়েছে। আইডি "পয়েন্ট123" এর বিন্দুটি হল সেই বিন্দু যা আমরা পরিবর্তন করব।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<Placemark id="pm123">
<name>point123</name>
<Point> <coordinates>-95.44,40.42,0</coordinates> </Point>
</Placemark> <Placemark id="pm456"> <name>point456</name>
<Point> <coordinates>-95.43,40.42,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>

এরপরে রয়েছে দ্বিতীয় নেটওয়ার্কলিঙ্ক ফাইল ( Update-load.kml )। এই ফাইলটি ফাইলটি লোড করে যাতে আপডেট তথ্য রয়েছে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Update</name>
<Link>
<href>http://developers.google.com/kml/documentation/NetworkLinkControl-Update.kml</href></Link> </NetworkLink>
</kml>

এবং অবশেষে, এখানে KML ফাইল (NetworkLinkControl-Update.kml ) যা আপডেট তথ্য ধারণ করে:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLinkControl>
<Update>
<targetHref>http://developers.google.com/kml/documentation/Point.kml</targetHref>
<Change>
<Placemark targetId="pm123"> <name>Name changed by Update Change</name>
<!-- coordinates remain the same -->
</Placemark>
</Change> </Update>
</NetworkLinkControl>
</kml>

মেয়াদ শেষ

ডিফল্টরূপে, Google Earth-এ লিঙ্কের মাধ্যমে ডেটা শুধুমাত্র একবার লোড করা হয়। কেএমএল ডেটা বাসি হওয়া রোধ করতে, আপনি একটি <href> উপাদান (একটি লিঙ্ক বা আইকন উপাদানে) দ্বারা লোড করা যেকোনো ডেটার জন্য onExpire- এর একটি refreshMode উল্লেখ করতে পারেন। ডিফল্টরূপে, HTTP মেয়াদ শেষ হওয়ার শিরোনামগুলি মেয়াদ শেষ হওয়ার সময় নির্দিষ্ট করে। আপনি এখন একটি KML NetworkLinkControl-এ মেয়াদ শেষ হওয়ার সময় উল্লেখ করতে পারেন। সময়টিকে একটি XML dateTime হিসাবে প্রকাশ করা হয় ( এক্সএমএল স্কিমা পার্ট 2: ডেটাটাইপ দ্বিতীয় সংস্করণ দেখুন)। HTTP শিরোনাম এবং KML মেয়াদ শেষ হওয়ার সময় উভয়ই নির্দিষ্ট করা থাকলে, KML মেয়াদ শেষ হওয়ার সময় অগ্রাধিকার পায়।

উদাহরণ 1: HTTP সার্ভারের মেয়াদ শেষ হওয়ার সময় ব্যবহার করে মেয়াদ শেষ

এই উদাহরণটি শুধুমাত্র দৃষ্টান্তের জন্য। এটি একটি আইকন সহ একটি গ্রাউন্ডওভারলে দেখায় যা onExpire- এর একটি রিফ্রেশমোড সেট করে । যেহেতু কোন KML মেয়াদ শেষ হওয়ার সময় সেট করা নেই, এই উদাহরণটি HTTP সার্ভারের মেয়াদ শেষ হওয়ার সময় ব্যবহার করে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>refreshMode onExpire</name>
<Snippet maxLines="10">
Image automatically reloads according to http
server expiration.

</Snippet>
<GroundOverlay>
<Icon>
<href>http://www.someserver.com/image.jpeg</href>
<refreshMode>onExpire</refreshMode>

</Icon>
<LatLonBox>
<!-- from edit session in earth -->
<!-- The roof of a building in the Presidio -->
<north>37.80385180177469</north>
<east>-122.4558710620651</east>
<south>37.80337403503347</south>
<west>-122.4564295653771</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

উদাহরণ 2: KML মেয়াদ শেষ হওয়ার সময় ব্যবহার করার উদাহরণ

নিম্নলিখিত উদাহরণটি এলোমেলোভাবে নির্বাচিত স্থানাঙ্কে একটি স্থানচিহ্ন প্রদান করে। এই উদাহরণে onExpire- এর রিফ্রেশমোড সহ একটি লিঙ্ক রয়েছে। এই ক্ষেত্রে, নতুন KML <expires> উপাদান ব্যবহার করে মেয়াদ শেষ হওয়ার তারিখ/সময় নির্দিষ্ট করা হয় (একটি পাইথন স্ক্রিপ্টে)। এই KML মেয়াদ শেষ হওয়ার সময়টি HTTP শিরোনামে নির্দিষ্ট করা যেকোন সময়ের চেয়ে অগ্রাধিকার নেয়।

এখানে <href> এবং <refreshMode> উপাদানগুলির সাথে লিঙ্ক ধারণকারী KML NetworkLink:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<NetworkLink>
<Link>
<href>http://dev.someserver.com/cgi-bin/expires.py</href>
<refreshMode>onExpire</refreshMode>
</Link>
</NetworkLink>
</Document>
</kml>

এটি পাইথন স্ক্রিপ্ট যা [ এখন + 11 সেকেন্ড] মেয়াদ শেষ হওয়ার সময় সেট করে এবং প্লেসমার্কের স্থানাঙ্কগুলিকে রিফ্রেশ করে:

#!/usr/bin/python

import random
import time
lat = random.random() * 180. - 90.
lon = random.random() * 360. - 180.
now = time.time()
future = time.gmtime(now + 11)
y = future[0]
mo = future[1]
d = future[2]
h = future[3]
mi = future[4]
s = future[5]
iso8601 = '%04d-%02d-%02dT%02d:%02d:%02dZ' % (y,mo,d,h,mi,s)
print 'Content-type: application/vnd.google-earth.kml+xml'
print
print '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
print '<kml xmlns=\"http://earth.google.com/kml/2.1\">'
# must be child of <kml>
print '<NetworkLinkControl>'
print '<expires>%s</expires>' % iso8601
print '</NetworkLinkControl>'
print '<Placemark>'
print '<name>placemark expires %s</name>' % iso8601
print '<Point>'
print '<coordinates>%f,%f,0</coordinates>' % (lon,lat)
print '</Point>'
print '</Placemark>'
print '</kml>'

রেডিও-স্টাইল আইটেম সহ ফোল্ডার

আপনি এখন ListStyle উপাদান ব্যবহার করে এবং radioFolder-এর listItemType উল্লেখ করে রেডিও-স্টাইল আইটেমগুলির সাথে ফোল্ডার তৈরি করতে পারেন। নিম্নলিখিত উদাহরণটি নতুন তালিকা শৈলী উপাদানটির এই ব্যবহারকে চিত্রিত করে।

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>ListStyle radiofolder</name>
<Folder>
<name>radioFolder Folder</name>
<Style>
<ListStyle>
<listItemType>radioFolder</listItemType>
</ListStyle>

</Style>
<Placemark>
<name>north</name>
<Point>
<coordinates>-114,41.79,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>south</name>
<Point>
<coordinates>-114,41.78,0</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>

প্লেস প্যানেল এই ফোল্ডারটি এবং এর প্লেসমার্ক বাচ্চাদের কীভাবে প্রদর্শন করে তা এখানে রয়েছে: