XML/KML

Wikibooks, manuali e libri di testo liberi.
< XML
Indice del libro

Obiettivi di apprendimento

  • Comprendere che cos'è KML e come viene usato in Google Earth
  • Imparare alcuni elementi base di KML

KML (Keyhole Markup Language) è un linguaggio di markup basato su XML per la gestione della visualizzazione di dati geospaziali tridimensionali nei programmi Google Earth, Google Maps, Google Mobile, ArcGIS Explorer e World Wind. "Keyhole" è il nome utilizzato inizialmente per Google Earth; il software è stato prodotto a sua volta da Keyhole, Inc, che è stato acquisito da Google nel 2004. Il termine "Keyhole" in realtà è un omaggio ai satelliti di ricognizione KH, l'originale sistema di ricognizione militare eye-in-the-sky.

Documenti KML[modifica]

Il file KML specifica una serie di funzioni (puntatori, immagini, poligoni, modelli 3D, descrizioni testuali, ecc.) per la visualizzazione in Google Earth, Google Maps e Google Mobile. Ogni luogo ha sempre una longitudine e una latitudine. Altri dati possono aggiungere ulteriori precisazioni, come inclinazione, direzione, altitudine, che insieme definiscono una camera view.

I file KML sono molto spesso distribuiti come file KMZ, cioè file KML compressi con estensione .kmz. Quando un file KMZ è decompresso, si trova un singolo "doc.kml" insieme a tutte le immagini e le icone a cui si fa riferimento nel KML. Ecco un esempio di documento KML:

 <?xml version="1.0" encoding="UTF-8"?>
 <kml xmlns="http://earth.google.com/kml/2.0">
 <Placemark>
   <description>New York City</description>
   <name>New York City</name>
   <Point>
     <coordinates>-74.006393,40.714172,0</coordinates>
   </Point>
 </Placemark>
 </kml>

Il MIME type associato a KML è application/vnd.google-earth.kml.

Il MIME type associato a KML è application/vnd.google-earth.kmz.

Tipi di documento KML di base[modifica]

Affinché un documento XML riconosca i tag specifici KML, è necessario dichiarare il namespace KML:

 <kml xmlns="http://earth.google.com/kml/2.0">

Questa dichiarazione verrà visualizzata in tutti i file di esempio elencati.

Per vedere l'uso degli esempi forniti in questo capitolo è necessario copiare e incollare il testo in un qualsiasi editor. Successivamente si salverà il file come *.kml.

Puntatori[modifica]

I puntatori (placemark) consentono di individuare all'interno di Google Earth una posizione esatta in base alle coordinate. Questo può essere utile per contrassegnare un luogo di interesse o una destinazione di un viaggio.

Il documento KML di esempio nell'introduzione usa il tag <Placemark>. Se si desidera spostare il puntatore in una posizione diversa, tutto ciò che si modificherà saranno le coordinate.

Percorsi[modifica]

I percorsi sono una serie di coordinate collegate tra di loro che possono essere modificate con stili di linea per avere un aspetto più piacevole all'interno di Google Earth. L'altezza e il colore possono essere regolati per una migliore chiarezza.

L'esempio seguente è un percorso negli Stati Uniti da Atlanta (Georgia) a Nashville (Tennessee).

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">

  <Document>
    <name>Paths</name>
    <description>Path from Atlanta to Nashville</description>

    <Style id="yellowLineGreenPoly">
      <LineStyle>
        <color>7f00ffff</color>
        <width>4</width>
      </LineStyle>
      <PolyStyle>
        <color>7f00ff00</color>
      </PolyStyle>
    </Style>

    <Placemark>
      <name>Atlanta to Nashville</name>
      <description>Wall structured path</description>
      <styleUrl>#yellowLineGreenPoly</styleUrl>
      <LineString>
        <extrude>1</extrude>
        <tessellate>1</tessellate>
        <altitudeMode>absolute</altitudeMode>
        <coordinates>
 		-84.40204442007513,33.75488573910702,83269
 		-84.37837132006098,33.82567285375923,83269
 		-84.79700041857893,35.30711817667424,83269
 		-86.79210094043326,36.15389499208452,83269 
        </coordinates>
      </LineString>

    </Placemark>
  </Document>
</kml>

