تور در KML

فهرست مطالب

معرفی

جدید در Google Earth 5.0، گشت و گذار، پروازهای کنترل شده را از طریق داده های مکانی، از جمله:

  • مدت زمان مشخص پرواز بین مکان ها
  • پرواز صاف از گذشته مکان ها، بدون توقف
  • پخش فایل های صوتی در زمان های از پیش تعریف شده در طول تور
  • به‌روزرسانی‌های موقت ویژگی‌های KML در محدوده تور

برای اطلاعات بیشتر درباره تورها از دیدگاه مشتری Google Earth، لطفاً به راهنمای کاربر Google Earth مراجعه کنید.

فضای نام برنامه افزودنی گوگل

عناصر KML که تورها را تعریف می کنند در مجموعه ای از برنامه های افزودنی استاندارد OGC KML با استفاده از پیشوند gx قرار دارند. برای استفاده از آنها، باید URI فضای نام صحیح را در عنصر باز <kml> در فایل KML خود وارد کنید:

<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">

عناصر مرتبط با تور در مجموعه برنامه افزودنی gx عبارتند از:

<gx:Tour> <gx:playMode>
<gx:Playlist> <gx:Wait>
<gx:Flyto> <gx:AnimatedUpdate>
<gx:flyToMode> <gx:SoundCue>
<gx:TourControl> <gx:duration>

گشت و گذار در Google Earth 5.0 پشتیبانی می شود، اما ممکن است در سایر مرورگرهای جغرافیایی پشتیبانی نشود. اگر مرورگر شما از برنامه‌های افزودنی خاصی پشتیبانی نمی‌کند، داده‌های آن پسوندها باید بی‌صدا نادیده گرفته شوند و بقیه فایل KML باید بدون خطا بارگیری شود.

واژه شناسی

tour primitive : یکی از مجموعه ای از عناصری که یک عمل را در یک تور تعریف می کند. یک مثال از یک تور اولیه یک FlyTo است که توسط عنصر <gx:FlyTo> و فرزندان آن تعریف شده است.

لیست پخش : محفظه ای برای فهرستی از تورهای اولیه که یک تور را تعریف می کنند. لیست پخش را می توان در طول یک جدول زمانی تجسم کرد (برای اطلاعات بیشتر به جدول زمانی تور مراجعه کنید).

ساختار یک تور

تورها با قرار دادن عناصر خاص به ترتیب در یک فایل KML ساخته می شوند. فایل KML می‌تواند حاوی هر عنصر قانونی KML دیگری همراه با تور باشد.

مثال زیر یک تور کامل و یک پوشه حاوی تعدادی مکان‌مارک را نشان می‌دهد. این تور قبل از پرواز به شمال از طریق کوه تاراناکی، از جزیره جنوبی نیوزیلند آغاز می‌شود، و flyToModes صاف و پرش و همچنین روش <gx:balloonVisibility> را برای باز کردن بالون توصیفی نشان می‌دهد. عناصر تور با جزئیات بیشتر در زیر توضیح داده شده است.

full_tour_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">

