Kameralar

Şubat 2009'da güncellendi: <gx:heightMode>, <gx:TimeStamp> ve <gx:TimeSpan> bahisleri eklendi.

KML 2.2'de kullanıma sunulan <Camera>, gözlemleyicinin bakış açısını ve ilişkili görüntüleme parametrelerini belirtmek için ek bir yol sunar. <Camera>, Dünya'yı görüntüleyen bir sanal kameranın yerleşimini ve yönünü tanımladığından <LookAt> ile benzerdir. Aralarındaki fark, LookAt'ın görünümü görüntülenmekte olan önemli yer açısından belirtmesidir. Kamera, bunun aksine, görünümü izleyicinin konumu ve yönü açısından belirtir.

Hem <LookAt> hem de <Camera>, temel soyut bir tür olan <AbstractView> öğesinden uzatıldı. <Camera> ve <LookAt>, bir KML dosyasında aynı şekilde kullanılır. Diğer bir deyişle, <Feature> ürününden (Yer İşareti, Ekran Yer Paylaşımı, Zemin Yer Paylaşımı, Fotoğraf Yer Paylaşımı, Klasör, Doküman, Ağ Bağlantısı) veya <NetworkLinkControl> alt öğesi olarak türetilen herhangi bir öğenin alt öğesidir. Bir özellikte <Camera> veya <LookAt> kullanabilirsiniz ancak ikisini aynı anda kullanamazsınız (yani, yalnızca bir sanal kamera geçerli bakış açısını belirtebilir).

<Camera> ile <LookAt> arasındaki farklar

Yeni <Camera> öğesi, görünümü belirleme yönteminizde ek esneklik sağlar. Daha da önemlisi, kamera görünümünü ufka doğru gökyüzüne bakacak şekilde yatırabilirsiniz. <Camera>, görüntü üzerinde tam altı derece serbestlik kontrolü sağlar. Böylece Kamerayı uzayda konumlandırabilir, ardından x, y ve z eksenlerinde döndürebilirsiniz. Rotasyon belirtilmemişse iki öğe eşdeğerdir:

<Camera>       
  <longitude>-121</longitude>       
  <latitude>37</latitude>       
  <altitude>2000</altitude>
  <altitudeMode>clampToGround</altitudeMode>     
</Camera> 
<LookAt>
  <longitude>-121</longitude>
  <latitude>37</latitude>
  <altitude>2000</altitude>
  <altitudeMode>clampToGround</altitudeMode>
</LookAt>

Aşağıdaki bölümde, <LookAt> öğesinin kısa bir incelemesi sunulmaktadır. Böylece, yeni <Camera> öğesinin kullanımıyla karşılaştırma yapabilirsiniz.

<LookAt> ile ilgili yorum

<LookAt> öğesi, Dünya üzerinde görüntülenmekte olan noktayı, seyir noktasının önemli noktadan uzaklığını ve görünümün açısını belirtir. Bu öğenin söz dizimi şöyledir:

<LookAt id="ID">
  <longitude></longitude>                       <!-- kml:angle180 -->   
  <latitude></latitude>                         <!-- kml:angle90 -->   
  <altitude>0</altitude>                        <!-- double -->    
  <range></range>                               <!-- double -->   
  <tilt>0</tilt>                                <!-- float -->   
  <heading>0</heading>                          <!-- float -->   
  <altitudeMode>clampToGround</altitudeMode>    
           <!--kml:altitudeModeEnum:clampToGround, relativeToGround, absolute --> 
           <!-- or, gx:altitudeMode can be substituted: clampToSeaFloor, relativeToSeaFloor -->
</LookAt>

Aşağıdaki şemada, <LookAt> seyir noktasının nasıl oluşturulduğu gösterilmektedir:

LookAt öğesi için parametreleri gösteren şema

<LookAt> öğesi, aşağıdaki soruların yanıtlarını belirtir:

Question
Spesifikasyon: <LookAt>
Hangi noktaya bakıyorum? <boylam>, <enlem>,<rakam>, <RakımModu>
Gözlem noktası ne kadar uzakta? <aralık>
Görünüm, Kuzey yönü görünümün en üstünde olacak şekilde mi yönlendirildi? Evet ise varsayılan <heading> değerini 0 kullanın. Hayır ise 0-360° arasında bir <heading> rotasyonu belirtin
Görünüm doğrudan Dünya'ya mı bakıyor? Evet ise varsayılan<tilt> değerini kullanın. Hayır ise kamera ufuğa doğru yatırılmıştır. 90° veya daha küçük bir <tilt> döndürmesi belirtin.
90° doğrudan ufukta bakıyor. (Uzaksanız ve <tilt> 90° ise Dünya yüzeyini hiç göremeyebilirsiniz.)