Sovrapposizioni[modifica]

Le sovrapposizioni (overlay) sono elementi grafici che possono essere posizionati su un'area di Google Earth contrassegnata da coordinate. Queste possono mostrare come un'area appariva in momento diverso o durante un particolare evento (come un'eruzione vulcanica).

Questo esempio di overlay proviene dalla pagina web degli esempi KML di Google e mostra l'aspetto del Monte Etna durante un'eruzione.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
  <Folder>
    <name>Ground Overlays</name>
    <description>Examples of ground overlays</description>
    <GroundOverlay>
      <name>Large-scale overlay on terrain</name>
      <description>Overlay shows Mount Etna erupting 
          on July 13th, 2001.</description>
      <Icon>
        <href>http://code.google.com/apis/kml/documentation/etna.jpg</href>
      </Icon>
      <LatLonBox>
        <north>37.91904192681665</north>
        <south>37.46543388598137</south>
        <east>15.35832653742206</east>
        <west>14.60128369746704</west>
        <rotation>-0.1556640799496235</rotation>
      </LatLonBox>
    </GroundOverlay>
  </Folder>
</kml>

Dal codice si può vedere che prende l'immagine etna.jpg e la posiziona sopra le coordinate elencate.

Poligoni[modifica]

I poligoni sono un elemento di Google Earth che consente di modellare le forme 3D. Queste possono essere utili per fare presentazioni ordinate o per mostrare al mondo un aspetto in realtà una struttura.

Questo esempio è un poligono del Turner Field, lo stadio di casa degli Atlanta Braves, in Georgia.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">

  <Placemark>
    <name>Turner Field</name>
    <Polygon>
      <extrude>1</extrude>
      <altitudeMode>relativeToGround</altitudeMode>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
                -84.39024224888713,33.73459764262901,28
 		-84.38961532726215,33.73451197628319,28
 		-84.38830478530726,33.7350571795205,28
 		-84.38811742696677,33.73579651137399,28
 		-84.38856034410841,33.73618350237595,28
 		-84.38930790023139,33.73647497375488,28
 		-84.38997872537549,33.73655338302832,28
 		-84.39051294303495,33.73605785090994,28
 		-84.39056804786146,33.73528763589146,28
 		-84.39024224888713,33.73459764262901,28
	 </coordinates>

        </LinearRing>
      </outerBoundaryIs>      
    </Polygon>
  </Placemark>
</kml>

Come si può vedere dal codice, la forma 3D del poligono è costituita dalle coordinate di latitudine e longitudine, con l'altezza determinata dal valore della terza colonna all'interno del tag <coordinates> (in questo caso 28).

Google Earth[modifica]

Google Earth è il nome del software gratuito di Google con cui vengono gestiti i documenti KML. È un mondo virtuale creato da un collage di immagini satellitari, in cui un utente può esplorre la Terra per vedere paesaggi, oceani e città.

Puoi trovare maggiori informazioni e scaricare il software qui: http://earth.google.com

Interfaccia di base[modifica]

L'interfaccia utente è abbastanza semplice, e anche per un analfabeta digitale è estremamente facile iniziare a esplorare. Se si desidera è possibile ignorare completamente le barre degli strumenti e i pulsanti, e basta fare clic per afferrare la Terra e scuoterla o girarla a piacimento. Per ingrandire, è sufficiente fare clic con il pulsante destro del mouse e tirare verso il basso o verso l'alto a seconda della velocità che si preferisce.

Se si desideri un aiuto per trovare una posizione, si può digitare la posizione (sotto forma di Città, Stato) nella casella di ricerca. Google Earth girerà e ingrandirà la posizione inserita.

Punti di interesse[modifica]

I punti di interesse che Google ha già raccolto per gli utenti sono contrassegnati con punti e icone di colore diverso. Questi possono essere cliccati per avere una varietà di informazioni che vanno da un semplice commento, a una fotografia panoramica di quella posizione esatta. Gli utenti avanzati, interessati al codice make-up di tale funzione, possono fare clic con il tasto destro su uno qualsiasi dei marchi di Google e scegliere "Copia". Questo copierà tutto il codice per quella funzione, che potrà poi essere incollato in un documento di testo per vedere tutti i tag e i riferimenti.

Collegamenti esterni[modifica]