.: HosiriS :.

Informatica e non solo

Archive for settembre 2010

Esperimento Traffico

Posted by hosiris su settembre 30, 2010

Quanti, come me, passano ore in macchina per giungere a lavoro? Quanti, come me, immaginano , in questo tragitto, un futuro con il telelavoro che ci permetterà di perdere tempo utile? Quanti, come me, cercano di immaginare una soluzione?

Io passo circa 1 ora e 30 min al giorno in macchina, per cinque giorni la settimana, senza sosta per tutto l’anno perchè non ho ferie (le meraviglie dei contratti a progetto); quindi: 1:30 * 5 = 7:30 * 4 = 30:00. Cioè ogni mese perdo un giorno e 6 ore… in pratica mezzo mese all’anno… Forse voi non ci fate caso, ma per me è tragica: dormo 5 ore a notte perchè il tempo che ho non basta mai per fare quello che voglio, ma poi perdo tutto in macchina.

Come possiamo comportarci fino quando le società non capiscono che il telelavoro è una realtà?

Facile: domani, o lunedì, guardate le mecchine a fianco a voi (max 8, min 1), quante persone sono presenti dentro? Eggià, solo 1! Quindi ognuno di noi equivale ad una macchina…
Quello che voglio proporvi è un semplice esperimento mentale (che però può essere applicato alla realtà): immaginatevi di nuovo in macchina ed immaginate le macchine intorno a voi… ecco adesso immaginate che la vostra macchina sia in grado di inglobare 4 macchine circostanti… ed immaginate che anche altre macchine possano fare la stessa cosa. Riuscite a percepire come sia possibile liberare spazio?
Utopia? NO, anzi decisamente fattibile, infatti se ognuno di noi trovasse un accordo con altre 3/4 persone il numero delle macchine si ridurrebbe di circa il 75%, il che vuol dire che anzicchè 100 macchine in circolo, ne troviamo 25…
Parliamo di altri vantaggi?
Inquinamento ridotto del 75% (quelli che dicono che ognuno di noi non può fare niente per l’ambiente comincino a riflettere); Costi ridotti: un pieno verrebbe diviso in 4/5 (se ognuno di noi consuma ipoteticamente 100 euro al mese di benzina si troverebbe a spenderne solo 25, e così abbiamo fatto economia); Non sono un genio in economia, ma mi pare di ricordare che minore domanda equivale a prezzo più basso… ergo il costo della benzina comincia a scendere; Niente traffico; Orari di percorrenza delle strade ridotte; Probabilità di incidente più bassa (direi che è immediato capire come con meno macchine in giro ci siano minori probabilità di collisione).
Ci sono anche degli svantaggi, questo è certo. Parliamo del fatto che si dipenda l’uno dall’altro, che magari ci si trova in macchina con degli sconosciuti… a parte che in questo modo si riuscirebbe un attimo a ritrovare lo spirito sociale che si è perso, se immaginate questa rete ben formata ognuno di noi potrebbe sempre accordarsi con qualcun’altro per fare un percorso insieme.

Per essere un po’ pratico, comincio subito col proporre il mio percorso:

Quello in alto è il percorso che faccio ogni mattina: parto dalla Tuscolana alle 7.15 circa e arrivo in Viale Europa alle 7.45 circa.
Eccomi qui, se a qualcuno andasse di farmi compagnia è sufficiente che mi contatti o via mail o sms o cell, avete tutti i miei contatti. Oppure se qualcuno non si fida della mia guida, ma è allettato dalla soluzione può invitarmi, sono disposto a fare pezzi di strada a piedi o ad applicare soluzioni miste, prima con una macchina, poi con un’altra… Insomma se solo volessimo migliorare la nostra situazione ne avremmo tutte le capacità!

E allora? MUOVIAMOCI

Posted in Attualità, Personal | 3 Comments »

Un nuovo tipo di elettrodi per applicazioni biomediche

Posted by hosiris su settembre 29, 2010

