کار با مناطق

مناطق یک ویژگی KML قدرتمند است که به شما امکان می‌دهد مجموعه داده‌های بسیار بزرگی را به Google Earth اضافه کنید بدون اینکه عملکرد را به خطر بیندازید. داده ها تنها زمانی بارگیری و ترسیم می شوند که در دید کاربر قرار گیرند و بخش خاصی از صفحه را اشغال کنند. با استفاده از Regions، می‌توانید سطوح جداگانه‌ای از جزئیات را برای داده‌ها ارائه کنید، به طوری که جزئیات دقیق تنها زمانی بارگذاری می‌شوند که داده‌ها بخشی از صفحه را پر کنند که به اندازه کافی بزرگ باشد تا جزئیات قابل مشاهده باشند.

مفاهیم کلیدی

هر ویژگی می تواند شامل یک منطقه باشد. یک منطقه روی دید هندسه Placemark یا تصویر Overlay تأثیر می گذارد. مناطق هر دو رفتار حذف و سطح جزئیات هندسه یا پوشش تحت تأثیر را تعریف می کنند. مناطق از طریق سلسله مراتب KML به ارث می رسند و بر روی دید ویژگی هایی که در سلسله مراتب پایین تر تعریف شده اند تأثیر می گذارند.

این بخش مفاهیم کلیدی زیر را که برای درک مناطق ضروری هستند شرح می دهد:

وراثت

در KML، برخی از کلاس ها از یک کلاس "پایه" مشتق شده اند. کلاس های مشتق شده همه عناصر کلاس پایه خود را به ارث می برند و برخی از عناصر خاص خود را اضافه می کنند. (این یک تکنیک رایج سیستم های شی گرا است.) برای راحتی بیشتر، این بخش به جای فهرست کردن همه کلاس های مشتق شده، به کلاس پایه اشاره می کند. مثلا:

  • اصطلاح Feature به هر عنصر KML اشاره دارد که از Feature مشتق شده باشد: Document، Folder، GroundOverlay، NetworkLink، PhotoOverlay، Placemark، و ScreenOverlay.
  • هندسه به هر عنصر هندسی در KML اشاره دارد: Point، Polygon، LinearRing، LineString، Model، MultiGeometry.
  • Overlay به عناصر مشتق شده از Overlay اشاره دارد: GroundOverlay، PhotoOverlay، و Screen Overlay.

برای نموداری که وراثت را در عناصر KML نشان می دهد، به مرجع KML مراجعه کنید.

جعبه مرزی

یک منطقه دارای یک <LatLonAltBox> است که یک کادر محدود برای داده های شما تعریف می کند. جعبه مرزی حجمی است که مجموعه ای از اشیا یا نقاط داده را در بر می گیرد. مشابه <LatLonBox> در یک GroundOverlay، <LatLonAltBox> در یک منطقه دارای مرزهای شمالی، جنوبی، شرقی و غربی است. اگر داده‌های موجود در منطقه سه‌بعدی است، یا در ارتفاع دو بعدی است، <LatLonAltBox> منطقه نیز باید حداقل ارتفاع، <minAltitude>، و حداکثر ارتفاع، <maxAltitude> را شامل شود.

اشیاء مرتبط با این کادر محدود زمانی ترسیم می شوند که (1) منطقه در نمای ظاهر شود و (2) اندازه نمایش داده شده روی صفحه <LatLonAltBox> در محدوده پیکسل مشخص شده برای آن منطقه قرار گیرد، همانطور که در سطح جزئیات (LOD) توضیح داده شده است. هنگامی که هر دوی این شرایط برآورده می شود، گفته می شود که منطقه "فعال" است.

سطح جزئیات (LOD)

دومین مفهوم مهم مربوط به مناطق، سطح جزئیات یا به اختصار LOD است. از آنجایی که صفحه کامپیوتر فضای محدودی دارد، کارآمدترین کار این است که موارد را طوری تنظیم کنید که مقادیر زیادی داده تنها زمانی بارگذاری شوند که پیکسل های کافی برای نمایش داده ها به اندازه کافی وجود داشته باشد. هنگامی که منطقه بخش نسبتاً کوچکی از صفحه را اشغال می کند (شاید به این دلیل که کاربر از فاصله دور آن را مشاهده می کند، یا یک منطقه صاف است که به صورت مایل مشاهده می شود)، مکانیسم LOD به شما (نویسنده KML) اجازه می دهد تا یک مورد را مشخص کنید. مجموعه داده با وضوح پایین تر به جای داده های با وضوح کامل. این مجموعه داده با وضوح پایین سریعتر بارگیری می شود، و از آنجایی که به هر حال بخش کوچکی از صفحه را اشغال می کند، کاربر نمی تواند تفاوت را تشخیص دهد.