<Document>
  <name>A tour and some features</name>
  <open>1</open>

  <gx:Tour>
    <name>Play me!</name>
    <gx:Playlist>

      <gx:FlyTo>
        <gx:duration>5.0</gx:duration>
        <!-- bounce is the default flyToMode -->
        <Camera>
          <longitude>170.157</longitude>
          <latitude>-43.671</latitude>
          <altitude>9700</altitude>
          <heading>-6.333</heading>
          <tilt>33.5</tilt>
        </Camera>
      </gx:FlyTo>

      <gx:Wait>
        <gx:duration>1.0</gx:duration>
      </gx:Wait>

      <gx:FlyTo>
        <gx:duration>6.0</gx:duration>
        <Camera>
          <longitude>174.063</longitude>
          <latitude>-39.663</latitude>
          <altitude>18275</altitude>
          <heading>-4.921</heading>
          <tilt>65</tilt>
          <altitudeMode>absolute</altitudeMode>
        </Camera>
      </gx:FlyTo>

      <gx:FlyTo>
        <gx:duration>3.0</gx:duration>
        <gx:flyToMode>smooth</gx:flyToMode>
        <LookAt>
          <longitude>174.007</longitude>
          <latitude>-39.279</latitude>
          <altitude>0</altitude>
          <heading>112.817</heading>
          <tilt>68.065</tilt>
          <range>6811.884</range>
          <altitudeMode>relativeToGround</altitudeMode>
        </LookAt>
      </gx:FlyTo>

      <gx:FlyTo>
        <gx:duration>3.0</gx:duration>
        <gx:flyToMode>smooth</gx:flyToMode>
        <LookAt>
          <longitude>174.064</longitude>
          <latitude>-39.321</latitude>
          <altitude>0</altitude>
          <heading>-48.463</heading>
          <tilt>67.946</tilt>
          <range>4202.579</range>
          <altitudeMode>relativeToGround</altitudeMode>
        </LookAt>
       </gx:FlyTo>

      <gx:FlyTo>
        <gx:duration>5.0</gx:duration>
        <LookAt>
          <longitude>175.365</longitude>
          <latitude>-36.523</latitude>
          <altitude>0</altitude>
          <heading>-95</heading>
          <tilt>65</tilt>
          <range>2500</range>
          <altitudeMode>relativeToGround</altitudeMode>
        </LookAt>
      </gx:FlyTo>

      <gx:AnimatedUpdate>
        <gx:duration>0.0</gx:duration>
        <Update>
          <targetHref/>
          <Change>
            <Placemark targetId="pin2">
              <gx:balloonVisibility>1</gx:balloonVisibility>
            </Placemark>
          </Change>
        </Update>
      </gx:AnimatedUpdate>

      <gx:Wait>
        <gx:duration>6.0</gx:duration>
      </gx:Wait>

    </gx:Playlist>
  </gx:Tour>

  <Folder>
    <name>Points and polygons</name>

    <Style id="pushpin">
      <IconStyle>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
        </Icon>
      </IconStyle>
    </Style>

    <Placemark id="mountainpin1">
      <name>New Zealand's Southern Alps</name>
      <styleUrl>#pushpin</styleUrl>
      <Point>
        <coordinates>170.144,-43.605,0</coordinates>
      </Point>
    </Placemark>

    <Placemark id="pin2">
      <name>The End</name>
      <description>
        Learn more at http://developers.google.com/kml/documentation
      </description>
      <styleUrl>pushpin</styleUrl>
      <Point>
        <coordinates>175.370,-36.526,0</coordinates>
      </Point>
    </Placemark>

    <Placemark id="polygon1">
      <name>Polygon</name>
      <Polygon>
        <tessellate>1</tessellate>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>
              175.365,-36.522,0
              175.366,-36.530,0
              175.369,-36.529,0
              175.366,-36.521,0
              175.365,-36.522,0
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>

  </Folder>
</Document>
</kml>

جدول زمانی تور

تورها از یک سری تورهای اولیه تشکیل شده اند - FlyTos، Waits، TourControls، AnimatedUpdates و SoundCues. برخی از این بازی‌های ابتدایی یکی پس از دیگری پخش می‌شوند و منتظر می‌مانند تا یک نسخه اولیه قبل از شروع نسخه بعدی کامل شود. برخی دیگر به موازات سایر بدوی ها اجرا می شوند، به طوری که چندین عمل می توانند به طور همزمان انجام شوند.

بدوی که به صورت سری اتفاق می افتد

  • <gx:FlyTo>
  • <gx:Wait>
  • <gx:TourControl>

این موارد اولیه یکی پس از دیگری اتفاق می‌افتند، و باید قبل از اینکه لیست پخش به هر عنصر دیگری از هر نوع منتقل شود، کاملاً کامل شوند. این به این معنی است که تنها یک سری اولیه (FlyTo، Wait یا TourControl) می‌تواند در یک زمان انجام شود، و هیچ SoundCues یا AnimatedUpdates اضافی نمی‌توان در زمانی که یک سری اولیه در حال انجام است شروع کرد.

بدوی هایی که به صورت موازی رخ می دهند

  • <gx:AnimatedUpdate>
  • <gx:SoundCue>

این موارد ابتدایی زمانی که در لیست پخش ظاهر می شوند نشان داده می شوند. پس از شروع آنها، لیست پخش بلافاصله به مرحله اولیه بعدی می رود، بدون اینکه منتظر تکمیل SoundCue یا AnimatedUpdate باشید. این بدان معنی است که:

  • هر تعداد SoundCues و/یا AnimatedUpdates می‌تواند به طور همزمان انجام شود، و آنها را یکی پس از دیگری در لیست پخش قرار دهید.
  • SoundCues و/یا AnimatedUpdates می‌توانند در حین پخش سریال‌های اولیه انجام شوند (اگرچه نمی‌توان آنها را در حین پخش سریال‌های ابتدایی شروع کرد)

نمودار زیر این رفتار را نشان می دهد. برای مشاهده جزئیات بیشتر، از جمله محتوای KML که هر یک از موارد اولیه را در لیست پخش تعریف می کند، روی تصویر کلیک کنید .