Un nuovo tipo di elettrodi organici e flessibili sono stati progettati da chimici Giapponesi. Questi sono composti da polimeri conduttivi inseriti tra film di idrogel.
Una produzione efficace ed economica, che possa interagire col sistema biologico è un elemento cruciale per la progettazione di dispotivi impiantabili o per il monitoraggio dell’attività delle cellule nel corpo. I polimeri conduttivi, come il PEDOT (poly(3,4-ethylenedioxythiophene)), hanno enormi potenzialità per queste applicazioni, ma hanno sempre presentato problemi per il fissaggio su dei supporti.
Questo tipo di polimeri, di solito, viene stampato sulle superfici usando un “inchiostro polimerico”, ma non è possibile applicare questa soluzione a superfici umide come l’idrogel. Per risolvere questo problema, Matsuhiko Nishizawa e altri colleghi, hanno sviluppato un processo a due step che usa l’elettropolimerizzazione.

FONTE: www.rsc.org

Posted in Ingegneria Biomedica, NewsOfTheDay | Leave a Comment »

Convertire un indirizzo in coordinate

Posted by hosiris su settembre 28, 2010

Nel corso di un progetto, ho avuto la necessità di inserire le coordinate geografiche di un dato indirizzo nel DB contentente le informazioni di una azienda. Questa necessità era dovuta al fatto che bisognava creare una mappa con dei marker a segnalare la posizione della aziende.
Un metodo è quello che ci vede inserire l’indirizzo in Google Maps e tramite la voce “LINK” selezioniamo le coordinate. Oppure possiamo, sempre da Google Maps, incollare nella barra degli indirizzi del browser il seguente codice:

javascript:void(prompt('',gApplication.getMap().getCenter()));

Entrambi sono metodi validi, ma un tantino macchinosi, allora ho deciso di realizzarmi un interfaccetta che ha richiesto 5 min tra lettura della documentazione e realizzazione.
Ho usato le API di Google che, giunte alla terza versione, offrono innumerevoli opportunità.
Cominciamo con il creare la mappa, oggetto su cui effettueremo le ricerche:

var geocoder;
var map;
function initialize() {
  geocoder = new google.maps.Geocoder();
  var latlng = new google.maps.LatLng(41.442, 12.392);
  var myOptions = {
    zoom: 6,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}

Se inserite questo codice tra i tag SCRIPT e nel body inserite <div id=”map_canvas”></div> all’apertura della pagina vedrete apparire una mappa. La documentazione vi darà maggiori informazioni sulle possibili scelte nel creare i vari oggetti.
Terminata questa operazione, creiamo la funzione che ci permetterà di convertire l’indirizzo da noi inserito in una coppia di coordinate:

function codeAddress() {
  var address = document.getElementById("address").value;
  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      map.setCenter(results[0].geometry.location);
      var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
      });
      document.getElementById("coo").innerHTML = results[0].geometry.location;
    } else {
      alert("ERRORE: " + status);
    }
  });
}

L’utilizzo di questo codice prevede l’esistenza di alcuni div:

<div>
  <input id="address" type="textbox" value="Roma">
  <input type="button" value="CERCA" onclick="codeAddress()">
</div><div id="coo"></div>
<div id="map_canvas" style="width: 200px; height: 200px;"></div>

All’apertura vi si presenterà una pagina come la seguente:

dopo la ricerca verrà visualizzata la coppia di coordinate:

Questo risultato ci permette di selezionare latitudine e longitudine sia manualmente che tramite un parser, successivamente si potrebbe usare il metodo innerHTML per modificare il valore di un campo input.
Come sempre, l’unico limite alle operazione è la fantasia.

Buon divertimento

Posted in Informatica, Javascript, Programmazione | 9 Comments »

Quando l’utente crea problemi al dominio!

Posted by hosiris su settembre 27, 2010