در یک منطقه، عناصر <minLodPixels> و <maxLodPixels> به شما این امکان را می دهند که یک ناحیه از صفحه نمایش را (به پیکسل مربع) مشخص کنید. وقتی داده‌های شما روی صفحه نمایش داده می‌شوند، باید ناحیه‌ای از صفحه را اشغال کنند که بزرگ‌تر از <minLodPixels> و کمتر از <maxLodPixels> باشد تا قابل مشاهده باشند. زمانی که اندازه منطقه پیش بینی شده از این محدوده خارج شود، دیگر قابل مشاهده نیست و منطقه غیرفعال می شود.

در مورد خاصی که می‌خواهید داده‌ها به اندازه بی‌نهایت فعال باشند، −1 (پیش‌فرض) را برای <maxLodPixels> مشخص کنید.

مثال 1: منطقه برای پوشش زمین

ابتدا، بیایید به یک مثال ساده نگاه کنیم که یک منطقه برای پوشش دو بعدی در سطح زمین می سازد. این مثال از یک پوشش زمینی حاوی داده‌های تاریخی استفاده می‌کند که بخشی از Mountain View، کالیفرنیا را در سال 1991 نشان می‌دهد. وقتی کاربر روی منطقه زوم می‌کند، پوشش قابل مشاهده می‌شود. در اینجا به نظر می رسد که همپوشانی برای اولین بار قابل مشاهده است (فایل نمونه همچنین شامل یک LineString سفید برای برجسته کردن همپوشانی بهتر است):

در این مثال، <minLodPixels> 128 است، به این معنی که GroundOverlay زمانی نمایان می شود که 128 پیکسل مربع روی صفحه را اشغال کند. (مثال از مقدار پیش‌فرض -1 برای <maxLodPixels> استفاده می‌کند، به این معنی که وقتی کاربر در این زاویه بزرگ‌نمایی می‌کند، قابل مشاهده خواهد بود.) تصویر مورد استفاده برای این پوشش 256 پیکسل مربع مربع است.

وقتی کاربر روی آن بزرگ‌نمایی می‌کند، تصویر به شکل زیر است:

و در اینجا تصویر کج شده دقیقاً قبل از اینکه نامرئی شود به نظر می رسد زیرا فضای صفحه نمایش کمتری نسبت به مقدار <minLodPixels> مصرف می کند:

<LatLonAltBox> برای این داده نیازی به شامل عناصر <minAltitude> و <maxAltitude> ندارد زیرا داده ها مسطح هستند و در سطح زمین قرار دارند. همانطور که در فایل KML زیر نشان داده شده است، کادر محدود برای داده‌ها در منطقه <LatLonAltBox> با مرزهای پوشش زمین <LatLonBox> یکسان است:

<?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: منطقه برای یک مدل سه بعدی

مثال زیر نحوه ساخت منطقه ای را نشان می دهد که شامل اشیاء سه بعدی در سطح زمین است. <LatLonAltBox> برای این منطقه دارای <maxAltitude> 300 متر است زیرا این ارتفاع ساختمان است. احتمالاً این ساختمان ها را به عنوان مجموعه سازمان ملل در شهر نیویورک می شناسید.

توجه به این نکته مهم است که مرزهای منطقه <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: منطقه برای پوشش دو بعدی در ارتفاع

این مثال نشان می دهد که چگونه می توانید یک پوشش دو بعدی برای نمایش در بالای سطح زمین در ارتفاع مشخصی اضافه کنید. این تکنیک برای داده هایی که جبهه آب و هوا و الگوهای ترافیک هوایی را نشان می دهد مفید است. در اینجا، مثال یک پوشش کوچک ابر را در ارتفاع 100000 متری از سطح دریا نشان می دهد.