نمودار نشان می دهد که هر FlyTo زمان مشخصی (که در عنصر <gx:duration> آن مشخص شده است) طول می کشد تا تکمیل شود. تنها یک بار که آن زمان سپری شود، بدوی بعدی شروع می شود.

از سوی دیگر، SoundCue به صورت موازی انجام می شود. ابتدایی بعدی در جدول زمانی اصلی بلافاصله و همزمان با شروع پخش فایل صوتی رخ می دهد. فایل صوتی تا رسیدن به انتهای فایل یا پایان تور، هر کدام که زودتر اتفاق بیفتد، ادامه می یابد. اگر تور قبل از اتمام فایل صوتی به پایان برسد، پخش فایل صوتی متوقف می شود. هر تعداد فایل صوتی را می توان در هر زمان پخش کرد، زیرا هر کدام در جدول زمانی خاص خود بارگذاری می شوند.

به روز رسانی های متحرک نیز به همین صورت عمل می کنند. اگر اندازه نماد مکان‌مارک در مدت 5 ثانیه افزایش یابد، این کار در حالی انجام می‌شود که موارد اولیه بعدی در خط زمانی اصلی انجام می‌شوند.

FlyTo و flyToMode

تورها از مکانی به مکان دیگر حرکت می کنند، که هر کدام با استفاده از عنصر <gx:FlyTo> مشخص می شوند. این شامل یک AbstractView ( <Camera> یا <LookAt> ) است که مکان مشاهده، زاویه و ارتفاع را در Google Earth تعریف می کند.

علاوه بر این، flyToMode را می توان مشخص کرد که به مرورگر می گوید چگونه به نقطه نزدیک شود. قبل از معرفی <gx:Tour> ، "تورها" در مرورگر با پرش از یک مکان به نشانک دیگر در مرورگر پخش می‌شد - سرعت پرواز (که توسط مرورگر تعریف شده بود) با نزدیک شدن مرورگر به مکان‌نما کاهش می‌یابد و با سرعت صفر به پایان می‌رسد. قبل از ادامه به مکان‌نمای بعدی. این رفتار همچنان می تواند در تورها با استفاده از ویژگی عنصر <gx:flyToMode>bounce</gx:flyToMode> مشخص شود.

flyToMode صاف اجازه می دهد تا پرواز نرم و کنترل شده در فضا را انجام دهید. سرعت بین نقاط با گنجاندن عنصر <gx:duration> کنترل می‌شود، که زمان سفر مرورگر از نقطه فعلی به نمای تعریف‌شده بعدی را مشخص می‌کند. یک پرواز بدون وقفه از یک سری FlyTos با flyToModes صاف تشکیل شده است - مرورگر Earth سرعت و یک مسیر منحنی بین نقاط را درون یابی می کند تا به هر مکان دقیقاً در زمان مشخص شده در KML برسد. برخلاف bounce flyToMode، سرعت هرگز به صفر نمی رسد تا زمانی که پرواز با هر یک از رویدادهای زیر شکسته شود:

  • پایان تور،
  • یک نقطه با جهش flyToMode، یا
  • در انتظار.

مکث‌ها ، به‌روزرسانی‌های متحرک ، و نشانه‌های صوتی پرواز را از بین نمی‌برند.

FlyTo اولیه

اولین <gx:FlyTo> موجود در فهرست پخش از موقعیت فعلی بیننده در Google Earth به پرواز در می آید. مدت زمان مشاهده می شود، به طوری که سرعت تا اولین نقطه به طور گسترده ای متفاوت خواهد بود، بسته به اینکه بیننده در کجای زمین در هنگام شروع تور قرار دارد. توصیه می شود که این FlyTo اولیه دارای مدت زمان 5 ثانیه یا بیشتر باشد و برای بهترین تجربه مشاهده، حالت پرش داشته باشد.

اگر <gx:flyToMode> برای اولین FlyTo روی هموار تنظیم شود، و به دنبال آن FlyTos صاف اضافی قرار گیرد، موقعیت اولیه بیننده به عنوان نقطه ای در منحنی صاف در نظر گرفته می شود و بر منحنی مسیر بین اولین و نکات بعدی این بدان معنی است که سری اولیه FlyTos صاف برای هر بیننده متفاوت خواهد بود، بسته به آنچه که در هنگام شروع تور در مشتری Earth مشاهده می کردند. اگر FlyTo صاف تا نقطه اولیه همچنان مورد نظر است، یک <gx:Wait> را می توان پس از اولین FlyTo در کد تور درج کرد. این موقعیت اولیه را از بقیه تور جدا می کند.

مثال ها