Brutto quando ti si blocca l’utente e non sai mai il perchè… E’ successo questo ad un utente del dominio e non puoi far altro che piangere quando non capisci perchè proprio quell’utente, in momenti randomici, si blocca…
Finalmente riesci a leggere nel LOG il pc incriminato! Lo raggiungi, vorresti ucciderlo perchè se è capace di sbagliare per tre volte una password nota e di risbagliare e risbagliare e risbagliare… forse dovrebbe stare lontano dal PC. Ma ti guarda, con aria impaurita, e ti confessa di non usare da mesi quella utenza (uhmm!!).
Ma cosa sarà mai, effettivamente non c’è traccia di operazioni con quell’utenza, ma il lOG non può aver mentito, e allora? Sbirciando nell’event viewer compare una cosa curiosa: un avviso con sorgente “Kerberos” ed id “14”… ma che sarà mai? E così indagando si scopre che, nell’accedere alla cartella condivisa dell’altro utente, il tizio ha salvato la password (solo che mensilmente viene cambiata). Morale della favola: come faccio ad eliminare l’impostazione della password?

Il seguente comando ci permette di modificare o eliminare le utenze “fastidiose”:

c:\ rundll32.exe keymgr.dll,KRShowKeyMgr

Apparirà una finestrella con una lista di utenze usate… In questo semplice modo, dovreste riuscire ad eliminare il piccolo difettuccio esposto.

Buon divertimento

Posted in Informatica, Windows | Leave a Comment »

In difesa della giustizia!

Posted by hosiris su settembre 26, 2010

Di sti tempi, è certo, la giustizia sembra traballare un pochino. E sembra sempre che il colpevole la faccia franca.
E’ proprio in giorni come questi che liberare la fantasia può risultare l’unico modo per sopravvivere. E così che ho rinunciato alla lettura di libri prettamente tecnici spostandomi verso la narrativa. Entro in libreria e subito mi colpisce il titolo di un libro… “ma come, è un libro?” mi sono detto, da sempre convinto che fosse solo una serie televisiva (brutta bestia l’ignoranza, ma daltronde se fossi stato interessato alla letteratura non avrei potuto parlare di informatica…). Ed allora l’ho comprato; uno dei libri di Isabel Allende: Zorro

Pur conoscenso l’autrice, non avevo mai letto niente e devo dire che mi ha catturato da subito: ogni particolare è spiegato in modo da farti credere di essere là con Diego de la Vega e Bernardo, in modo da farti crescere insieme ai due personaggi!
La scrittura è così coinvolgente che non vedi l’ora di girare pagina… ed è lì che nella mente comincia a prendere forma la speranza di avere uno Zorro nella vita reale, che di tanto in tanto faccia ricordare ad ognuno di noi la via da percorrere.

Buona lettura

Posted in Libri | Leave a Comment »

Occhio all’incrocio – precedenze soggettive?

Posted by hosiris su settembre 25, 2010

Io vorrei capire, ma non ci riesco… quando in un incrocio è indicato a terra c’è una linea continua trasversale… quella linea non andrebbe superata, ma non so come la maggior parte delle macchine si ferma sulle strisce pedonali… Posso capire che ve piace trasgredire le regole (certo che è triste accontentarsi di così poco), ma se voi state sulle strisce, il pedone non può attraversare la strada; se voi state sulle strisce un cieco vi prende in pieno fianco; se state sulle strisce NON RECUPERATE NEANCHE UN SECONDO DELLA VOSTRA VITA, perchè non riuscite a vedere il semaforo e quindi non riuscite a scattare, di conseguenza constringente qualcuno dietro ad usare il clacson e a ritardare la partenza.

Continuando con la rassegna delle “furbate” da strada, oggi parlo di un incrocio che crea in ogni autista sentimenti contrapposti: “freccia o non freccia?”, “precedenza o non precedenza?”

Parliamo del punto in cui dall’Appia Antica parte l’Ardeatina. In quel punto troviamo una grossa curva e l’Ardeatina sembra continuare il percorso. Forse chi percorre l’Appia Antica, potrebbe essere tratto in inganno, ma chi proviene dall’Ardeatina e non vede lo STOP… mba… dovrebbe un attimo andare dall’oculista.