Örnek

<LookAt> öğesi içeren <Placemark> örneğini aşağıda bulabilirsiniz:

<Placemark>
<name>Machu Picchu, Peru</name>
<LookAt>
<longitude>-72.503364</longitude>
<latitude>-13.209676</latitude>
<altitude>0</altitude>
<range>14794.882995</range>
<tilt>66.768762</tilt>
<heading>71.131493</heading>
</LookAt>
<styleUrl>#msn_icon12</styleUrl>
<Point>
<coordinates>-72.516244,-13.162806,0</coordinates>
</Point>
</Placemark>

Google Earth'te gösterilen Yer İşareti:

Google Earth&#39;teki Machu Picchu Yer İşareti&#39;nin ekran görüntüsü

Yönünüz gezegenle kesişiyorsa bunu belirtmek <Camera> ile kıyaslandığında daha kolay olduğundan bir <LookAt> öğesi kullanın.

<Camera> Alt Öğeleri

<Camera> öğesi, görüş alanını uzayda herhangi bir yere yerleştirme ve görünümü herhangi bir yönde döndürme özelliği sunar. Bu öğenin söz dizimi şöyledir:

<Camera id="ID">    
  <longitude>0</longitude>          <!-- kml:angle180 -->     
  <latitude>0</latitude>            <!-- kml:angle90 -->    
  <altitude>0</altitude>            <!-- double -->    
  <heading>0</heading>              <!-- kml:angle360 -->    
  <tilt>0</tilt>                    <!-- kml:anglepos180 -->    
  <roll>0</roll>                    <!-- kml:angle180 -->    
  <altitudeMode>clampToGround</altitudeMode>
       <!-- kml:altitudeModeEnum: relativeToGround, clampToGround, or absolute -->  
       <!-- or, gx:altitudeMode can be substituted: clampToSeaFloor, relativeToSeaFloor -->
</Camera> 

<Camera> öğesi, aşağıdaki soruların yanıtlarını belirtir:

Question
Spesifikasyon: <Camera>
Kamera uzayda nerede bulunuyor? Kamerayı <boylam>, <enlem>, <Rakım> ve <rakımModu> ile belirtilen noktaya getirin. Genel olarak, kamerayı yere yerleştirmek kötü bir tercihtir.
Kamera, Kuzey görünümün en üstünde olacak şekilde mi odaklanıyor? Evet ise 0 varsayılan <heading> değerini kullanın. Hayır ise kamerayı pusulanın noktalarına göre 0-360° arasında döndürün.
Kamera doğrudan Dünya'ya bakıyor mu? Evet ise 0 varsayılan <tilt> değerini kullanın. Hayır ise X ekseni çevresindeki dönüş açısını belirtmek için kamerayı 0'dan 180°'ye döndürün. (<tilt> için negatif değerlere izin verilir, ancak bunlar baş aşağı bir görünüme neden olur.)
Kamera sahneyi görüntülerken aynı seviyede mi? Evet ise 0 varsayılan <roll> değerini kullanın. Not: <Camera> öğesinin alt öğesi olarak kullanıldığında <roll> değeri genellikle 0 olur. ‐180 ile +180° arasında bir değer belirleyebilirsiniz ancak bu değer nadiren kullanılır.

Aşağıdaki şemada, sanal kameraya takılan X, Y ve Z eksenleri gösterilmektedir.

  • X ekseni kameranın sağına işaret eder ve sağ vektör olarak adlandırılır.
  • Y ekseni, ekrana göre "yukarı" yönünü tanımlar ve yukarı vektör olarak adlandırılır.
  • Z ekseni, ekranın ortasından göz noktasına doğru uzanır. Kamera, ‐Z eksenine bakar. Bu eksene görüntü vektörü denir.

Aşağıda, <Document> içinde başlangıç noktası olarak bir <Camera> ayarlama örneği verilmiştir:

