Aggiornamento di febbraio 2009: aggiunta di menzione di <gx:HEIGHTMode>, <gx:TimeStamp> e <gx:TimeSpan>.
Introdotto con KML 2.2, <Camera> fornisce un modo aggiuntivo per specificare il punto di vista dell'osservatore e i parametri di visualizzazione associati. <Camera> è simile a <LookAt>, poiché entrambi gli elementi definiscono la posizione e l'orientamento di una videocamera virtuale che guarda la Terra. La differenza è che LookAt specifica la visualizzazione in termini di punto di interesse visualizzato. La videocamera, invece, specifica la visualizzazione in termini di posizione e orientamento dello spettatore. 
<LookAt> e <Camera> sono estesi dall'elemento <AbstractView>, che è un tipo astratto di base. <Camera> e <LookAt> sono identici nel modo in cui vengono utilizzati in un file KML, ovvero come elementi secondari di qualsiasi elemento derivato da <Feature> (segnaposto, overlay schermo, Ground Overlay, PhotoOverlay, Folder, Documento, NetworkLink) o come elementi secondari di <NetworkLinkControl> Puoi utilizzare <Camera> o <LookAt> all'interno di una funzionalità, ma non entrambi contemporaneamente (ossia, solo una fotocamera virtuale può specificare il punto di vista corrente). 
Differenze tra <Camera> e <LookAt> 
Il nuovo elemento <Camera> offre un'ulteriore flessibilità nel modo in cui specifichi la vista. Cosa ancora più importante, puoi inclinare la visualizzazione della videocamera in modo da osservare l'orizzonte del cielo. <Camera> offre un controllo completo della libertà di sei gradi sulla visualizzazione, così puoi posizionare la videocamera nello spazio e ruotarla attorno agli assi x, y e z. Se non viene specificata alcuna rotazione, i due elementi sono equivalenti:
<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>La sezione seguente offre una breve recensione dell'elemento <LookAt> per consentirti di confrontarne l'utilizzo con quello del nuovo elemento <Camera>.
Recensione su <LookAt>
L'elemento <LookAt> specifica il punto sulla Terra visualizzato, la distanza dal punto di interesse dal punto di interesse e l'angolo di campo. Ecco la sintassi per questo elemento: 
<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>
Il seguente diagramma illustra la struttura del punto di vista <LookAt>:
 
L'elemento <LookAt> specifica le risposte alle seguenti domande: 
| Domanda | Specifica in  <LookAt> | 
| Che cosa sto guardando? | <longitudine>, <latitudine>,<altitudine>, <modalitàmodalità> | 
| Quanto è distante il punto di vista dal punto d'interesse? | <intervallo> | 
| La visualizzazione è orientata in modo che il Nord sia in cima? | Se sì, utilizza il valore predefinito <header> 0. In caso contrario, specifica una rotazione <intestazione> da >0 a 360° | 
| La vista è dritta verso la Terra? | Se Sì, utilizza il valore predefinito<tilt>. Se No, la fotocamera è inclinata verso l'alto verso l'orizzonte; specifica una rotazione <tilt> ≤ 90°. 90° guarda dritto lungo l'orizzonte. Potresti non vedere affatto la superficie del pianeta se sei distante e <tilt> è uguale a 90°. | 
Esempio
Di seguito è riportato un esempio di <Placemark> contenente un elemento <LookAt>:
<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>
Ed ecco il segnaposto mostrato in Google Earth:
 