<LatLonAltBox> منطقه مقدار 100000 متر را برای هر دو عنصر <minAltitude> و <maxAltitude> مشخص می کند. (مقدار برای هر دو عنصر یکسان است، زیرا Overlay 2D است و ضخامت ندارد.) <altitudeMode> مطلق است، به این معنی که این مقدار نسبت به سطح دریا است.

توجه داشته باشید که مقدار <altitude> GroundOverlay نیز 100000 است (یعنی با مقدار ارتفاع کادر محدوده منطقه مطابقت دارد)، و <altitudeMode> GroundOverlay با مقدار تعیین شده برای <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 Earth از maxFadeExtent برای تعیین سطح شیب دار از کاملاً شفاف تا کاملاً مات در زمانی که منطقه در حداکثر اندازه قابل مشاهده است استفاده می کند و از minFadeExtent برای تعیین سطح شیب دار محو شدن زمانی که منطقه در حداقل اندازه قابل مشاهده است استفاده می کند. محدوده های محو اختیاری هستند، اما از جلوه "پاپ" بین LineStrings یا Polygons با وضوح های مختلف جلوگیری می کنند. محو شدن از نظر کارایی بسیار گران است و نباید با تصویرسازی استفاده شود.

توجه: محدوده محو شدن برای همه اشیا به جز نمادهای مکان‌نما اعمال می‌شود. این نمادها زمانی ترسیم می شوند که محدوده محو شدن بیشتر از 0.5 باشد.

مثال زیر نشان می دهد که چگونه وسعت محو شدن روی LineString تأثیر می گذارد.

<?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 های درشت تر می شوند.

با فعال شدن مناطق تو در تو متوالی می توانند

  • جمع آوری داده های مرتبط با هر منطقه (مانند مثال Super-Overlay که در زیر توضیح داده شده است)
  • داده های منطقه بارگیری شده قبلی را با داده های جدید جایگزین کنید (همانطور که در شکل قبل نشان داده شده است)

یک <LatLonAltBox> در منطقه فرزند باید به طور کامل در <LatLonAltBox> منطقه والد آن باشد. مناطق از طریق سلسله مراتب Folder و NetworkLink به ارث می رسند. مناطق تعریف شده به صورت محلی بر مناطقی که در سلسله مراتب پوشه بالاتر تعریف شده اند اولویت دارند. مثال زیر نشان می دهد که چگونه محدوده محلی یک منطقه بر منطقه ای که در سلسله مراتب بالاتر تعریف شده است، غلبه می کند. در این مثال، نشان مکان "ukraineRegion" منطقه را از سند اصلی خود به ارث می برد. پوشه "romaniaFolder" منطقه خود را مشخص می کند که توسط Placemark "romaniaRegion" استفاده می شود. برای مثال‌های بیشتر از نحوه استفاده از مناطق در NetworkLinks برای حداکثر کارایی، بخش بعدی را در بارگیری هوشمند پیوندهای شبکه مبتنی بر منطقه مشاهده کنید.

<?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>

NetworkLink مبتنی بر منطقه که در مثال قبل نشان داده شده است، کارآمدترین راه برای انتشار مجموعه داده بسیار بزرگ در Google Earth است. با استفاده از Regions در ارتباط با NetworkLinks، می‌توانید سلسله مراتبی از نشانگرها ایجاد کنید که هر کدام به یک Sub-Region خاص اشاره می‌کنند. <viewRefreshMode> ، همانطور که در فایل KML زیر نشان داده شده است، دارای یک گزینه onRegion است که مشخص می کند داده های منطقه فقط زمانی که منطقه فعال است بارگیری شود. اگر مناطق تو در تو را با سطوح مختلف جزئیات ارائه کنید، مقدار بیشتری از داده تنها زمانی بارگیری می شود که دیدگاه کاربر بار بعدی را فعال کند. بخش زیر در مورد Super-Overlays یک مثال مفصل ارائه می دهد.

قسمت 1: فایل والد

برای اجرای این مثال، قسمت اول را طبق معمول ذخیره کنید. قسمت دوم را با عنوان romaniaRegion.kml ذخیره کنید تا NetworkLink بتواند منطقه را با فعال شدن بارگیری کند.

<?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>

سوپر روکش ها