<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Golden Gate tour</name>
<open>1</open>
<Camera>
<longitude>-122.4790</longitude>
<latitude>37.8110</latitude>
<altitude>127</altitude>
<heading>18.0</heading>
<tilt>85</tilt>
<altitudeMode>absolute</altitudeMode>
</Camera> </Document> </kml>

Bu bakış noktası Google Earth'te şunları gösterir:

Soyut Görüntülemelerde Süre

<Camera> ve <LookAt> zaman bilgilerini içerebilir. Bu durum geçmiş görüntüleri, güneş ışığını ve zaman etiketli nesneleri etkiler. <gx:TimeSpan> ve <gx:TimeStamp>, AbstractViews içinde kullanılır ve Google uzantısı ad alanında yer alır. Daha fazla bilgi için lütfen Zaman ve Animasyon bölümünün Soyut Görüntülemeli Süre bölümüne bakın.

Örnekler

Aşağıdaki örneklerde farklı <Camera> rotasyonları gösterilmektedir.

Başlık

Bu örnekte, başlığı 90 derece (Doğu) ve 90 derece eğimli (ufka bakan) bir <Camera> gösteriliyor. Kamera, 100 metre yüksekliktedir.

<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
  <Placemark>
<name>100m looking east</name>
<Camera>
<longitude>-122.4783</longitude>
<latitude>37.8120</latitude>
<altitude>100</altitude>
<heading>90</heading>
<!-- east -->
<tilt>90</tilt>
<!-- level -->
<altitudeMode>absolute</altitudeMode>
</Camera>
</Placemark> </Document> </kml>

Google Earth'te sonuç:

Yatır

Aşağıdaki örnekte 90 dereceye eğimli ve ufuk hizasına sahip bir <Camera> kullanılmıştır. <heading>, <altitude>, <altitudeMode> ve <roll> için varsayılan değerleri kullanır.

<Camera>, <gx:TimeStamp> değeri içerir. Bu, geçmiş görüntülerin ve güneş ışığının yanı sıra zaman etiketli nesnelerin görüntüsünü de etkiler. Aşağıdaki resimde güneş ışığı açık ve <Camera> konumunu 1 Ocak 2009, saat 03:29, UTC (yerel saat) itibarıyla görüntülüyor.

<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">
  <Document>
    <Placemark>
      <name>At ground level</name>
      <Camera>
        <gx:TimeStamp><
          when>2009-01-01T15:29:27Z</when>
        </gx:TimeStamp>
        <longitude>-122.4783</longitude>
        <latitude>37.8120</latitude> 
        <!-- altitude default is 0 (default altitudeMode is clampToGround) -->   
        <!-- heading default is 0 (north) -->    
        <tilt>90</tilt>   
        <!-- level -->   
        <!-- roll default is 0 -->    
        <!-- altitudeMode default is clampToGround -->  
      </Camera>
    </Placemark>
  </Document>
</kml>

Bu bakış noktası Google Earth'te şunları gösterir:

Dolaş

Bu örnek, kameranın sola yuvarlanmasına neden olan 45 derece değere sahip bir <roll> öğesi içerir.

<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">
  <Document>
    <Placemark>
      <name>Roll left</name>
      <Camera>
        <gx:TimeStamp><
          when>2009-01-01T15:29:27Z</when>
        </gx:TimeStamp>
        <longitude>-122.4783</longitude>
        <latitude>37.8120</latitude>
        <altitude>100</altitude>
        <heading>90</heading>
        <!-- east -->
        <tilt>90</tilt>
        <!-- level -->
        <roll>45</roll>
        <altitudeMode>absolute</altitudeMode>
      </Camera>
    </Placemark>
  </Document>
</kml>

Dönüşüm Sırası

Rotasyon sırası önemlidir. Varsayılan olarak, kamera Dünya'ya doğru ‐Z ekseninde aşağıya bakmaktadır. Rotasyonlar yapılmadan önce kamera Z ekseni boyunca <altitude> diline çevrilir. Dönüşümlerin sırası aşağıdaki gibidir:

  1. <height> - Z ekseni boyunca ve <height> çevirisi yapın
  2. <heading> - Z eksenini döndürün.
  3. <tilt> - X ekseninin çevresinde döndürün.
  4. <roll> - Z eksenini döndürün (tekrar).

Rotasyon her uygulandığında, kamera eksenlerinden ikisinin yönünün değiştiğini unutmayın.

Başa dön