مثال های زیر تفاوت بین bounce و smooth flyToModes را نشان می دهد. هر تور از مکان‌های یکسانی بازدید می‌کند، اما از flyToModes متفاوتی استفاده می‌کند. برای پخش تورها در Google Earth، روی پیوندهای بالای هر قطعه کد کلیک کنید، سپس روی نام تور از پانل Places خود در Google Earth دوبار کلیک کنید.

bounce_example.kml

<gx:FlyTo>
  <gx:duration>4.0</gx:duration>
  <!-- bounce is the default flyToMode -->
  <LookAt>
    <longitude>-121.303179</longitude>
    <latitude>45.993041</latitude>
    <altitude>0</altitude>
    <heading>-27.923387</heading>
    <tilt>71.600075</tilt>
    <range>22570.546801</range>
    <altitudeMode>relativeToGround</altitudeMode>
  </LookAt>
</gx:FlyTo>

<!-- ...snip... -->

smooth_example.kml

<gx:FlyTo>
  <gx:duration>4.0</gx:duration>
  <gx:flyToMode>smooth</gx:flyToMode>
  <LookAt>
    <longitude>-121.303179</longitude>
    <latitude>45.993041</latitude>
    <altitude>0</altitude>
    <heading>-27.923387</heading>
    <tilt>71.600075</tilt>
    <range>22570.546801</range>
    <altitudeMode>relativeToGround</altitudeMode>
  </LookAt>
</gx:FlyTo>

<!-- ...snip... -->

انتظار و مکث

یک انتظار حرکت در فضا را در یک تور متوقف می کند، اما اجازه می دهد تا فایل های صوتی و به روز رسانی های متحرک ادامه پیدا کنند. مدت زمان انتظار در KML مشخص شده است.

مکث ، تور را در مکان فعلی خود متوقف می کند، گویی کاربر روی دکمه Pause کلیک کرده است، و همه موارد اولیه را تحت تأثیر قرار می دهد. این تور فقط زمانی از سر گرفته می شود که کاربر دکمه Play را در کنترل تور در Google Earth انتخاب کند.

منتظر می ماند

این عنصر فقط روی دوربین تاثیر می گذارد. مدت زمان ثابت ماندن دوربین را مشخص می کند. فایل‌های صوتی در حال پخش و/یا به‌روزرسانی‌های متحرک تحت تأثیر قرار نمی‌گیرند و در انتظار ادامه می‌یابند. از Waits می توان برای دادن زمان کامل به فایل های صوتی یا به روز رسانی، قبل از شروع FlyTo بعدی یا قبل از پایان تور استفاده کرد.

<gx:Wait>
    <gx:duration>10.0</gx:duration>   <!-- wait time in seconds -->
</gx:Wait>

مدت زمان انتظار با استفاده از عنصر <gx:duration> بر حسب ثانیه مشخص می شود. پس از سپری شدن زمان، گشت و گذار با اقدام مشخص شده بعدی در لیست پخش ادامه می یابد. یک انتظار یک مسیر پروازی صاف را می شکند، به طوری که حرکت دوربین در هر نقطه ای که بلافاصله قبل از انتظار، بدون توجه به flyToMode آن، به سرعت صفر می رسد.

مکث می کند

مکث‌های کنترل‌شده توسط کاربر با استفاده از <gx:TourControl> و عنصر فرزند آن، <gx:playMode> . مورد دوم دارای یک مقدار مجاز واحد مکث است. فراخوانی این عمل شبیه به کلیک کاربر روی دکمه مکث در Google Earth است - تور در آن نقطه مکث می‌کند و تا زمانی که دکمه Play کلیک نشود، متوقف می‌شود. در طول مکث، کاربر می تواند به دلخواه خود در محیط زمین حرکت کند. وقتی روی Play کلیک می‌شود، به نقطه‌ای در تور بازمی‌گردند که در آن مکث تنظیم شده است.

مکث ها مسیرهای پرواز صاف را نمی شکنند، به طوری که سرعت بین نقاط در دو طرف مکث توسط مرورگر محاسبه می شود که گویی مکث وجود ندارد.

<gx:TourControl>
    <gx:playMode>pause</gx:playMode>
</gx:TourControl>

مثال ها

نمونه ای از انتظار در زیر آمده است. یک فایل صوتی حاوی ده ثانیه سخنرانی مقدماتی است. یک انتظار ده ثانیه ای بلافاصله بعد از نشانه صوتی وارد می شود و از انجام FlyTo زیر تا زمانی که سخنرانی کامل شود جلوگیری می کند.

wait_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">   

<gx:Tour>
  <gx:Playlist>

    <gx:SoundCue>
      <href>
        http://dev.keyhole.com/codesite/cntowerfacts.mp3
      </href>   <!-- this file is ten seconds long -->
    </gx:SoundCue>

    <gx:Wait>
      <gx:duration>10</gx:duration>
    </gx:Wait>

    <gx:FlyTo>
      <gx:duration>5</gx:duration>
      <gx:flyToMode>bounce</gx:flyToMode>
      <LookAt>
        <longitude>-79.387</longitude>