س : چگونه می توانم یک تصویر 47 مگابایتی را با جهان به اشتراک بگذارم؟
A : یک تکه در یک زمان.

س : اگر همه تلاش کنند این کار را انجام دهند چه اتفاقی می افتد؟
پاسخ: اگر از NetworkLinks مبتنی بر منطقه استفاده می کنید و سطوح مختلفی از جزئیات را برای تصاویر خود همانطور که در این آموزش توضیح داده شده ارائه می دهید، مشکلی نیست!

این بخش نحوه ایجاد یک "سوپر همپوشانی" را توضیح می دهد - سلسله مراتبی از مناطق و پیوندهای شبکه که می تواند برای ارائه کارآمد مجموعه بزرگی از تصاویر استفاده شود. کاشی‌هایی با وضوح مناسب با نمایان شدن بخش‌هایی از ناحیه تصویر بارگذاری می‌شوند و کاشی‌های با وضوح بالاتر با نزدیک شدن به نقطه دید بارگذاری می‌شوند. تلاش برای نمایش یک تصویر 7008 در 6720 پیکسل بر روی صفحه نمایش 1024 در 768، هدر دادن تلاش است. علاوه بر این، اگر کاربر مایل ها بالاتر از سطح زمین باشد، همه آن داده ها ممکن است در تعداد انگشت شماری پیکسل جمع شوند و عملکرد ضعیفی داشته باشد. پوشش‌های فوق‌العاده، مانند نمونه ما که یک DOQQ 1991 از Mountain View، کالیفرنیا را نشان می‌دهد، به شما امکان می‌دهد از NetworkLinks و توانایی آن‌ها برای تعیین (1) اینکه آیا یک منطقه مشخص در دید است و (2) آیا اندازه پیش‌بینی‌شده آن مناسب است یا خیر، استفاده کنید. به دیدگاه فعلی اگر منطقه "فعال" باشد (هر دو شرط برقرار است)، NetworkLink داده های مرتبط با منطقه را بارگیری می کند. اگر منطقه غیرفعال باشد، هیچ داده ای بارگیری نمی شود. اگر تصویر اصلی را به سلسله مراتبی از تصاویر با افزایش سطوح جزئیات تقسیم کنید، Google Earth می‌تواند تصاویری را که به بهترین وجه با نمای فعلی مطابقت دارد بارگیری کند.

برای مشاهده نحوه استفاده از این سلسله مراتب تصویر، این فایل نمونه را در Google Earth بارگیری کنید و با بزرگنمایی و کوچکنمایی در ناحیه مورد نظر آزمایش کنید: Mountain View Historial DOQQ .

مثالی از استفاده از پیوندهای شبکه مبتنی بر منطقه برای بارگذاری کارآمد یک مجموعه داده بسیار بزرگ. تصویر اصلی 7008 در 6720 پیکسل است. نمای مایل نشان داده شده در اینجا فقط پنج کاشی کوچک را برای نمایش این تصویر بارگیری می کند. (رشته‌های خطوط سفید برای برجسته کردن مرزهای کاشی اضافه شده‌اند.) این برنامه ارائه تصاویر تاریخی برای شهر Mountain View را نشان می‌دهد (یک DOQQ 1991).

آماده سازی داده های خود برای یک Super-Overlay

در نمونه ابر همپوشانی، تصویر اصلی Mountain View به صدها لایه GroundOverlay کوچک تقسیم می‌شود. این روکش ها یا کاشی ها در یک سلسله مراتب پنج سطحی مرتب شده اند. به عنوان مثال، بحث در اینجا از یک سلسله مراتب ساده سه سطحی و مجموعه ای از 21 همپوشانی استفاده می کند، اما اصول درگیر یکسان است. توجه داشته باشید که این تنها یک رویکرد برای ایجاد سلسله مراتبی از پیوندهای شبکه مبتنی بر منطقه است و راه‌های دیگری نیز برای پیاده‌سازی این مکانیسم وجود دارد.

برای ایجاد یک پوشش فوق العاده، باید

  1. تصاویر را با تقسیم کردن آن به تکه های قابل مدیریت آماده کنید (256 در 256 پیکسل توصیه می شود) و
  2. فایل‌های KML را ایجاد کنید که مناطق، پیوندها، پیوندهای شبکه، و در این مورد، فایل‌های حاوی GroundOverlays را تنظیم می‌کنند.