Per chi percorre l’Appia Antica in direzione “Porta Ardeatina” giunto a quell’incrocio, se volesse imboccare l’Ardeatina, avrebbe il dovere di lasciar passare solo chi proveniene dal senso opposto ed invece, sorpresa!!!
Dopo aver fatto passare le macchine che hanno il diritto di farlo, proprio nel momento dell’accelerazione, da sinistra ti vedi sfrecciare davanti una macchina proveniente da destra… e lo STOP? e se pure non ci fosse lo STOP, devi dare la precedenza a chi viene da destra…

Anche in questo caso il geniaccio rimane convinto che la sua azione non ha nessuna conseguenza, ma siccome i geniacci sono tanti, in via Appia Antica si creano code proprio perchè le macchine rimangono bloccate.
Accennavo prima al fatto delle frecce perchè quell’incrocio è molto buffo: chi proviene da Porta Ardeatina, e vuole andare in via Ardeatina, dovrebbe mettere la freccia a destra, ma siccome la strada prosegue “dritta” la freccia non viene messa; invece per chi prosegue l’Appia non è necessario mettere la freccia… et voilà: tutti con la freccia a sinistra!!! Certo il buon comune ha parte della colpa visto che prima non è presente il cartello che avvisa che sulla curva è presente un inserimento, ma giusto un po’ di intelletto: se una strada cambia nome, direi che qualche inghippo c’è…

Con questo vi auguro buona guida!

Posted in Personal | Leave a Comment »

OpenMEEG: software opensource per bioelettromagnetica semi-statica

Posted by hosiris su settembre 24, 2010

Interpretare e controllare i fenomeni elettromagnetici richiede modelli fisiologici realistici e metodi di calcolo accurati. Un modello semi-realistico, spesso usato nella pratica elettromagnetica, è quello a costanti concentrate. Questo modello semplificato rende possibile l’uso del metodo degli elementi finiti. Sfortunatamente, questo metodo viene usato per ricavare soluzione a problemi in cui il rapporto tra le conduttività dei tessuti è troppo elevata. Per superare queste difficoltà, lo studio presentato mostra un nuovo metodo chiamato metodo agli elementi finiti simmetrico, che è stato implementato nel software OpenMEEG.

FONTE: www.biomedical-engineering-online.com
DOWNLOAD FILE: PDF

Posted in Ingegneria Biomedica, NewsOfTheDay | Leave a Comment »

Geometrie non euclidee: Lobacevskij, Bolyai e la diffusione delle nuove teorie

Posted by hosiris su settembre 22, 2010

Tra la fine del XVIII e l’inizio del XIX secolo si era giunti alla convinzione che il V postulato fosse indispensabile per la fondazione della geometria: infatti, si erano descritte molte proposizione che dipendevano proprio dal postulato ed in alcuni casi risultavano ad esso equivalenti. Ricordiamo, inoltre, che furono sprecate molte energie nel tentativo di dimostrarlo. Fu così che cominciò a presentarsi l’idea che esso fosse veramente indimostrabile.
Faremo adesso un breve excursus che ci presenterà il lavoro di alcuni matematici che, proseguendo gli studi di Saccheri, Lambert e Legendre, apportarono nuovi contributi alla teoria delle parallele.
Nle 1807, Ferdinand Karl Schweikart si dedicò a ricerche sulla teoria delle parallele. Egli fu pienamente consapevole della possibilità logica di una nuova geometria, che chiamò astrale, dalla quale, come caso limite, si giunge alla geometria euclidea.
Un nipote di Schweikart, Taurinus, sviluppò le conseguenze dell’ipotesi dell’angolo acuto, fino ad ottenere le formule principali della trigonometria non euclidea. Taurinus ebbe quindi il merito di riconoscere apertamente la possibilità logica di una nuova geometria, detta logaritmico-sferica e anche della geometria relativa all’ipotesi dell’angolo ottuso. La geometria euclidea si situa così in una posizione intermedia tra la geometria ellittica e la geometria iperbolica.
Fu Gauss il primo grande matematico a riconoscere chiaramente la possibilità della nuova geometria, ma comunque non pubblicò mai nulla su questo argomento. Dalla sua corrispondenza con altri matematici è possibile, però, ricostruire le sue ricerche.
Senza scorrere tutti gli scritti di Gauss, richiamo un solo passo in cui esprime il suo interesse verso le nuove teorie:

