KML में भ्रमण करना

विषय सूची

परिचय

Google Earth 5.0 में नया, टूर करना भू-स्थानिक डेटा के माध्यम से नियंत्रित फ़्लाइट को सक्षम करता है, जिनमें ये शामिल हैं:

  • जगहों के बीच खास फ़्लाइट अवधियां
  • बिना रुके, आसानी से उड़ान भरने वाली जगहों की जानकारी
  • यात्रा के दौरान पहले से तय समय पर साउंड फ़ाइलें चलाना
  • यात्रा की सीमाओं के अंदर KML सुविधाओं के अस्थायी अपडेट

'Google Earth क्लाइंट' के व्यू-पॉइंट से जुड़ी यात्राओं के बारे में ज़्यादा जानकारी के लिए, Google Earth की उपयोग के लिए गाइड देखें.

Google के एक्सटेंशन का नेमस्पेस

यात्रा की जानकारी देने वाले KML एलिमेंट में, OGC KML स्टैंडर्ड में एक्सटेंशन के एक सेट में gx प्रीफ़िक्स का इस्तेमाल किया जाता है. इनका इस्तेमाल करने के लिए, आपको अपनी 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 फ़ाइल में कोई गड़बड़ी नहीं होनी चाहिए.

शब्दावली

टूर प्रिमिटिव: यह एलिमेंट के सेट में से एक है, जो किसी टूर में कार्रवाई को तय करता है. यात्रा प्रिमिटिव का एक उदाहरण FlyTo है, जिसे <gx:FlyTo> एलिमेंट और उसके चिल्ड्रन से परिभाषित किया गया है.

प्लेलिस्ट: टूर के बारे में बताने वाले बुनियादी जानकारी के लिए कंटेनर. प्लेलिस्ट को टाइमलाइन पर विज़ुअलाइज़ किया जा सकता है (ज़्यादा जानकारी के लिए, टूर टाइमलाइन देखें).

टूर की संरचना

यात्राएं, एक KML फ़ाइल में, खास तत्वों को रखकर तय की जाती हैं. KML फ़ाइल में, टूर के साथ-साथ कोई अन्य कानूनी KML एलिमेंट हो सकता है.

यह उदाहरण एक पूरा टूर और कई प्लेसमार्क वाला फ़ोल्डर दिखाता है. यह टूर, न्यूज़ीलैंड से साउथ आइलैंड से शुरू होता है और माउंट टैरानाकी से होते हुए उत्तर की ओर जाता है. साथ ही, इसमें सॉफ़्ट और बाउंस FlyToModes के साथ-साथ विवरण गुब्बारा खोलने की <gx:balloonVisibility> विधि, दोनों दिखाई जाती हैं. यात्रा तत्वों के बारे में नीचे विस्तार से बताया गया है.

complete_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, एनिमेशन अपडेट, और SoundCues. इनमें से कुछ प्राइमटाइम, एक के बाद एक चलाए जाते हैं और अगले गेम को शुरू करने के लिए, एक शुरुआती प्रोसेस के पूरा होने का इंतज़ार किया जाता है. अन्य डोमेन अन्य प्रिमिटिव के साथ चलाते हैं, ताकि एक साथ कई कार्रवाइयां हो सकें.

सीरीज़ में मौजूद प्रिमिटिव

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

ये प्रिमिट्री एक के बाद एक होती हैं. साथ ही, इन्हें किसी भी तरह की दूसरी चीज़ पर ले जाने से पहले, पूरी तरह से पूरा करना ज़रूरी होता है. इसका मतलब है कि एक बार में सिर्फ़ एक सीरीज़-टाइप का प्रिमिटिव (FlyTo, Wait या TourControl) हो सकता है. साथ ही, सीरीज़ के टाइप वाला प्रिमिटिव होने पर, कोई अतिरिक्त SoundCues या ऐनिमेटेड अपडेट शुरू नहीं किया जा सकता.

प्रिटिवल जो साथ-साथ होते हैं

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

ये प्रिमिटिव, प्लेलिस्ट में दिखने पर इस्तेमाल होते हैं. शुरू करने के बाद प्लेलिस्ट, अगले प्रिमिट्री पर चला जाता है. इसके लिए, आपको SoundCue या ऐनिमेट अपडेट के पूरा होने का इंतज़ार नहीं करना पड़ता. इसका मतलब कुछ इस तरह है:

  • प्लेलिस्ट में एक के बाद एक, कई साउंडक्यू और/या ऐनिमेशन अपडेट एक ही समय पर हो सकते हैं
  • जब किसी सीरीज़ के प्रकार के प्रिमिटिव चल रहे हों, तब SoundCue और/या ऐनिमेशन अपडेट किए जा सकते हैं. हालांकि, सीरीज़ के प्रकार वाले प्रिमिटिव के चलने के दौरान, उन्हें शुरू नहीं किया जा सकता