تصویرسازی را آماده کنید

یک اندازه استاندارد برای کاشی‌های خود انتخاب کنید، که تصاویر تقسیم‌بندی شده (با وضوح‌های متفاوت) هستند که Google Earth با فعال شدن مناطق مرتبط با آنها بارگیری می‌کند. به عنوان مثال، ما از پیکسل‌های 256 در 256 برای کاشی‌های خود استفاده می‌کنیم، که به اندازه کافی کوچک است که قابل مدیریت باشد.

  1. با تصویر اصلی و با وضوح کامل شروع کنید. آن را به n کاشی تقسیم کنید و سپس هر یک از آن کاشی ها را به n کاشی تقسیم کنید.
    به تقسیم بندی ادامه دهید تا زمانی که کاشی هایی با اندازه معین (در مثال ما، 256 در 256 پیکسل) داشته باشید.

    بیایید فرض کنیم تصویر اصلی ما 1024 در 1024 پیکسل است.
    سلسله مراتب زیر وقتی به دست می آید که آن را تقسیم کنیم.

  2. هر کاشی در سلسله مراتب را به اندازه استانداردی که انتخاب کرده اید (مثلاً 256 در 256 پیکسل) دوباره نمونه کنید.
    این کاشی‌های نمونه‌برداری مجدد جزئیات کمتری خواهند داشت، اما با مناطقی که بیشتر فعال هستند مرتبط خواهند بود
    دیدگاه های دور، بنابراین از دست دادن جزئیات برای کاربر نامحسوس خواهد بود.

نمودار زیر نشان می دهد که چگونه دیدگاه و تعریف مناطق تودرتو تعیین می کند که کدام کاشی ها واقعاً بارگذاری شده اند. سه سطح از جزئیات برای این نمونه تصویر بزرگ ارائه شده است. هنگامی که کاربر از بیشترین فاصله به منطقه نگاه می کند، Google Earth نمای بند انگشتی را نمایش می دهد. این نمای روی کل LatLonAltBox آن کشیده شده است (اما از آنجایی که اندازه پیش بینی شده کوچک است - 256 پیکسل مربع - هیچ از دست دادن واقعی اطلاعات بصری وجود ندارد). وقتی کاربر روی صحنه زوم می کند، منطقه به چهار منطقه تقسیم می شود. هر یک از این چهار "کاشی" به اندازه تصویر بند انگشتی است اما تصاویر دقیق تری را ارائه می دهد.

اگر کاربر به زوم کردن روی منطقه ادامه دهد، بسته به میزان نزدیکی کاربر به آنها، بخش هایی از تصاویر با وضوح کامل مشاهده می شود. نواحی دور، تصاویر با جزئیات کمتری را که ابتدا بارگذاری شده بود، حفظ می کنند. در مثال Mountain View DOQQ ، "Boxes" را فعال کنید و Placemarks A و B را بررسی کنید، که از LineStrings در اطراف مناطق استفاده می کنند و چندین سطح از سلسله مراتب را در یک زمان نشان می دهند.

توجه داشته باشید که نمونه از مقادیر یکسانی برای minLodPixels و maxLodPixels برای همه مناطق (در تمام سطوح سلسله مراتب) استفاده می کند. این LatLonAltBox است که تعیین می کند کدام سطح از سلسله مراتب باید بارگذاری شود، و کدام کاشی(های) در منطقه.

فایل های KML را آماده کنید

برای هر تصویر، یک فایل KML آماده کنید که همپوشانی زمین را با یک منطقه و یک NetworkLink مرتبط می کند. هر فایل KML در این مجموعه دارای عناصر زیر است:

  • یک منطقه (با LatLonAltBox، minLodPixels، و maxLodPixels تا Google Earth بتواند تعیین کند که منطقه در هر زمان معین فعال است یا خیر)
  • مجموعه ای از پیوندهای شبکه به فایل های فرزند (کاشی های سطح بعدی سلسله مراتب)
  • پوشش زمین برای این منطقه

این نمونه فایل KML سطح بالا را برای مثال Mountain View DOQQ نشان می دهد. برای 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>

فایل زیر یک منطقه را در مثال Mountain View 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>