”Sono stato indotto di recente a rivedere l’opuscolo di Lobacevskij […]. Contiene i fondamenti di quella geometria che dovrebbe, e a rigore potrebbe, aver luogo se la geometria euclidea non fosse la vera. Un certo Schweikart la chiamò geometria astrale. Lobacevskij geometria immaginaria. Lei sa che già da 54 anni ho le stesse convinzioni. Materialmente non ho trovato nulla di nuovo nell’opera di Lobacevskij, ma lo sviluppo è fatto per una via diversa da quella che ho seguito io […]”

Lobacevskij pubblicò nel 1829 delle memorie in cui mostrava i risultati riguardanti la nuova geometria. A questo successero numerosi scritti in cui il matematico non si limitò ad affrontare la questione delle parallele, ma rivolse i suoi sforzi alla rifondazione globale della geometria.
Nei suoi lavori assume come concetti primitivi della sua geometria quelli di ”corpo”, di ”contatto tra corpi” e di ”movimento rigido”, ricavando le proposizioni primitive della teoria da osservazioni di carattere sperimentale sul comportamento dei corpi fisici. Solo in un secondo momento introduce i concetti di retta e di piano e dimostra per essi le proprietà geometriche che si possono ricavare senza l’uso del V postulato euclideo. In questo modo sviluppa quella che sarà chiamata la geometria assoluta, ottenendo risultati interessanti, come ad esempio l’aver dimostrato l’assoluta indipendenza della geometria sferica dal V postulato e la dimostrazione dell’esistenza dei cinque poliedri regolari ottenuta senza ricorso a considerazioni sulle rette parallele. Successivamente, introduce una nuova nozione di rette parallele e procede nello sviluppo della geometria immaginaria. Gli argomenti più interessanti a cui si rivolge sono:

  1. esposizione organica della trigonometria non euclidea;
  2. introduzione e studio di nuove figure: l’oriciclo e l’orisfera
  3. la dimostrazione del fatto che sull’orisfera, sotto opportune ipotesi, vale la geometria euclidea
  4. la dimostrazione che in zone di spazio sufficientemente piccole, la geometria immaginaria coincide con la geometria euclidea
  5. l’osservazione che se, nelle formule della trigonometria non euclidea piana, sostiuiamo ai lati a, b e c di un triangolo i lati immaginari si ottengono le formule dell’ordinaria trigonometria sferica
  6. lo sviluppo di una geometria analitica corrispondente alla nuova geometria

Insieme Lobacevskij tra i fondatori delle geometrie non euclidee viene annoverato J’anos Bolyai. Bolyai si applicò nella direzione della geometria assoluta, giungendo alla importante formula dell’angolo di parallelismo.

Le opere di Lobacevskij e Bolyai non ebbero immediata risonanza nel mondo matematico del tempo.
Bisogna stare attenti a non cadere nell’errore di considerare la geometria iperbolica come l’unica alternativa, infatti un altro sistema ben distinto dai precedenti si può ottenere in corrispondenza dell’ipotesi dell’angolo ottuso.
La possibilità logica di questo nuovo sistema geometrico non deriva immediatamente dalle considerazioni precedenti; anzi, abbiamo visto che già Sacheri era riuscito a confutare correttamente l’ipotesi dell’angolo ottuso e che lésistenza di rette parallele è dimostrabile senza l’uso del V postulato. Comunque variando alcune ipotesi si riesce a costruire un sistema coerente che corrisponde all’ipotesi di Saccheri. La scoperta di questo nuovo sistema si può attribuire al matematico tedesco Riemann.
Le ricerche di Riemann proseguo gli studi che Gauss aveva intrapreso relativamente alla geometria delle superfici dello spazio euclideo, i quali avevano segnato l’inizio di una nuova branca della geometria, detta geometria differenziale. Ricordiamo che Gauss si prefisse lo studio di quelle proprietà geometriche delle superfici che si possono chiamare intrinseche, in quanto dipendono solo dal tipo di superficie considerato e non dallo spazio in cui sono immerse. Dimostrò che, data una superficie qualsiasi, purché sufficientemente regolare, è possibile introdurre su di essa un sistema di coordinate, mediante le quali si possono determinare le equazioni delle figure contenute sulla superficie stessa. Dimostrò inoltre che era possibile esterndere il concetto di retta a una qualsiasi superficie (concetto di geodetica).
Dopo la pubblicazione delle epistole di Gauss, l’interesse per questi nuovi argomenti cominciò ad estendersi. Nel 1866 Eugenio Beltrami presentò quello che fu definito il primo modello della geometria iperbolica. Egli considerò una superficie a curvatura costante negativa, deta pseudsfera. Questa si ottiene facendo ruotare nello spazio una curva detta trattrice.

