KML-এ ভ্রমণ

সুচিপত্র

ভূমিকা

Google Earth 5.0-এ নতুন, ভ্রমণ ভূ-স্থানিক ডেটার মাধ্যমে নিয়ন্ত্রিত ফ্লাইটগুলিকে সক্ষম করে, যার মধ্যে রয়েছে:

  • অবস্থানের মধ্যে নির্দিষ্ট ফ্লাইটের সময়কাল
  • মসৃণ ফ্লাইট অতীত অবস্থান, থামানো ছাড়া
  • সফরের সময় পূর্বনির্ধারিত সময়ে সাউন্ড ফাইল বাজানো
  • সফরের সীমানার মধ্যে KML বৈশিষ্ট্যের অস্থায়ী আপডেট

Google আর্থ ক্লায়েন্ট পয়েন্ট-অফ-ভিউ থেকে ট্যুর সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে Google আর্থ ব্যবহারকারী নির্দেশিকা পড়ুন।

Google এর এক্সটেনশন নেমস্পেস

যে KML উপাদানগুলি ট্যুরগুলিকে সংজ্ঞায়িত করে সেগুলি Gx উপসর্গ ব্যবহার করে OGC KML স্ট্যান্ডার্ডের এক্সটেনশনগুলির একটি সেটের মধ্যে থাকে৷ সেগুলি ব্যবহার করার জন্য, আপনাকে আপনার KML ফাইলের খোলার <kml> উপাদানে সঠিক নামস্থান URI অন্তর্ভুক্ত করতে হবে:

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

জিএক্স এক্সটেনশন সেটের ট্যুরিং-সম্পর্কিত উপাদানগুলির মধ্যে রয়েছে:

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

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

পরিভাষা

ট্যুর আদিম : উপাদানগুলির একটি সেট যা একটি সফরে একটি ক্রিয়াকে সংজ্ঞায়িত করে। আদিম ভ্রমণের একটি উদাহরণ হল একটি FlyTo, যা <gx:FlyTo> উপাদান এবং এর শিশুদের দ্বারা সংজ্ঞায়িত করা হয়েছে।

প্লেলিস্ট : ট্যুরের আদিম তালিকার ধারক যা একটি সফরকে সংজ্ঞায়িত করে। প্লেলিস্টটি একটি টাইমলাইন বরাবর ভিজ্যুয়ালাইজ করা যেতে পারে (আরো তথ্যের জন্য ট্যুর টাইমলাইন দেখুন)।

একটি সফরের গঠন

ট্যুরগুলি নির্দিষ্ট উপাদানগুলিকে, ক্রমানুসারে, একটি KML ফাইলে স্থাপন করে তৈরি করা হয়। KML ফাইলে ট্যুর সহ অন্যান্য আইনি KML উপাদান থাকতে পারে।

নিচের উদাহরণটি একটি সম্পূর্ণ ট্যুর এবং একটি ফোল্ডার দেখায় যেখানে বেশ কয়েকটি স্থানচিহ্ন রয়েছে৷ সফরটি নিউজিল্যান্ডের দক্ষিণ দ্বীপে শুরু হয়, মাউন্ট তারানাকি হয়ে উত্তরে উড়ে যাওয়ার আগে, এবং মসৃণ এবং বাউন্স উভয় ধরনের ফ্লাইটোমোড প্রদর্শন করে, সেইসাথে বর্ণনা বেলুন খোলার <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, Animated Updates, এবং SoundCues৷ এই আদিমগুলির মধ্যে কিছু একটার পর একটা খেলা হয়, পরেরটা শুরু করার আগে একটা আদিম সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে। অন্যরা অন্যান্য আদিমদের সমান্তরালভাবে চলে, যাতে একাধিক ক্রিয়া একই সাথে ঘটতে পারে।

আদিম যা সিরিজে ঘটে

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

