Ş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, 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:
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:
- <height> - Z ekseni boyunca ve <height> çevirisi yapın
- <heading> - Z eksenini döndürün.
- <tilt> - X ekseninin çevresinde döndürün.
- <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.