KML e KMZ: introduzione a questi sconosciuti

tutorial kmzIn questo articolo parleremo del formato più popolare usato in Google Earth per segnalibri e quant’altro, il KMZ, e del suo fratello minore, il KML. Se apriamo un file KMZ ci rendiamo subito conto di quante informazioni esso riesca a contenere, a partire dai segnaposti (che si possono identificare con svariate icone) anche appositi layer, poligoni, percorsi e sovrapposizioni personalizzate. Ma non molti sanno che per creare un file siffatto non occorre necessariamente Google Earth, ma basta semplicemente un editor qualsiasi di testo; per capire il perché, descriviamo brevemente i due file:

KML : è un formato di file che deriva dall’ xml, il creatore di metalinguaggi per antonomasia; questo metalinguaggio è l’acronimo di  Keyhole Markup Language , appunto uno dei tanti metalinguaggi nati da xml per soddisfare le esigenze più svariate

KMZ : è un file binario che sembrerebbe ad un’ occhiata superficiale un formato proprietario come ne esistono tanti in giro, addirittura forse anche criptato; beh, niente di più sbagliato! In realtà esso è un semplice file KML, o anche numerosi file, insieme ad immagini, layer, icone, ecc. il tutto zippato con uno qualsiasi dei famosi zippatori (ne esistono sia per windows che per linux) e poi cambiato di nome da .zip a .kmz!

Soffermiamoci adesso sul KML, in questo tutorial impareremo i comandi più elementari (come mettere un segnaposto), anche perché per una referenza completa esiste già l’apposito sito. Se apriamo un kml con un semplice editor di testo vedremo una serie di comandi appositi, qualcosa simile, nella forma più semplice,  a questo listato:

 

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

<Document>
     <Placemark>
          <name>Cari monti</name>
          <description><![CDATA[Buccheri è un piccolo paese di montagna e questa è una sua foto<img src="buccheri.jpg" width="200">]]></description>
         <Point>
              <coordinates>14.8463833,37.1254722,0 </coordinates>
         </Point>

         <LookAt>
              <longitude>-122.363</longitude>
              <latitude>37.81</latitude>
              <altitude>2000</altitude>
              <range>500</range>
              <tilt>45</tilt>
              <heading>0</heading>
              <altitudeMode>relativeToGround</altitudeMode>
         </LookAt>

    </Placemark>
</Document>

</kml>

La prima riga <?xml version="1.0" encoding="UTF-8"?> è molto comune non solo nel kml, ma in tutti i metalinguaggi derivati dal xml; essa serve ad istruire il parser (leggasi Google Earth) proprio del fatto che siamo in presenza di un metalinguaggio che deriva dall xml (<?xml ……. ?>); viene esplicitata anche la versione (nel caso ci siano cambiamenti tra una versione e l’altra), ed il tipo di codifica utilizzata (nel nostro caso o UTF-8 oppure ISO-8859-1).

Per i pochi che non conoscono l’HTML o altri metalinguaggi, solitamente essi condividono tutti la tipica struttura:

<tag1> […] </tag1> o ancora meglio <tag1 opzione1="valore1" opzione2="valore2" ……..> […] </tag> dove al posto di […] si può trovare del testo semplice o ancora sottostrutture simili a quelle di sopra. Detto questo iniziamo:

<kml xmlns="http://earth.google.com/kml/2.1"> […] </kml> indicano che tutto quello che sta fra loro due deve essere considerato come linee di codice kml. L’xmlns è invece un modo per precisare in che file (locale o remoto) si trovano le specifiche del linguaggio, il cosiddetto ‘namespace’, qualcosa di simile al DOCTYPE (anche se con talune differenze).

Il kml prevede inoltre altri tag di incapsulamento <Document> […] </Document> (occhio alle maiuscole e minuscole, sono sempre importanti in kml!).

kml kmz