এই আদিম ঘটনাগুলি একের পর এক সংঘটিত হয় এবং প্লেলিস্টটি যেকোনও ধরণের, অন্য কোনো উপাদানে যাওয়ার আগে সম্পূর্ণরূপে সম্পূর্ণ হতে হবে। এর মানে হল যে একটি সময়ে শুধুমাত্র একটি সিরিজ-টাইপ প্রাইমিটিভ (FlyTo, Wait, or TourControl) হতে পারে এবং একটি সিরিজ-টাইপ প্রাইমিটিভ হওয়ার সময় কোনো অতিরিক্ত SoundCues বা অ্যানিমেটেড আপডেট শুরু করা যাবে না।

আদিম যা সমান্তরালভাবে ঘটে

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

এই আদিমগুলি যখন প্লেলিস্টে উপস্থিত হয় তখন সেগুলি নির্দেশিত হয়৷ একবার সেগুলি শুরু হয়ে গেলে, সাউন্ডকিউ বা অ্যানিমেটেডআপডেট সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে প্লেলিস্টটি অবিলম্বে পরবর্তী আদিম দিকে চলে যায়। এই যে মানে:

  • যেকোন সংখ্যক SoundCues এবং/অথবা অ্যানিমেটেড আপডেটগুলি প্লেলিস্টে একের পর এক সংকেত করে একই সময়ে হতে পারে
  • SoundCues এবং/অথবা অ্যানিমেটেড আপডেট হতে পারে যখন সিরিজ-টাইপ প্রাইমিটিভ বাজছে (যদিও সিরিজ-টাইপ প্রাইমিটিভ বাজানোর সময় সেগুলি শুরু করা যাবে না)

নীচের চিত্রটি এই আচরণটি চিত্রিত করে। প্লেলিস্টের প্রতিটি আদিমকে সংজ্ঞায়িত করে এমন KML সামগ্রী সহ আরও বিশদ দৃশ্যের জন্য ছবিতে ক্লিক করুন৷


চিত্রটি দেখায় যে প্রতিটি FlyTo সম্পূর্ণ হতে একটি নির্দিষ্ট পরিমাণ সময় নেয় (এর <gx:duration> উপাদানে উল্লেখ করা হয়েছে)। সেই সময় অতিবাহিত হলেই পরবর্তী আদিম শুরু হয়।

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

অ্যানিমেটেড আপডেট একই ভাবে আচরণ করে। যদি একটি স্থানচিহ্নের আইকনটি 5 সেকেন্ডের সময়কালের মধ্যে আকারে বৃদ্ধির জন্য সেট করা হয়, তবে মূল টাইমলাইনে পরবর্তী আদিমগুলি সংঘটিত হওয়ার সময় এটি তা করে।

FlyTo এবং flyToMode

ট্যুরগুলি লোকেশন থেকে লোকেশনে চলে যায়, যার প্রতিটি একটি <gx:FlyTo> উপাদান ব্যবহার করে নির্দিষ্ট করা হয়। এটিতে একটি অ্যাবস্ট্রাক্ট ভিউ ( <Camera> বা <LookAt> ) রয়েছে যা Google আর্থের মধ্যে দেখার অবস্থান, কোণ এবং উচ্চতা নির্ধারণ করে।

উপরন্তু, একটি flyToMode নির্দিষ্ট করা যেতে পারে, যা ব্রাউজারকে বলে যে বিন্দুতে কিভাবে যেতে হবে। <gx:Tour> প্রবর্তনের আগে, ব্রাউজারে প্লেসমার্ক থেকে প্লেসমার্কে হপ করে 'ট্যুর' খেলা হত - ব্রাউজার প্লেসমার্কের কাছে আসার সাথে সাথে ফ্লাইটের গতি (যা ব্রাউজার দ্বারা সংজ্ঞায়িত করা হয়েছিল) ধীর হয়ে যাবে, শূন্য বেগ দিয়ে শেষ হবে পরবর্তী প্লেসমার্কে যাওয়ার আগে। এই আচরণ এখনও ট্যুরে নির্দিষ্ট করা যেতে পারে <gx:flyToMode>bounce</gx:flyToMode> উপাদান বৈশিষ্ট্য ব্যবহার করে।