<latitude>43.643</latitude>
<altitude>0</altitude> <heading>-172.3</heading> <tilt>10</tilt> <range>1200</range> <altitudeMode>relativeToGround</altitudeMode>
</LookAt> </gx:FlyTo> </gx:Playlist> </gx:Tour> </kml>

مثال زیر استفاده از مکث را نشان می دهد. بیننده به مکان خاصی در زمین پرواز می‌کند، سپس تور متوقف می‌شود. کاربر می تواند برای هر مدت زمانی در محیط زمین حرکت کند. وقتی آنها آماده از سرگیری تور هستند، باید Play را از کنترل‌های تور انتخاب کنند - Google Earth به آخرین مکان تور بازمی‌گردد و به بازی ادامه می‌دهد.

pause_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">  

<gx:Tour>
  <gx:Playlist>

    <gx:FlyTo>
<gx:duration>5</gx:duration>
<gx:flyToMode>bounce</gx:flyToMode>
<LookAt>
<longitude>-79.387</longitude>
<latitude>43.643</latitude>
<altitude>0</altitude>
<heading>-172.3</heading>
<tilt>10</tilt>
<range>1200</range>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt>
</gx:FlyTo> <gx:TourControl> <gx:playMode>pause</gx:playMode> </gx:TourControl> <gx:SoundCue> <href> http://dev.keyhole.com/codesite/cntowerfacts.mp3 </href> <!-- this file is ten seconds long --> </gx:SoundCue> <gx:Wait> <gx:duration>10.0</gx:duration> </gx:Wait> </gx:Playlist> </gx:Tour> </kml>

به روز رسانی ها

ویژگی‌های KML در محیط زمین را می‌توان در طول یک تور تغییر داد، تغییر داد یا ایجاد کرد، از جمله اندازه، سبک و مکان مکان‌ها، افزودن پوشش‌های زمین، هندسه و موارد دیگر. برای اطلاعات بیشتر درباره به‌روزرسانی KML، بخش به‌روزرسانی‌ها را در راهنمای برنامه‌نویس بخوانید.

به‌روزرسانی‌های KML می‌توانند در طول یک تور انجام شوند و با استفاده از عنصر <gx:AnimatedUpdate> فعال می‌شوند. رفتار به‌روزرسانی در یک تور با رفتار به‌روزرسانی در NetworkLink از این نظر متفاوت است:

  • به‌روزرسانی‌های KML هنگام خروج از تور معکوس می‌شوند و
  • هنگامی که وضعیت فعلی ذخیره می شود، به روز رسانی های KML شامل نمی شود.

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

به غیر از تفاوت‌های ذکر شده در بالا، به‌روزرسانی در عنصر <gx:AnimatedUpdate> همانند به‌روزرسانی در <NetworkLinkControl> عمل می‌کند. می توان از آن برای تغییر اندازه، مکان و ظاهر نشانگر استفاده کرد. روکش های زمینی یا مدل ها را اضافه کنید. و با استفاده از عنصر <gx:balloonVisibility> ، بالون های اطلاعات را تغییر دهید.

<gx:AnimatedUpdate> و جدول زمانی تور

به‌روزرسانی‌های متحرک به موازات جدول زمانی اجرا می‌شوند - یعنی، در حالی که به‌روزرسانی متحرک در حال انجام است، تور مستقیماً به تور اولیه بعدی در لیست پخش ادامه می‌یابد. <gx:duration> انجام به‌روزرسانی را کنترل می‌کند، اما تور اولیه بعدی را به تأخیر نمی‌اندازد.

برای اینکه اجازه دهید یک به‌روزرسانی متحرک قبل از انجام اقدام بعدی کامل شود، یک <gx:Wait> را با مدت زمان برابر با مدت به‌روزرسانی، بین به‌روزرسانی متحرک و تور اولیه زیر وارد کنید.

علاوه بر این، اگر مدت زمان آن از آخرین عنصر <gx:FlyTo> یا <gx:Wait> بیشتر شود، یک به‌روزرسانی متحرک کوتاه می‌شود. می‌توانید مقادیر مناسب <gx:duration> را تغییر دهید یا یک عنصر <gx:Wait> اضافی را در انتهای لیست پخش وارد کنید تا زمان تکمیل به‌روزرسانی متحرک را بدهید.

برای اطلاعات بیشتر در مورد جدول زمانی، جدول زمانی تور را در بالا بخوانید.