नीचे दिया गया डायग्राम इस व्यवहार को दिखाता है. इमेज के बारे में पूरी जानकारी पाने के लिए इमेज पर क्लिक करें. इसमें, वह KML कॉन्टेंट भी शामिल है जिससे प्लेलिस्ट में हर बुनियादी जानकारी दिखती है.


 

डायग्राम में दिखाया गया है कि हर FlyTo को पूरा होने में एक खास समय लगता है (इसके <gx:duration> एलिमेंट में बताया गया है). वह समय बीत जाने पर ही अगला प्रिमिमिट शुरू होता है.

वहीं दूसरी ओर, SoundCue एक साथ चलता है. मुख्य टाइमलाइन में अगला प्रिमियर ठीक उसी समय होता है, जब साउंड फ़ाइल चल रही होती है. साउंड फ़ाइल तब तक जारी रहती है, जब तक फ़ाइल खत्म नहीं हो जाती या सफ़र खत्म नहीं होता. अगर साउंड फ़ाइल चलने से पहले सैर बंद हो जाती है, तो साउंड फ़ाइल चलना बंद हो जाती है. साउंड फ़ाइलों को कितनी भी संख्या में चलाया जा सकता है. ऐसा इसलिए, क्योंकि हर साउंड फ़ाइल अपनी टाइमलाइन में लोड होती है.

ऐनिमेटेड अपडेट की तरह ही काम करते हैं. अगर किसी प्लेसमार्क के आइकॉन का साइज़ पांच सेकंड की अवधि में बढ़ने के लिए सेट किया गया है, तो ऐसा होता है कि मुख्य टाइमलाइन में अगले प्रिमिटिव दिखते हैं.

FlyTo और FlyToMode

यात्रा एक जगह से दूसरी जगह ले जाती है. हर यात्रा को <gx:FlyTo> एलिमेंट का इस्तेमाल करके तय किया जाता है. इसमें एक ऐब्सट्रैक्ट व्यू (<Camera> या <LookAt>) है, जो Google Earth में वीडियो देखने की जगह, कोण, और ऊंचाई की जानकारी देता है.

साथ ही, flyToMode के बारे में बताया जा सकता है, जो ब्राउज़र को बताता है कि इस पॉइंट पर कैसे जाना है. <gx:Tour> के आने से पहले, प्लेसमार्क से प्लेसमार्क पर जाकर 'यात्राएं' ब्राउज़र में चलाई जाती थीं - फ़्लाइट की गति (जो ब्राउज़र ने तय की थी) ब्राउज़र के प्लेसमार्क तक पहुंचने पर धीमी गति से खत्म होती थी, जिससे अगले प्लेसमार्क पर जाने से पहले शून्य वेलोसिटी खत्म हो जाती थी. <gx:flyToMode>bounce</gx:flyToMode> एलिमेंट प्रॉपर्टी का इस्तेमाल करके, यात्राओं में इस व्यवहार की जानकारी दी जा सकती है.

कोमल मोड FlyToMode, अंतरिक्ष से आसानी से और नियंत्रित फ़्लाइट की सुविधा देता है. बिंदुओं के बीच वेलोसिटी को <gx:duration> एलिमेंट को शामिल करके कंट्रोल किया जाता है, जो ब्राउज़र को मौजूदा पॉइंट से अगले तय व्यू तक जाने में लगने वाले समय को परिभाषित करता है. एक खंडित उड़ान आसान उड़ाने के लिए FlyTos की एक शृंखला से बनी है - धरती ब्राउज़र वेग और बिंदुओं के बीच एक घुमावदार पथ को इंटरपोलेट करता है जिससे हर स्थान-चिह्न KML में दर्ज समय पर सही रूप से पहुंचे. जब तक फ़्लाइट को नीचे दिए गए किसी भी इवेंट से नहीं बांटा जाता, तब तक bounce FlyToMode के उलट, वेलोसिटी कभी शून्य तक नहीं पहुंच जाती.

  • के अंत में,
  • बाउंस फ़्लायToमोड वाला बिंदु, या
  • इंतज़ार.