Finalmente siamo arrivati al tag più semplice di tutti: i segnaposto; nella sua struttura base esso è definito con <Placemark> e all’interno dei tag coniugati possiamo:

  • Definire un nome con l’apposito tag <name>, usato al solito così <name> NomeCheVoglio</name>
  • Darne una descrizione (che apparirà nella finestrella quando cliccheremo) con il tag <description>, sempre come abbiamo fatto con name, però con una particolarità: se sappiamo scrivere in HTML possiamo inserire righe di codice all’interno usando questa struttura speciale <![CDATA[   […]    ]]> . In questo modo possiamo anche inserire immagini (come abbiamo fatto nel file di esempio iniziale.
  • Dare un punto con le coordinate, coi tag <Point> e, figlio di questo, <coordinates> , in cui le coordinate sono 3 separate da virgola: latitudine, longitudine ed elevazione.
  • Fare tanto altro con altrettanti sottotag che qui non trattiamo (esiste già il sito apposito per questo).

Infine abbiamo messo anche un tag <LookAt> che serve a definire da che angolazione si vuole guardare il mappamondo; essendo esso figlio di Placemark, si può avere un accoppiamento bizzarro di questi tag in cui un placemark è in una certa zona, e la vista ricade su un’altra zona completamente diversa. Vediamo le caratteristiche di questo tag e cosa esso può definire:

  • per quanto riguarda i tag <longitude>, <latitude>, <altitude> penso non ci siano problemi in quanto sono autoesplicativi.
  • <range> rappresenta la distanza dell’osservatore dal punto osservato
  • <tilt> angolo fra la perpendicolare alla superficie e l’osservatore
  • <heading> rappresenta la direzione della bussola, partendo da nord
  • <altitudeMode> può essere relativeToGround oppure absolute, in caso sia da considerarsi altitudine rispetto al livello del suolo o del mare

Abbiamo capito insomma che (anche se forse un po’ laborioso) è possibile editare i nostri file kml e creare quelli kmz con semplici programmi, avendo un controllo maggiore e più incisivo rispetto a quello donato dalle relativamente poche opzioni che Google Earth ci mette a disposizione. Nella reference, creata apposta per persone che già sanno più o meno quello che fanno,  vengono a galla tutte le potenzialità offerte da un editing ‘manuale’.

Google Earth presenta la Nuova Zelanda

Google Earth mostra la Nuova Zelanda
Tra i nuovi layer aggiunti in Aprile a Google Earth, troviamo quello dedicato alla Nuova Zelanda. Questo nuovo layer è il primo esempio di promozione turistica effettuata sfruttando la piattaforma di Google Earth. Il layer "100% Pura Nuova Zelanda" contiene punti d’interesse che mostrano le destinazioni, le località panoramiche e le città turistiche della Nuova Zelanda. Le schede sono caratterizzate da bellissime fotografie con descrizioni e link alle pagine al sito ufficiale del turismo neozelandese "100% Pure New Zeland". Oltre al layer, il sito offre anche una sezione chiamata "travel planner" che permette al turista di programmare il proprio viaggio usando una comoda cartina web.

Un’idea niente male da un lato per offrire ai turisti un servizio in più e dall’altro per lanciare una campagna pubblicitaria ancora più incisiva. Non sarebbe il caso che anche noi italiani prendessimo spunto da queste intelligenti iniziative? (via GEarthBlog)

Google Maps lancia le mappe personalizzate

Mappe personalizzate con Google Maps
Fino ad oggi creare una mappa personalizzata, detta in gergo mashup, era riservato a pochi. Solo gli sviluppatori web infatti avevano modo di creare attraverso le API mappe custom utilizzando il framework di Google Maps.

Ora è arrivato l’annuncio dell’introduzione di una nuova funzionalità: "Le mie mappe". Questa novità apre nuovi orizzonti a tutti gli internauti desiderosi di crearsi la propria mappa. Una semplice toolbar permette di disegnare tracciati, o aree colorate, di posizionare markers con immagini, testi e video, il tutto in modo visuale, direttamente sulla cartina stessa. Le mappe si possono poi salvare e anche renderle pubbliche. Una caratteristica molto interessante è la possibilità di esportarle in KML su Google Earth.

Ho provato e verificato la nuova funzionalità e devo ammettere che si tratta di uno strumento semplice e immediato, come del resto sono tutti i servizi di Google. L’idea che mi sto facendo è che Google stia puntando ad aumentare il suo monopolio in questo campo, creando sempre più il bisogno di utilizzare la sua piattaforma. Questo è un altro passo in questa direzione. 

Google Maps integra il supporto al GeoRSS

GeoRSS su Google Maps

Il blog ufficiale di Google Maps ha annunciato il supporto del formato GeoRSS su Google Maps. Si tratta di un formato leggero e basato su XML ideato con lo scopo di georeferenziare il contenuto dei feed RSS. Questo significa che si può dare in pasto a Google Maps il feed RSS del proprio blog opportunamente farcito di tag GeoRSS per vedere i propri articoli localizzati sulle cartine geografiche di Google Maps.

Per vedere un esempio funzionante di questa nuova caratteristica prendiamo in considerazione il mio feed Flickr:

http://api.flickr.com/services/feeds/photos_public.gne?id=97513367@N00&format=rss_200

Ora, dopo aver assegnato tramite l’interfaccia utente di Flickr una località ad una specifica foto, ecco il feed risultante:

http://api.flickr.com/services/feeds/photos_public.gne?id=97513367@N00&format=rss_200&georss=true

Basta copiare questo indirizzo sul campo di ricerca di Google Maps, ed ecco la foto essere visualizzata sulla cartina e segnalata con l’apposito marker. Fenomenale!

Nello stesso post, Google ha anche annunciato che Google Maps API supporta anche il caricamento di file KML. Questo significa che si possono caricare i file KML tipici di Google Earth direttamente sulle mappe del fratello web-based. Questa caratteristica in effetti era già presente da qualche mese, ma evidentemente è stato deciso di pubblicare la notizia ufficiale dopo un periodo di prova.