مثال

قطعه کد زیر تغییر در اندازه نماد مکان مارک خاص را از مقیاس 1.0 به مقیاس 10.0 نشان می دهد. این تغییر در مدت 6.5 ثانیه انجام می شود و در طی آن نماد به تدریج از اندازه اولیه به اندازه نهایی خود گسترش می یابد.

به گنجاندن یک <gx:Wait> ابتدایی در پایان تور توجه کنید. به‌روزرسانی‌های متحرک به خودی خود یک تور را باز نمی‌کنند - فقط تورهای اولیه سری‌ای طول یک تور را تعیین می‌کنند. به همین دلیل، انتظار 2.4 ثانیه درج شد. همراه با FlyTo 4.1 ثانیه ای، Wait زمان به روز رسانی را می دهد تا قبل از پایان تور تکمیل شود.

animatedupdate_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"> <Document> <name>gx:AnimatedUpdate example</name> <open>1</open> <Style id="style"> <IconStyle id="iconstyle"> <scale>1.0</scale> </IconStyle> </Style> <Placemark id="mountainpin1"> <name>New Zealand's Southern Alps</name> <styleUrl>#style</styleUrl> <Point> <coordinates>170.144,-43.605,0</coordinates> </Point> </Placemark> <gx:Tour> <name>Play me!</name> <gx:Playlist> <!-- The order and duration of TourPrimitives is important; in this example, the AnimatedUpdate needs 6.5 seconds to complete. The FlyTo provides 4.1, and the Wait 2.4, giving the update time to complete before the Tour ends. AnimatedUpdates don't hold Tours open, but FlyTos and Waits do. For more information, refer to: http://developers.google.com/kml/documentation/touring.html#tourtimelines --> <gx:AnimatedUpdate> <gx:duration>6.5</gx:duration> <Update> <targetHref></targetHref> <Change> <IconStyle targetId="iconstyle"> <scale>10.0</scale> </IconStyle> </Change> </Update> </gx:AnimatedUpdate> <gx:FlyTo> <gx:duration>4.1</gx:duration> <Camera> <longitude>170.157</longitude> <latitude>-43.671</latitude> <altitude>9700</altitude> <heading>-6.333</heading> <tilt>33.5</tilt> <roll>0</roll> </Camera> </gx:FlyTo> <!-- wait for the AnimatedUpdate to complete --> <gx:Wait> <gx:duration>2.4</gx:duration> </gx:Wait> </gx:Playlist> </gx:Tour> </Document> </kml>

افزودن صدا

فایل های صوتی را می توان با استفاده از عنصر <gx:SoundCue> در تورها گنجاند و در هر نقطه پخش کرد. عنصر فرزند <href> فایل صوتی را مشخص می کند. فرمت های پشتیبانی شده به کدک های نصب شده روی سیستم شما بستگی دارد و شامل موارد زیر است، اما محدود به آنها نیست:

  • mp3
  • aac

مدت زمان مشخص نشده است.

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

پخش چندین فایل صوتی

بسیاری از فایل های صوتی می توانند در هر زمان پخش شوند - Google Earth فایل ها را با هم ترکیب می کند. این در مواردی مفید است که یک فایل موسیقی پس‌زمینه در ابتدای تور بارگذاری می‌شود و صداگذاری در نقاط خاصی در طول تور ارائه می‌شود.

اجازه دادن به فایل صوتی برای تکمیل قبل از پخش اولیه بعدی

اگر می‌خواهید هنگام پخش یک فایل صوتی، تور منتظر بماند، یک عنصر <gx:Wait> را بلافاصله بعد از <gx:SoundCue> اولیه اضافه کنید. <gx:Wait> در عرض چند ثانیه مدت زمانی را مشخص می کند که تور باید قبل از ادامه به مرحله اولیه بعدی منتظر بماند.

یک فایل صوتی نمی تواند پس از پایان یک تور به پخش ادامه دهد. در حالی که پخش فایل صوتی به پایان می رسد، می توان از انتظار برای افزایش عمر یک تور استفاده کرد.

مثال

تور نمونه زیر 15 ثانیه طول می کشد که با ترکیب مدت زمان <gx:FlyTo> و <gx:Wait> تعریف شده است. اولین کلیپ صوتی 15 ثانیه طول می کشد و در تمام طول تور پخش می شود. فایل دوم به مدت 5 ثانیه در می آید، با فایل اول ترکیب می شود و به مدت 10 ثانیه پخش می شود. <gx:Wait> برای افزایش طول تور لازم است تا کلیپ های صوتی زمان کافی برای تکمیل داشته باشند.

soundcue_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">