মসৃণ flyToMode মহাকাশ দিয়ে মসৃণ এবং নিয়ন্ত্রিত ফ্লাইটের অনুমতি দেয়। বিন্দুর মধ্যে বেগ একটি <gx:duration> উপাদানের অন্তর্ভুক্তি দ্বারা নিয়ন্ত্রিত হয়, যা বর্তমান বিন্দু থেকে পরবর্তী সংজ্ঞায়িত দৃশ্যে যেতে ব্রাউজারটি কত সময় নেয় তা সংজ্ঞায়িত করে। একটি অবিচ্ছিন্ন ফ্লাইট মসৃণ flyToModes সহ FlyTos-এর একটি সিরিজ নিয়ে গঠিত - আর্থ ব্রাউজারটি বিন্দুর মধ্যে বেগ এবং একটি বাঁকা পথকে ইন্টারপোলেট করে যাতে প্রতিটি স্থানচিহ্ন কেএমএল-এ নির্দিষ্ট সময়ে ঠিক সময়ে পৌঁছে যায়। বাউন্স flyToMode থেকে ভিন্ন, বেগ কখনই শূন্যে পৌঁছায় না যতক্ষণ না ফ্লাইটটি নিম্নলিখিত কোনো ঘটনা দ্বারা ভেঙে যায়:

  • সফর শেষ,
  • একটি বাউন্স সঙ্গে একটি বিন্দু flyToMode, বা
  • একটি অপেক্ষা

বিরতি , অ্যানিমেটেড আপডেট , এবং শব্দ সংকেত ফ্লাইট ভাঙে না।

প্রাথমিক FlyTo

একটি প্লেলিস্টের মধ্যে থাকা প্রথম <gx:FlyTo> Google Earth-এ দর্শকের বর্তমান সুবিধা থেকে প্রবাহিত হয়। সময়কাল পর্যবেক্ষণ করা হয়, যাতে প্রথম বিন্দুতে বেগ ব্যাপকভাবে পরিবর্তিত হয়, ভ্রমণ শুরু করার সময় দর্শক পৃথিবীতে কোথায় অবস্থিত তার উপর নির্ভর করে। এটি সুপারিশ করা হয় যে এই প্রাথমিক ফ্লাইটোতে 5 সেকেন্ড বা তার বেশি সময়কাল থাকবে এবং সেরা দেখার অভিজ্ঞতার জন্য মোড বাউন্স হবে৷

যদি <gx:flyToMode> প্রথম FlyTo-এর জন্য মসৃণভাবে সেট করা হয়, এবং অতিরিক্ত মসৃণ FlyTos দ্বারা অনুসরণ করা হয়, তাহলে দর্শকের প্রাথমিক অবস্থানটি মসৃণ বক্ররেখার একটি বিন্দু হিসাবে বিবেচিত হবে এবং প্রথম এবং মধ্যবর্তী পথের বক্ররেখাকে প্রভাবিত করবে পরবর্তী পয়েন্ট। এর মানে হল যে ট্যুর শুরু করার সময় তারা আর্থ ক্লায়েন্টে কী দেখছিল তার উপর নির্ভর করে মসৃণ FlyTos-এর প্রাথমিক সিরিজ প্রতিটি দর্শকের জন্য আলাদা হবে। যদি প্রাথমিক বিন্দুতে একটি মসৃণ FlyTo এখনও আকাঙ্ক্ষিত হয়, প্রথম FlyTo-এর পরে ট্যুর কোডে একটি <gx:Wait> ঢোকানো যেতে পারে। এটি সফরের বাকি অংশ থেকে প্রাথমিক অবস্থানকে আলাদা করবে।

উদাহরণ

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

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-এ নির্দিষ্ট করা আছে।

একটি পজ ট্যুরটিকে তার বর্তমান অবস্থানে থামিয়ে দেয়, যেন ব্যবহারকারী পজ বোতামে ক্লিক করেছেন এবং সমস্ত আদিমকে প্রভাবিত করে৷ ব্যবহারকারী Google Earth-এ ট্যুর কন্ট্রোলে প্লে বোতামটি নির্বাচন করলেই ট্যুর আবার শুরু হয়।

অপেক্ষা করে

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

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

<gx:duration> উপাদান ব্যবহার করে অপেক্ষার সময়কাল সেকেন্ডে নির্দিষ্ট করা হয়। একবার সময় অতিবাহিত হয়ে গেলে, প্লেলিস্টে পরবর্তী নির্দিষ্ট ক্রিয়া সহ সফর চলতে থাকে। একটি অপেক্ষা একটি মসৃণ ফ্লাইট পাথকে ভেঙে দেয়, যাতে ক্যামেরার গতিবেগ শূন্যের গতিতে ধীর হয়ে যায় অপেক্ষার ঠিক আগের যেকোনো সময়ে, তার ফ্লাইটোমোড নির্বিশেষে।

বিরতি দেয়

ব্যবহারকারী-নিয়ন্ত্রিত <gx:TourControl> এবং এর চাইল্ড উপাদান, <gx:playMode> ব্যবহার করে নির্দিষ্ট করা হয়েছে। পরবর্তীতে বিরতির একটি একক অনুমোদিত মান রয়েছে। এই ক্রিয়াটি আহ্বান করা ব্যবহারকারীর Google আর্থের বিরতি বোতামে ক্লিক করার মতোই - সেই সময়ে সফরটি বিরতি দেয় এবং প্লে বোতামটি ক্লিক না করা পর্যন্ত বিরতি থাকে৷ বিরতির সময়, ব্যবহারকারী পৃথিবীর পরিবেশে ইচ্ছামত চলাফেরা করতে পারে। যখন প্লে -এ ক্লিক করা হয়, তখন সেগুলি সফরের সেই পয়েন্টে ফিরে আসে যেখানে বিরতি সেট করা হয়েছিল।

বিরতিগুলি মসৃণ ফ্লাইট পাথগুলিকে ভেঙে দেয় না, যাতে বিরতির উভয় পাশের পয়েন্টগুলির মধ্যে বেগ ব্রাউজার দ্বারা গণনা করা হয় যেন বিরতি উপস্থিত ছিল না।

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

উদাহরণ

অপেক্ষার একটি উদাহরণ নিচে দেওয়া হল। একটি সাউন্ড ফাইল cued হয়, দশ সেকেন্ডের সূচনা বক্তৃতা থাকে। একটি দশ সেকেন্ড অপেক্ষা শব্দের সংকেতের পরপরই সন্নিবেশ করা হয়, যা বক্তৃতা সম্পূর্ণ না হওয়া পর্যন্ত নিম্নলিখিত ফ্লাইটোকে স্থান পেতে বাধা দেয়।

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>

নিম্নলিখিত উদাহরণ একটি বিরতি ব্যবহার প্রদর্শন করে. দর্শককে পৃথিবীর একটি নির্দিষ্ট স্থানে নিয়ে যাওয়া হয়, তারপর সফরটি থামানো হয়। ব্যবহারকারী যেকোনো সময় পৃথিবীর পরিবেশে ঘুরে বেড়াতে পারে। যখন তারা আবার ট্যুর শুরু করার জন্য প্রস্তুত হয়, তখন তাদের অবশ্যই ট্যুর কন্ট্রোল থেকে প্লে নির্বাচন করতে হবে - Google আর্থ ট্যুরের শেষ অবস্থানে ফিরে যায় এবং খেলা চালিয়ে যায়।

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 সেকেন্ড অপেক্ষা ঢোকানো হয়েছিল। 4.1 সেকেন্ডের FlyTo-এর সাথে মিলিত, ওয়েট সফর শেষ হওয়ার আগে আপডেট করার সময় দেয়।

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

