Posts Tagged 'maps'

La mia Via degli Dei

Via degli DeiI sogni nel cassetto, a mio parere, devono essere piccoli sogni in piccoli cassettini, così ne possono essere aperti tanti durante la propria vita. Uno dei miei sogni nel cassettino era quello di percorrere la Via degli Dei, una “passeggiata” lungo l’Appennino da Bologna a Firenze, sulle orme degli antichi Romani (e probabilmente degli Etruschi). L’escursione era già stata pensata l’anno scorso e rimandata, prima attorno al 25 aprile, poi attorno al 1°maggio, per il maltempo. Quest’anno, ancora una volta, il tempo non è stato dei migliori, ma considerando che non c’erano particolari previsioni di pioggia, e che ormai mordevo il freno da quasi un anno, ho deciso di partire.

E’ stata una esperienza difficoltosa e meravigliosa allo stesso tempo. Non farò la cronistoria, sarebbe forse noiosa e inutile, senza contare che in Rete si trova di tutto. Qualche consiglio, in base alla mia personalissima esperienza,  vorrei però darlo:

Il periodo

Non credo che fine aprile sia il periodo migliore. Come dicevo, l’anno scorso ho dovuto rimandare il viaggio per le condizioni meteo avverse, e quest’anno ho trovato moltissimo fango che non mi ha certamente agevolato nel cammino. Mi sono perso anche molti panorami a causa della nebbia, e ho voluto/dovuto modificare il percorso originale per sicurezza. Forse il periodo migliore è dopo i primi quindici giorni di maggio, facendo attenzione a non chiudere la tappa al Mugello in occasione del Gran Premio perché, se non volete dormire in tenda fuori dai centri abitati, è quasi certo che non troviate un posto libero

L’allenamento

Sono un appassionato discontinuo di trekking e mi piace camminare. Da poco ho iniziato a correre qualche km (riesco a passare per un pelo il test del moribondo). Senza allenamento secondo me, specie alla mia età (45 anni) non vai da nessuna parte. Penso però che un minimo di preparazione sia sufficiente, purché, di questo ne parliamo dopo, non esageriate con il peso sulle spalle!

L’equipaggiamento

Sono partito con uno zaino che complessivamente (considerato cioè lo zaino stesso) non superava i 10 chili (io ne peso 75, anzi 73 dopo la camminata, per 1,85 di altezza). Cosa conteneva lo zaino? Tre magliette tecniche manica corta, slip, calze, una maglietta tecnica manica lunga, un giubbotto tecnico traspirante, un k-way, un pile (l’ho usato solo in albergo), scaldacollo, un coltello (mai usato ma lo ritengo uno strumento di emergenza oltre al fischietto e a qualche decimetro di corda). Più le dotazioni “classiche”: telefono, caricabatterie, usb power bank (batteria esterna per cellulare) e qualche altro oggettino. L’acqua non deve mai mancare, io ne portavo un litro e mezzo, dopo San Luca e il Parco Talon è più complicato trovare fonti.

Gli errori che ho fatto

Come dicevo sono un appassionato discontinuo di trekking per cui ritengo che non avrei dovuto commettere due grosse leggerezze:

1) Le scarpe: mi sono preparato al viaggio con un paio di scarpe (basse) ma quando ho visto le condizioni del tempo variabili ho deciso di utilizzare il classico scarponcino alto (usato nel passato) che però ho usato solo una volta prima della partenza. Non ne soffro normalmente, ma sono venute le vesciche fin dal primo giorno. Non fate il mio stesso errore.

2) La carta: avevo una guida con delle carte 1:50000, troppo poco dettagliate nel caso tu debba fronteggiare imprevisti. Avevo con me il GPS caricato con waypoint strategici, ma il GPS non era cartografico. Alla fine del primo giorno pensavo che il luogo dove avrei pernottato era a 2,5 km da me: questo però se ci fosse stata la galleria, visto che il punto si trovava dalla parte opposta di una collina! Il percorso che ho fatto non è stato quello classico, a causa delle condizioni meteo non troppo buone. A quel punto il GPS mi è servito solo come bussola. In breve, una carta 1:25000 sarebbe stata l’ideale.

Al di là di questi “imprevisti” (chi cammina per boschi sa bene quali sono i veri imprevisti) è stato un viaggio meraviglioso, tanto desiderato ancor prima che esser tanto vissuto. E’ stato bello incontrare, anche solo per poche centinaia di metri,  viandanti come me, ciascuno con le sue storie. Viandanti di cui non so neanche il nome, ma con il quale si crea un legame, una vicinanza, solo per il fatto avere il medesimo obiettivo e di condividere la stessa fatica. E la compagna di tutto il viaggio, la Natura, paesaggi diversi, pianura, golena, arenarie plioceniche, calanchi, boschi, praterie sommitali, e ancora prati, orchidee selvatiche, querce, faggi e poi cipressi quando scendi dall’altra parte. E infine la Storia, storie di commerci e di eserciti: camminare sulle orme degli antichi Romani, su (piccoli) tratti di strada quasi perfetti , 8 piedi romani, due metri e quaranta di larghezza, lastricati di pietre. Tutto questo mi rimarrà nel cuore per sempre.

Non vi voglio annoiare oltre, se siete qui, forse, è anche perché voi stessi state pianificando la via. E allora vorrei condividere con voi la cosa più importante: un percorso studiato a tavolino, con tanti waypoint, ed il percorso effettivo, la “mia” via degli dei, piena di deviazioni, di errori, di sudore, di tempo perso e di meraviglia. Due tracce da caricare sul vostro GPS, in modo da stare ancora più tranquilli.