रोकें, ऐनिमेशन वाले अपडेट, और साउंड संकेत से उड़ान में रुकावट नहीं आती.

शुरुआती FlyTo

प्लेलिस्ट में मौजूद पहले <gx:FlyTo> को, Google Earth में दर्शकों को ध्यान में रखकर बनाया गया है. इसकी अवधि देखी जाती है, ताकि यात्रा शुरू होने पर पृथ्वी पर दर्शक की जगह के आधार पर, पहले बिंदु की वेलोसिटी अलग-अलग हो. हमारा सुझाव है कि इस शुरुआती FlyTo में, वीडियो देखने का अनुभव पांच सेकंड या उससे ज़्यादा का होना चाहिए. साथ ही, वीडियो देखने के बेहतरीन अनुभव के लिए, मोड बाउंस होना चाहिए.

अगर पहले FlyTo के लिए <gx:flyToMode> को स्मूद पर सेट किया जाता है, और इसके बाद अतिरिक्त स्मूद फ़्लाईटो होता है, तो दर्शक की शुरुआती स्थिति को स्मूद कर्व में एक पॉइंट के रूप में माना जाएगा और यह पहले और बाद के पॉइंट के बीच पाथ के कर्व को प्रभावित करेगा. इसका मतलब है कि हर दर्शक के लिए आसान TOTos की शुरुआती सीरीज़ अलग-अलग होंगी. यह इस बात पर निर्भर करेगा कि टूर शुरू होने के दौरान वे Earth क्लाइंट में क्या देख रहे थे. अगर शुरुआत की जगह पर आसानी से काम करने वाले FlyTo का इस्तेमाल करना है, तो पहले FlyTo के बाद, सफ़र के कोड में <gx:Wait> डाला जा सकता है. ऐसा करने पर, वह शुरुआती स्थिति को बाकी सफ़र से अलग कर देगा.

उदाहरण

यहां दिए गए उदाहरण, बाउंस और बिना किसी रुकावट के ToToModes के बीच का अंतर दिखाते हैं. हर यात्रा एक ही प्लेसमार्क पर विज़िट करती है, लेकिन अलग-अलग FlyToModes का इस्तेमाल करती है. Google Earth में सफ़र चलाने के लिए, हर कोड स्निपेट के ऊपर मौजूद लिंक पर क्लिक करें. इसके बाद, 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... -->

स्मूद_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 में दिया गया है.

रोकें से उपयोगकर्ता अपनी मौजूदा जगह पर रुक जाता है, जैसे कि उपयोगकर्ता ने रोकें बटन पर क्लिक किया हो और सभी प्रिमिटिव पर असर डाले. जब उपयोगकर्ता Google Earth में यात्रा नियंत्रण में चलाएं बटन चुनता है, तभी सफ़र शुरू किया जाता है.

इंतज़ार

यह एलिमेंट सिर्फ़ कैमरे पर असर डालता है. इससे पता चलता है कि कैमरे के चालू रहने के दौरान कितनी देर तक वीडियो रुका रहा. फ़िलहाल चल रही किसी भी साउंड फ़ाइल और/या ऐनिमेशन वाले अपडेट पर इसका कोई असर नहीं होगा. इस दौरान, आपको इंतज़ार करना होगा. इंतज़ार का इस्तेमाल साउंड फ़ाइलें या अपडेट पूरा होने के लिए किया जा सकता है, ताकि अगला FlyTo शुरू हो सके या सफ़र खत्म हो सके.

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

<gx:duration> एलिमेंट का इस्तेमाल करके, इंतज़ार का समय सेकंड में बताया जाता है. समय बीत जाने पर, प्लेलिस्ट में अगली खास कार्रवाई के साथ टूर जारी रहता है. इंतज़ार का सफ़र आसानी से पूरा हो जाता है. इससे, इंतज़ार करने से ठीक पहले किसी भी समय कैमरे की मूवमेंट कम हो जाती है. भले ही, FlyToMode पर ध्यान न दिया गया हो.

रोकना