কোন সময়কাল নির্দিষ্ট করা হয় না.

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

একাধিক শব্দ ফাইল বাজানো

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

পরবর্তী আদিম বাজানোর আগে একটি সাউন্ড ফাইল সম্পূর্ণ করার অনুমতি দেয়

আপনি যদি সাউন্ড ফাইল চালানোর সময় ট্যুরটি অপেক্ষা করতে চান, তাহলে <gx:SoundCue> আদিম এর ঠিক পরেই একটি <gx:Wait> উপাদান অন্তর্ভুক্ত করুন। <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>

ঐতিহাসিক ইমেজ অন্তর্ভুক্ত করা

ব্যবহারকারী যদি তাদের ক্লায়েন্টে ঐতিহাসিক চিত্রাবলী সক্ষম করে থাকে, তাহলে আপনার সফরটি যে তারিখ থেকে ছবি তোলা হবে তা নির্দিষ্ট করতে পারে। প্রদর্শনের জন্য চিত্রের তারিখ নির্দিষ্ট করতে, AbstractView এ একটি <gx:TimeStamp> উপাদান অন্তর্ভুক্ত করুন। মনে রাখবেন যে <gx:TimeStamp> সময়-ভিত্তিক KML এবং সূর্যালোককেও প্রভাবিত করে।

শেষ নির্দিষ্ট তারিখটি সমস্ত অগ্রগতির চিত্রের জন্য ব্যবহার করা হবে।

উদাহরণ

historyalimagery_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 আর্থ ক্লায়েন্ট বর্তমানে সম্পূর্ণভাবে KML ট্যুরিং মেনে চলে না। কিছু পরিচিত সমস্যা নীচে তালিকাভুক্ত করা হয়েছে; এই আসন্ন রিলিজ সংশোধন করা হতে পারে.

  • <gx:AnimatedUpdate> এবং <gx:TourControl> উপাদানগুলি মসৃণ FlyTos-এর একটি সিরিজ দ্বারা তৈরি বক্ররেখা ভেঙে দেবে। এই উপাদানগুলির উভয় পাশের FlyTo পয়েন্টগুলি একটি রৈখিক পথের সাথে যুক্ত হবে।
  • <gx:SoundCue> দিয়ে লোড করা সাউন্ড ফাইলগুলি <gx:SoundCue> <gx:TourControl> শুরু করা একটি বিরতির সময় বাজতে থাকে। যখন ট্যুর আবার শুরু হবে, তখন Google আর্থ সাউন্ড ফাইলের সেই পয়েন্টে ফিরে যাবে যেখানে পজ ট্রিগার করা হয়েছিল।
  • পরম ছাড়া অন্য উচ্চতা মোড ব্যবহার করার সময়, ক্যামেরা একটি বিন্দুর কাছে আসার সাথে সাথে FlyTos-এর মধ্যবর্তী পথটি উপরে বা নিচে লাফ দিতে পারে। এটি ক্লায়েন্টে আপডেট করা ভূখণ্ডের ডেটা লোড হওয়ার কারণে ঘটে - ক্যামেরা একটি বিন্দুর কাছে যাওয়ার সাথে সাথে সেই বিন্দু সম্পর্কে তথ্য আরও বিশদ হয়ে ওঠে। ফলস্বরূপ, বিন্দুর নীচে ভূমির উচ্চতা আপডেট করা যেতে পারে, সেই বিন্দুতে যাওয়ার পথে একটি সংশোধন প্রয়োজন।

    Google Earth-এর রেকর্ডিং প্রক্রিয়া এই কারণে সমস্ত FlyTos-এর জন্য পরম উচ্চতা মোড নির্দিষ্ট করে। যদি এই পথ সংশোধনগুলি আপনার সফরে হস্তক্ষেপ করে তবে আপনার উচ্চতাকে পরম মানগুলিতে রূপান্তর করা উচিত।