Se la direzione di visualizzazione si interseca con il pianeta, utilizza un elemento <LookAt>, poiché è leggermente più facile da specificare rispetto a <Camera>.
Elementi secondari di <Camera> 
L'elemento <Camera> offre la possibilità di posizionare il punto di vista in qualsiasi punto dello spazio e di ruotare la vista in qualsiasi direzione. Ecco la sintassi per questo elemento:
<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> 
L'elemento <Camera> specifica le risposte alle seguenti domande:
| Domanda | Specifica in  <Camera> | 
| Dove si trova la videocamera nello spazio? | Posiziona la videocamera nel punto specificato da <longitudine>, < latitudine>, <altitudine> e <altitudine. | 
| La fotocamera è orientata in modo che il nord sia in cima alla visuale? | Se sì, utilizza il valore predefinito <header> 0. In caso contrario, ruota la videocamera da >0 a 360°, in base ai punti della bussola. | 
| La videocamera sta puntando verso il basso la Terra? | Se Sì, utilizza il valore predefinito <tilt> pari a 0. Se la risposta è No, ruota la videocamera da 0 a 180° per specificare l'angolo di rotazione attorno all'asse X. I valori negativi per <tilt> sono consentiti, ma si trovano in una visualizzazione capovolta. | 
| La fotocamera è a livello di vista? | Se Sì, utilizza il valore predefinito <roll> pari a 0. Nota: il valore di <roll> quando viene usato come elemento secondario di <Camera>è in genere pari a 0. Puoi specificare un valore compreso tra -180 e +180 °, ma questo utilizzo è raro. | 
Il seguente diagramma mostra gli assi X, Y e Z, che sono collegati alla videocamera virtuale.
- L'asse X punta a destra della videocamera ed è chiamato vettore destro.
- L'asse Y definisce la direzione "su" rispetto allo schermo e viene chiamato vettore verso l'alto.
- L'asse Z punta dal centro dello schermo verso il punto d'occhio. La fotocamera guarda verso il basso sull'asse -Z, denominato vettore di visualizzazione.

Ecco un esempio di configurazione di un <Camera> come punto di partenza iniziale di un <Document>:
<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>
Ecco cosa viene visualizzato in Google Earth:
 
Tempo in AbstractViews
<Camera> e <LookAt> possono contenere informazioni sull'ora, che influiscono su immagini storiche, luce solare ed eventuali oggetti con tag temporali. <gx:TimeSpan> e <gx:TimeStamp> sono utilizzati in AbstractViews e sono contenuti nello spazio dei nomi delle estensioni di Google. Per ulteriori informazioni, consulta la sezione sul tempo con AbstractViews del capitolo Time and Animation.
Esempi
I seguenti esempi illustrano rotazioni di <Camera> diverse. 
Titolo
Questo esempio mostra una <Camera> con un'intestazione di 90 gradi (Est) e un'inclinazione di 90 gradi (guardando verso l'orizzonte). La videocamera viene posizionata a un'altitudine di 100 m. 
<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>
Ecco il risultato in Google Earth:
 
 
Inclina
L'esempio seguente utilizza una <Camera> con un'inclinazione pari a 90°, che guarda verso l'orizzonte. Utilizza i valori predefiniti per <heading>, <altitude>, <altitudeMode> e <roll>.
<Camera> contiene un valore <gx:TimeStamp>, che influisce sulle immagini storiche e sulla luce solare, nonché sulla visualizzazione di eventuali oggetti con tag temporali. Nell'immagine seguente, la luce del sole è stata attivata e il <Camera> sta visualizzando la posizione alle 15:29 UTC del 1° gennaio 2009 (7:30, ora locale).
<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>
Ecco cosa viene visualizzato in Google Earth:
 
Rollio
In questo esempio è incluso un elemento <roll> con un valore di 45°, che porta la fotocamera a sinistra. 
<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>
 
Ordine delle trasformazioni
L'ordine di rotazione è importante. Per impostazione predefinita, la videocamera guarda verso il basso sull'asse -Z verso la Terra. Prima dell'esecuzione delle rotazioni, la fotocamera viene tradotta lungo l'asse Z in <altitude>. L'ordine delle trasformazioni è il seguente:
- <altitudine>: traduci l'asse Z in <altitudine>
- <intestazione>: ruota attorno all'asse Z.
- <tilt>: ruota attorno all'asse X.
- <roll>: ruota di nuovo intorno all'asse Z.
Ogni volta che viene applicata una rotazione, due assi della videocamera ne modificano l'orientamento.