उपयोगकर्ता के कंट्रोल से रोकने की जानकारी देने के लिए, <gx:TourControl> और इसके चाइल्ड एलिमेंट <gx:playMode> का इस्तेमाल किया जाता है. बाद वाले में रोकें का एक ही मान होता है. इस कार्रवाई को शुरू करना, Google Earth में रोकें बटन पर क्लिक करने वाले उपयोगकर्ता के समान है - उस समय यात्रा रुक जाती है और चलाएं बटन पर क्लिक होने तक रुकी रहती है. पॉज़ करने के दौरान, उपयोगकर्ता पृथ्वी के वातावरण में अपनी गति से आगे बढ़ सकता है. जब चलाएं पर क्लिक किया जाता है, तो वे टूर के उस पॉइंट पर वापस आ जाता है जिस पर रोक लगाई गई थी.

रोकें, आसान फ़्लाइट पाथ को नहीं तोड़ते हैं, जिससे यह पक्का किया जा सके कि रोकने की प्रोसेस में किसी भी तरफ़ से पॉइंट के बीच में वेलोसिटी नहीं है.

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

उदाहरण

इंतज़ार का एक उदाहरण नीचे दिया गया है. एक ध्वनि फ़ाइल तैयार की जाती है, जिसमें कम से कम दस सेकंड का शुरुआती भाषण होता है. साउंड क्यू के तुरंत बाद दस सेकंड का इंतज़ार किया जाता है, ताकि बोले गए वाक्य को पूरा होने तक दिया जा सके.

वैट_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>

इस उदाहरण में, सदस्यता को रोकने का तरीका बताया गया है. दर्शक को Earth में किसी खास जगह पर ले जाया जाता है. इसके बाद, सफ़र को रोक दिया जाता है. उपयोगकर्ता किसी भी समय, धरती के वातावरण में घूम सकता है. जब वे यात्रा फिर से शुरू करने के लिए तैयार हों, तो उन्हें यात्रा नियंत्रण से चलाएं चुनना होगा - 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:Wait>, कोई ऐसा अपडेट डालें जो ऐनिमेटेड अपडेट और पहले वाले टूर के बीच के समय में हो.

इसके अलावा, अगर किसी ऐनिमेशन के अपडेट की अवधि, पिछले <gx:FlyTo> या <gx:Wait> वाले एलिमेंट से ज़्यादा होती है, तो उसे काट दिया जाएगा. ऐनिमेशन वाले अपडेट को पूरा करने के लिए, <gx:duration> की सही वैल्यू बदली जा सकती है. इसके अलावा, प्लेलिस्ट के आखिर में <gx:Wait> का कोई और एलिमेंट भी डाला जा सकता है.

टाइमलाइन के बारे में ज़्यादा जानकारी के लिए, ऊपर मौजूद टूर टाइमलाइन पढ़ें.

उदाहरण

नीचे दिए गए कोड स्निपेट में किसी खास प्लेसमार्क आइकॉन के साइज़ में बदलाव दिखता है. यह बदलाव, 1.0 से लेकर 10.0 के स्केल पर दिखता है. यह बदलाव 6.5 सेकंड में होता है, इस दौरान आइकॉन धीरे-धीरे अपने शुरुआती साइज़ से बड़ा होता जाता है.

यात्रा के अंत में <gx:Wait> प्रिमिटिव को शामिल करने पर ध्यान दें. ऐनिमेशन वाले अपडेट अपने-आप में पूरे सफ़र को नहीं रोकते हैं - सिर्फ़ सीरीज़-टाइप टूर प्रिमिटिव यात्रा की अवधि बताते हैं. इस वजह से, 2.4 सेकंड का इंतज़ार किया गया. 4.1 सेकंड के FlyTo के साथ, इंतज़ार खत्म होने से पहले, अपडेट खत्म होने का समय पूरा हो जाता है.

ऐनिमेटेडअपडेट_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
  • AC

कोई अवधि तय नहीं की गई है.

साउंड फ़ाइलों को मुख्य समयावधि के साथ चलाया जाता है. इसका मतलब है कि साउंड फ़ाइल चलने के दौरान प्लेलिस्ट अगले टूर के शुरुआती वीडियो पर ले जाती है. ज़्यादा जानकारी के लिए, टूर टाइमलाइन पढ़ें. ध्यान दें कि ऐनिमेटेड अपडेट की तरह ही, साउंड फ़ाइलों में किसी तरह का टूर नहीं खोला जाता है - सिर्फ़ सीरीज़ के टाइप वाले प्रिमिटिव यात्रा की अवधि तय करते हैं. अगर साउंड फ़ाइल पूरी होने से पहले टूर खत्म हो जाता है, तो साउंड फ़ाइल चलना बंद हो जाती है.

कई साउंड फ़ाइलें चलाई जा रही हैं