Tale superficie ha curvatura costante negativa pari a -1/k^2. La sua geometria intrinseca coincide con la geometria iperbolica.

Nel 1867 Riemann pubblicò una dissertazione dal titolo Sulle ipotesi che stanno alla base della geometria in cui l’autore estende il concetto di curvatura allo spazio. Lo sviluppo delle idee di Riemann tende a determinare la struttura della spazio fisico. Supponiamo che i punti dello spazio siano individuati da tre coordinate Ammesso il principio di additività delle lunghezze, la distanza tra due punti su una linea sarà determinata quano si sappia valutare la distanza ds tra due suoi punti infinitamente vicini e Riemann fa l’ipotesi che $ds$ sia la radice quadrata in una forma di secondo grado omogenea dei dx_i:

Ammesso il principio della sovrapponibilità delle figure, con un opportuno mutamento del sistema di coordinate si riesce a mettere il ds^2 in una forma diversa, nella quale interviene una costante k, detta da Riemann curvatura dello spazio, che può essere positiva, nulla negativa. Se adesso ammettiamo che il principio di sovrapponibilità sia valido nell’intero spazio e che una retta sia determinata da due punti, si dimostra che solo tre situazioni sono compatibili con le ipotesi di partenza, cioè tre possibili geometrie: se k > 0 si ha la geometria ellittica, se k = 0 si ha la geometria euclidea ed infine, se k < 0 si ha la geometria iperbolica.
Con questo lavoro Riemann ha voluto distinguere la teoria generale delle grandezze a n dimensioni dalla teoria dello spazio tridimensionale, mostrando che questo è solo un caso particolare di quella.

Posted in Matematica | Leave a Comment »

Test biomeccanico sulla fissazione del tendine all’osso durante la ricostruzione del legamento crociato

Posted by hosiris su settembre 21, 2010

La possibilità di eseguire la fissazione del tendine all’osso tramite un impianto a forma di cuneo, offre maggiori vantaggi, dal punto di vista teorico, rispetto al fissaggio con vite.
Lo studio presentato mostra i risultati dei test biomeccanici eseguiti su dei bovini a cui è stata effettuata la ricostruzione del crociato. In effetti questi risultati non mostrano delle differenze statisticamente valide tra le due tecniche.

Fonte: www.josr-online.com
Download file: PDF

Posted in Ingegneria Biomedica, NewsOfTheDay | Leave a Comment »

Lavorare con le API di google

Posted by hosiris su settembre 19, 2010

Per un progetto mi si è presentata la necessità di dover sviluppare un frontend che presenti, su una mappa, dei punti di interesse e delle informazioni relative a quai punti.
Ho deciso di usare le API che mette a disposizione Google e PHP con MySQL per la gestione delle informazioni.

Le API ci danno la possibilità di creare delle mappe in maniera molto semplice:

<!DOCTYPE html>
<html>
<head>
<title>Costumer Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
 html { height: 100% }
 body { height: 100%; margin: 10px; padding: 0px }
 #map_canvas { height: 100%; width: 100%; border: 1px black solid }
</style>
<script src="http://maps.google.com/maps/api/js?sensor=true_or_false&key=key_by_gmap" type="text/javascript">
</script>
<script type="text/javascript">
 function initialize() {
  var latlng = new google.maps.LatLng(41.442, 12.392);
  var myLatlng = new google.maps.LatLng(41.442, 12.392);
  var myOptions = {zoom: 5, center: latlng, mapTypeId: google.maps.MapTypeId.TERRAIN};
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
 }
</script>
</head>
<body onload="initialize();">
 <div id="map_canvas"></div>
</body>
</html>

Tramite questo semplice codice il nostro browser ci mostrerà una mappa centrata sull’Italia.
A questo è semplicissimo aggiungere dei “marker”, cioè dei puntatori a delle coordinate esatte. Aggiungiamo il seguente codice alla funzione di inizializzazione:

var myLatlng = new google.maps.LatLng(41.442, 12.392);
var marker = new google.maps.Marker({position: myLatlng, map: map, title:"Punto 1"});

Adesso trattiamo i dati che avremo memorizzato in un DB. Come accennato per far questo utilizzeremo PHP e MySQL, ma per poter interfacciare questo mondo con il linguaggio Javascript usato dalle API dovremmo utilizzare un file di appoggio nel formato XML.
Il DB che useremo avrà una struttura semplicissima, atta a contenere solo le coordinate e il nome del punto, ma possiamo immagazzinare e mostrare una quantità di dati a piacere:

map(id, denominazione, latitudine, longitudine)

Per creare il file xml faremo uso del seguente codice:

<?php
$dbinfo = 'mysql:host=localhost;dbname=dbmap';
$dblink = new PDO($dbinfo, 'user', 'pass');
$query_marker = " SELECT * FROM map ";
if($file = fopen("markers.xml", "w")){
  $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
  $_xml .="<markers>\r\n";
  foreach($markers=$dblink->query($query_marker) as $marker){
    $_xml .= "\t<marker id='".$marker['id']."'>".$marker["denominazione"]."\r\n";
    $_xml .= "\t\t<lat>".$marker["latitudine"]."</lat>\r\n";
    $_xml .= "\t\t<lon>".$marker["longitudine"]."</lon>\r\n";
    $_xml .= "\t</marker>\r\n";
  }
  $_xml .="</markers>\r\n";
  fwrite($file, $_xml);
  fclose($file);
}
?>

In questo modo ci ritroviamo a disposizione un file contenente le informazioni necessarie alla creazione i marker sulla mappa. A questo punto carichiamo il file e tramite l’uso del DOM preleviamo i dati:

var xmlDoc;
if (window.ActiveXObject){
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
else if (document.implementation && document.implementation.createDocument){
  xmlDoc=document.implementation.createDocument("ns","root",null);
}
else{
  alert('cannot handle this');
}
xmlDoc.async=false;
xmlDoc.load("markers.xml");
var markers = xmlDoc.getElementsByTagName('marker');
var lat = xmlDoc.getElementsByTagName('lat');
var lon = xmlDoc.getElementsByTagName('lon');
for(i=0;i<markers.length;i++){
  punto[i] = new google.maps.LatLng(lat[i].childNodes[0].nodeValue, lon[i].childNodes[0].nodeValue);
  mark[i] = new google.maps.Marker({
                    position:punto[i],
                    clickable:true,
                    visible:true,
                    map:map,
                    title:markers[i].childNodes[0].nodeValue
  });
  google.maps.event.addListener(mark[i], 'click', function() {
    window.open();
  });
}

Quindi dopo aver caricato il file e prelevate le informazioni, richiamo la API per la creazione dei marker passando i parametri. Il codice è di semplicissima lettura e direi che è inutile descrivere riga per riga tutto quanto. Naturalmente questa è solo una possibile applicazione, ad esempio nalla mia versione sto preparando una mappa per visualizzare i luoghi in cui sono stato. Oltre la possibilità di mostrare i punti, se clicco su il marker si apre una pagina che mostra tutte le informazioni utili per quella località (hotel, ristoranti...)

Buon divertimento

PS: [23/09/2010] Mi è stato fatto notare che la parte javascript non sempre funziona; purtroppo non sono riuscito a riprodurre il problema, ma a breve posterò una soluzione alternativa!

Posted in Javascript, Programmazione | Contrassegnato da tag: | Leave a Comment »