<gx:Tour>
  <gx:Playlist>
 
    <gx:SoundCue>
      <href>
        http://dev.keyhole.com/codesite/AJsBlues.mp3
      </href>    <!-- 15 second audio clip -->
    </gx:SoundCue>
 
    <gx:FlyTo>
      <gx:duration>5</gx:duration>
      <gx:flyToMode>bounce</gx:flyToMode>
      <LookAt>
        <longitude>-79.387</longitude>
<latitude>43.643</latitude>
<altitude>0</altitude>
<range>1200</range>
<tilt>10</tilt>
<heading>-172.3</heading>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt> </gx:FlyTo> <gx:SoundCue> <href> http://dev.keyhole.com/codesite/cntowerfacts.mp3 </href> <!-- 10 second audio clip --> </gx:SoundCue> <gx:Wait> <gx:duration>10</gx:duration> <!-- continues the tour for 10 seconds --> </gx:Wait> <!-- while audio clip plays --> </gx:Playlist> </gx:Tour> </kml>

تغییر وضعیت بالن های توضیحات

با استفاده از <gx:balloonVisibility> در یک به‌روزرسانی متحرک، می‌توان بالون توصیف مکان‌مارک را در طول یک تور باز یا بسته کرد. تغییرات دید بالون در پایان هر مدت زمان مشخصی ایجاد می شود - آنها در مدت زمان مشخص شده متحرک نمی شوند. حذف یک مقدار <gx:duration> مقدار پیش‌فرض 0.0 را اختصاص می‌دهد (بالون بلافاصله باز یا بسته می‌شود).

مثال

balloonvisibility_tourexample.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">
  
  <Document>
    <name>balloonVisibility Example</name>
    <open>1</open>

    <gx:Tour>
      <name>Play me</name>
      <gx:Playlist>
 
        <gx:FlyTo>
          <gx:duration>5.0</gx:duration>
          <!-- bounce is the default flyToMode -->
          <LookAt>
            <longitude>-119.748584</longitude>
            <latitude>33.736266</latitude>
            <altitude>0</altitude>
            <heading>-9.295926</heading>
            <tilt>84.0957450</tilt>
            <range>4469.850414</range>
            <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
          </LookAt>
        </gx:FlyTo>

        <gx:AnimatedUpdate>
          <!-- the default duration is 0.0 -->
          <Update>
            <targetHref/>
            <Change>
              <Placemark targetId="underwater1">
                <gx:balloonVisibility>1</gx:balloonVisibility>
              </Placemark>
            </Change>
          </Update>
        </gx:AnimatedUpdate>

        <gx:Wait>
          <gx:duration>4.0</gx:duration>
        </gx:Wait>

        <gx:AnimatedUpdate>
          <Update>
            <targetHref/>
            <Change>
              <Placemark targetId="underwater1">
                <gx:balloonVisibility>0</gx:balloonVisibility>
              </Placemark>
            </Change>
          </Update>
        </gx:AnimatedUpdate>

        <gx:FlyTo>
          <gx:duration>3</gx:duration>
          <gx:flyToMode>smooth</gx:flyToMode>
          <LookAt>
            <longitude>-119.782630</longitude>
            <latitude>33.862855</latitude>
            <altitude>0</altitude>
            <heading>-19.314858</heading>
            <tilt>84.117317</tilt>
            <range>6792.665540</range>
            <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
          </LookAt>
        </gx:FlyTo>

        <gx:AnimatedUpdate>
          <Update>
            <targetHref/>
            <Change>
              <Placemark targetId="underwater2">
                <gx:balloonVisibility>1</gx:balloonVisibility>
              </Placemark>
            </Change>
          </Update>
        </gx:AnimatedUpdate>

        <gx:Wait>
          <gx:duration>4.0</gx:duration>
        </gx:Wait>

        <gx:AnimatedUpdate>
          <Update>
            <targetHref/>
            <Change>
              <Placemark targetId="underwater2">
                <gx:balloonVisibility>0</gx:balloonVisibility>
              </Placemark>
            </Change>
          </Update>
        </gx:AnimatedUpdate>

        <gx:FlyTo>
          <gx:duration>3</gx:duration>
          <gx:flyToMode>smooth</gx:flyToMode>
          <LookAt>
            <longitude>-119.849578</longitude>
            <latitude>33.968515</latitude>
            <altitude>0</altitude>
            <heading>-173.948935</heading>
            <tilt>23.063392</tilt>
            <range>3733.666023</range>
            <altitudeMode>relativeToGround</altitudeMode>
          </LookAt>
        </gx:FlyTo>

        <gx:AnimatedUpdate>
          <Update>
            <targetHref/>
            <Change>
              <Placemark targetId="onland">
                <gx:balloonVisibility>1</gx:balloonVisibility>
              </Placemark>
            </Change>
          </Update>
        </gx:AnimatedUpdate>

        <gx:Wait>
          <gx:duration>4.0</gx:duration>
        </gx:Wait>

      </gx:Playlist>
    </gx:Tour>

    <Placemark id="underwater1">
      <name>Underwater off the California Coast</name>
      <description>
        The tour begins near the Santa Cruz Canyon, 
        off the coast of California, USA.
      </description>
      <Point>
        <gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
        <coordinates>-119.749531,33.715059,0</coordinates>
      </Point>
    </Placemark>

    <Placemark id="underwater2">
      <name>Still swimming...</name>
      <description>We're about to leave the ocean, and visit the coast...</description>
      <Point>
        <gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
        <coordinates>-119.779550,33.829268,0</coordinates>
      </Point>
    </Placemark>

    <Placemark id="onland">
      <name>The end</name>
      <description>
        <![CDATA[The end of our simple tour. 
        Use <gx:balloonVisibility>1</gx:balloonVisibility> 
        to show description balloons.]]>
      </description>
      <Point>
        <coordinates>-119.849578,33.968515,0</coordinates>
      </Point>
    </Placemark>

  </Document>
</kml>

ترکیب تصاویر تاریخی

اگر کاربر تصاویر تاریخی را در مشتری خود فعال کرده باشد، تور شما می‌تواند تاریخی را که از آن تصاویر را می‌گیرد، مشخص کند. برای تعیین تاریخ نمایش تصویر، عنصر <gx:TimeStamp> را در AbstractView قرار دهید. توجه داشته باشید که <gx:TimeStamp> بر KML مبتنی بر زمان و نور خورشید نیز تأثیر می‌گذارد.

آخرین تاریخ مشخص شده برای همه تصاویر بعدی استفاده خواهد شد.

مثال

historyimagery_example.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">

<gx:Tour>
  <name>Small town over time</name>
  <gx:Playlist>
    <gx:FlyTo>
      <gx:duration>5.0</gx:duration>
      <Camera>
        <gx:TimeStamp>
          <when>1990-08-04</when>
        </gx:TimeStamp>
        <longitude>-121.991</longitude>
        <latitude>47.857</latitude>
        <altitude>7000</altitude>
        <altitudeMode>absolute</altitudeMode>
      </Camera>
    </gx:FlyTo>

    <gx:FlyTo>
      <gx:duration>3.0</gx:duration>
      <gx:flyToMode>smooth</gx:flyToMode>
      <Camera>
        <gx:TimeStamp>
          <when>2009</when>
        </gx:TimeStamp>
        <longitude>-121.991</longitude>
        <latitude>47.857</latitude>
        <altitude>7000</altitude>
        <altitudeMode>absolute</altitudeMode>
      </Camera>
    </gx:FlyTo>

  </gx:Playlist>
</gx:Tour>
</kml>

مشکلات شناخته شده

مشتری Google Earth در حال حاضر به طور کامل با KML تور مطابقت ندارد. برخی از مسائل شناخته شده در زیر ذکر شده است. ممکن است این موارد در نسخه های آینده برطرف شوند.

  • عناصر <gx:AnimatedUpdate> و <gx:TourControl> منحنی ایجاد شده توسط یک سری FlyTos صاف را خواهند شکست. نقاط FlyTo در دو طرف این عناصر با یک مسیر خطی به هم متصل خواهند شد.
  • فایل های صوتی بارگیری شده با <gx:SoundCue> در طول مکثی که توسط <gx:TourControl> آغاز شده است، به پخش ادامه می دهند. هنگامی که تور از سر گرفته می شود، Google Earth به نقطه ای در فایل صوتی که در آن مکث راه اندازی شده است، برمی گردد.
  • هنگام استفاده از حالت‌های ارتفاعی غیر از حالت مطلق، مسیر بین FlyTos ممکن است با نزدیک شدن دوربین به نقطه‌ای به بالا یا پایین بپرد. این به دلیل بارگیری داده های زمین به روز شده در مشتری است - با نزدیک شدن دوربین به نقطه ای، اطلاعات مربوط به آن نقطه بیشتر و دقیق تر می شود. در نتیجه، ارتفاع زمین در زیر نقطه ممکن است به روز شود، که نیاز به اصلاح در مسیر به آن نقطه دارد.

    به همین دلیل مکانیسم ضبط در Google Earth حالت های ارتفاع مطلق را برای همه FlyTos مشخص می کند. همچنین اگر این اصلاحات مسیر با تور شما تداخل دارند، باید ارتفاعات را به مقادیر مطلق تبدیل کنید.