कई ध्वनि फ़ाइलें एक समय में चलाई जा सकती हैं - Google Earth फ़ाइलों को एक साथ मिश्रित करेगा. यह उस स्थिति में उपयोगी होता है जहां यात्रा की शुरुआत में एक बैकग्राउंड संगीत फ़ाइल लोड की जाती है और पूरे टूर में खास बिंदुओं पर वॉइस-ओवर दिए जाते हैं.

अगला प्रिमिट्री चलाने से पहले, साउंड फ़ाइल को पूरा होने देना

अगर आप चाहते हैं कि साउंड फ़ाइल को चलाने के दौरान यात्रा का इंतज़ार किया जाए, तो <gx:SoundCue> प्रिमिटिव के तुरंत बाद <gx:Wait> एलिमेंट शामिल करें. <gx:Wait> सेकंड में तय करता है कि अगले प्रिमिटिव पर जाने से पहले सफ़र को कितनी देर इंतज़ार करना चाहिए.

यात्रा के खत्म होने के बाद साउंड फ़ाइल चलाई नहीं जा सकती. साउंड फ़ाइल के चलने के दौरान, यात्रा की लाइफ़ बढ़ाने के लिए इंतज़ार का इस्तेमाल किया जा सकता है.

उदाहरण

उदाहरण के तौर पर, यह टूर 15 सेकंड का है. इसके बारे में <gx:FlyTo> और <gx:Wait> की कुल अवधि से पता चलता है. पहली साउंड क्लिप 15 सेकंड तक काम करती है. यह पूरे टूर के दौरान चलती है. दूसरी फ़ाइल को पांच सेकंड में खोला जाता है. पहली फ़ाइल के साथ मिलाया जाता है और 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 की डिफ़ॉल्ट वैल्यू असाइन हो जाएगी. ऐसा होने पर, गुब्बारा तुरंत चालू या बंद हो जाएगा.

उदाहरण

गुब्बाराविज़िबिलिटी_टूरा उदाहरण.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>

पुराने तस्वीरों का संग्रह शामिल करना

अगर उपयोगकर्ता ने अपने क्लाइंट पर पुरानी तस्वीरों का संग्रह चालू किया हुआ है, तो आपका टूर उस तारीख के बारे में बता सकता है जिससे तस्वीरों को खींचना है. इमेज दिखाने की तारीख बताने के लिए, AbstractView में <gx:TimeStamp> एलिमेंट शामिल करें. ध्यान दें कि <gx:TimeStamp> का असर समय पर आधारित KML और सूरज की रोशनी पर भी पड़ता है.

आगे बताई गई सभी तस्वीरों का इस्तेमाल, आगे की सभी इमेजरी के लिए किया जाएगा.

उदाहरण

historicalimagery_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> एलिमेंट, आसान ToTos की सीरीज़ से बनाए गए कर्व को तोड़ देंगे. इन एलिमेंट के किसी भी ओर फ़्लायटू पॉइंट को एक लीनियर पाथ के साथ जोड़ा जाएगा.
  • <gx:TourControl> के साथ शुरू की गई रोक के दौरान, <gx:SoundCue> से लोड की गई साउंड फ़ाइलें लगातार चलती रहती हैं. जब यात्रा फिर से शुरू होती है, तब Google Earth फिर से ध्वनि फ़ाइल के उस बिंदु पर चला जाता है, जहां रोका गया था.
  • एब्सोल्यूट के अलावा ऊंचाई मोड का इस्तेमाल करने पर, कैमरा किसी बिंदु तक पहुंचने पर FlyTos के बीच का पाथ ऊपर या नीचे जा सकता है. ऐसा अपडेट किए गए भू–भाग डेटा को क्लाइंट में लोड करने के कारण होता है - जैसे-जैसे कैमरा किसी बिंदु के पास पहुंचता है, वैसे-वैसे उस बिंदु के बारे में जानकारी और विस्तृत होती जाती है. इससे, पॉइंट की ऊंचाई को अपडेट किया जा सकता है. इसके लिए, आपको पॉइंट में सुधार करना होगा.

    Google Earth में वीडियो रिकॉर्ड करने का तरीका, सभी FlyTos के लिए ऊंचाई के सटीक मोड की जानकारी देता है. अगर पथ में किए गए ये सुधार आपके सफ़र में रुकावट डाल रहे हैं, तो आपको ऊंचाई को भी सटीक मानों में बदलना चाहिए.