E se andate, fatemelo sapere. Mi farete riaprire quel cassettino.

Linkografia brevissima

Annunci

Geocoding con Google Maps API V3: un esempio

Scopo di questo tutorial è introdurre nella maniera più semplice possibile le funzionalità geocoding offerte dalle Google Maps V3.
Supponiamo di avere una serie di indirizzi stradali dei quali non conosciamo le coordinate. Per visualizzare tali punti sulla mappa abbiamo appunto necessità di una funzione (geocoding) che, a partire da un indirizzo in formato testo, restituisce una coppia di coordinate spaziali.
Lo script che ho realizzato, ampiamente commentato, è composto da diverse parti.

La prima parte definisce e carica due array, contenenti i dati da visualizzare sulla mappa, cioè gli indirizzi stradali e le relative descrizioni

descrizioni = new Array();
indirizzi = new Array();

//popolamento vettori

indirizzi[0]=”Viale Italia 40, La Spezia, Italia”;
descrizioni[0]=”Qui sono nato e cresciuto”;
indirizzi[1]=”via pascoli 64 la spezia italia”;
descrizioni[1]=”Qui ho fatto le elementari”;
indirizzi[2]=”Via Leopardi 1 la spezia italia”;
descrizioni[2]=”Qui ho fatto le medie”;
indirizzi[3]=”via giacomo doria 2 la spezia italia”;
descrizioni[3]=”Qui ho fatto le superiori”;

Il cuore dell’applicazione è costituito dalla funzione javascipt codifica_indirizzi, che ha come parametri in ingresso un indirizzo stradale e una descrizione da visualizzare. In uscita, il risultato della funzione è un marker (ottenuto dal geocoding dell’indirizzo stradale) con la relativa descrizione. Tale funzione viene eseguita, attraverso un ciclo iterativo FOR, tante volte quanti sono gli elementi del vettore indirizzi.

function codifica_indirizzi(indirizzi, titolo)

      {
        geocoder.geocode({ ‘address’: indirizzi}, function(results, status)
           {   map.setCenter(results[0].geometry.location);
               var marker = new google.maps.Marker
                             ({ map: map,
                                 position: results[0].geometry.location,
                               title: titolo });

                                  });

             }

La funzione principale è la funzione visualizzamappa che definisce i criteri di visualizzazione della mappa (tipo ROADMAP, livello di zoom) e attiva il ciclo di scansione dei vettori indirizzi e descrizioni.

function visualizzamappa() {
                  geocoder = new google.maps.Geocoder();
                  var opzioni = {zoom: 15, mapTypeId: 
                                 google.maps.MapTypeId.ROADMAP }
                   map = new google.maps.Map(document.getElementById
                       (“map_canvas”), opzioni);

Il risultato finale lo potete trovare qui.

Piccola digressione. La funzione geocoding utilizzata si presta molto bene a codificare indirizzi inseriti dall’utente in un piccolo form come si vede in questo esempio. Ciò accade poichè la richiesta è asincrona (i dati che ci servono sono localizzati in server)

Ho avuto qualche difficoltà nella corretta visualizzazione delle descrizioni per ogni marker. Il metodo geocode() mal si accorda a soddisfare le richieste del ciclo for .  In pratica il ciclo for incrementa il contatore avanti prima che il marker potesse comparire (senza attendere cioè il risultato della richiesta fatta al server Google dalla funzione). Grazie a un suggerimento di Napolux ho focalizzato il problema e ho trovato la soluzione, “spezzando” il codice scrivendo due funzioni.

In effetti, una maniera più elegante e corretta di codificare una serie di indirizzi fissi, come quelli precaricati nel vettore, è quella di accedere al servizio di geocoding tramite una richiesta http. In questo caso avremmo però bisogno di un API Key. Magari in un altro articolo si approfondirà questo aspetto.

Introduzione alle Google Maps API V3

Con questo articolo vorrei cominciare a introdurre la nuova versione (V3) delle API di Google Maps. Nexus One è alle porte, i dispositivi basati su sistema Android si moltiplicano. La versione V3 di queste API è stata appositamente progettata per funzionare perfettamente anche sui dispositivi mobili, iPhone compreso. A differenza delle “vecchie” API, non è necessario richiedere una API Key per ogni applicazione. Tutte le funzionalità sono contenute in un file javascript che viene caricato all’avvio dell’applicazione assicurando la velocità dell’esecuzione.
Il primo codice che vi propongo è davvero molto semplice e ci permetterà di visualizzare una mappa centrata in un punto ben preciso:

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript"
  src="http://maps.google.com/maps/api/js?sensor=false"></script>
//Il parametro sensor (true/false) indica se l'applicazione usa
//un sensore per determinare la posizione dell'utente

<script type="text/javascript">
function initialize() {
    var latlng = new google.maps.LatLng(44.112909 , 9.835415); //centra la mappa in un punto preciso
    var myOptions = {
      zoom: 11,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID  //imposta la mappa come ibrida.
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

  <div id="map_canvas" style="width:60%;height:87%;"></div>
</body>
</html>

Il risultato finale lo potrete trovare qui.

Links utili

@ Google Maps API V3 Basics

@ Map V3 Tutorial


Creative Commons License
Questo/a opera è pubblicato sotto una Licenza Creative Commons.

Addthis

AddThis Social Bookmark Button

Flickr Photos


%d blogger hanno fatto clic su Mi Piace per questo: