[Gfoss] R: Re: R: Re: Gestione segnalazioni all'interno dimappe.

Andrea P. peri.rtoscana a gmail.com
Mer 7 Maggio 2008 22:08:47 CEST


Beh,

comunque una buona comprensione del javascript devi svilupparla.

Io i prodotti che usi non li conosco, e non dispongo di un esempio che 
sia ti possa aiutare molto.

pero', posso darti qualche buon suggerimento.

Innazi tutto , devi cercare di usare un javascript che ti mantenga 
compatibile con IE e con Firefox, per non penalizzare troppi utenti.
In genere basta che funzioni con Firefox, che e' un po' piu' esigente di 
IE e se funziona su Firefox di solito funziona anche su IE (non sempre 
e' vero, ma in genere e' cosi').

Poi individua un sito internet con un buon manuale in linea di 
javascript, ad esempio:
http://javascript.html.it/guide/leggi/25/guida-javascript-di-base/
Cosi' trovi subito le sintassi che ti possono servire.

Poi posso darti qualche riga di codice, che pero' dovrai adattare e 
completare per svolgere qualcuno dei compiti .

con questa chiamata javascript, chiedi al browser di aprire una 
finestra, "url_chiamata_con_parametri",

open(url_chiamata_con_parametri,'','width=500,height=300,scrollbars=no,resizable=no');

nella variabile url_chiamata_con_parametri ci metti la url che vuoi 
invocare e anche i parametri che gli passi, ad esempio le coordinate 
geografiche, qualcosa del tipo:

url_chiamata_ritorno = 
'/finestra_form.html?coordinataX=1600000&coordinataY=4600000';

Tale codice devi metterlo in un evento javascript 'onClick' , in maniera 
che quando cliccki con il mouse su un punto scateni l'evento che ti 
aprira' una finestra 'finestra_form.html'.

Forse un compito un po' inusuale e' quello di dover recuperare dei 
parametri nella pagina html invocata.
Per questo alcune righe di codice utile sono queste:

--> parametri = document.location.search;
con questa memorizzi in una variabile la stringa con cui avevi invocato 
la pagina.

ecco un pezzetto di codice per parserizzare la stringa ed estrarre cosi' 
le coordinate (piu' o meno)

var parametri = document.location.search;
parametriMaiuscoli = parametri.toUpperCase();
var pos = 0;
var pos1 = 0;
var pos2 = 0;
var pos = parametriMaiuscoli.indexOf("COORDINATAX=");

// qui dovresti aggiungere il codice verificare che effettivamente sia 
stata trovata con un if..., tenendo presente che se non la trova pos 
varra' -1.

poi individui la posizione a cui termina la prima coordinata (ovvero ove 
compare il separatore &)

pos2 = parametriMaiuscoli.indexOf("&",pos1);  // cerca & a partire da pos1.

a questo punto estrai la coordinata X estranedo una substring tra pos1 e 
pos2.

var coordX = parametriMaiuscoli.substring(pos1,pos2);

...
ripeti il parsing per trovare anche la coordinataY che sai essere subito 
dopo la coordinata X, e hai recuperato dai parametri le due coordinate.
Le metti un un paio di campi text di una form che componi in javascript 
nella pagina e poi il resto lo fai scrivere all'utente.

poi spedisci il tutto a una piccola web-app che hai fatto in php, jsp o 
nel linguaggio che piu' ti aggrada.

Di piu' non posso dirti.
Un punto forse problematico e' capire ove inserire in p.mapper il codice 
gestore di evento per scatenare l'apertura della finestra.
Per questo pero' occorre conoscere p.mapper e non posso aiutarti.

Saluti,

Andrea P.


Gianni B. ha scritto:
> Ho pensato di utilizzare Mapserver 5.0 + P.mapper 3.2.
> Ho visto inoltre che P.Mapper ha una funzione nel menu a icone sulla
> sinistra, lo "show_coordinates"
> e cliccando un punto qualsiaisi della mappa dovrebbe restituirmi le
> coordinate.
> Solo che non mi funziona. Ho seguito scrupolosamente le poche istruzioni per
> utilizzare questo comado,
> ma non sono riuscito a farlo funzionare. Questo potrebbe fare al caso mio,
> no?
> Dato che non ho una gran dimestichezza con javascript, si potreebe avere
> qualche esempio??
> 
> Gianni
> Bologna
> 
> ----- Original Message ----- 
> From: "Andrea P." <peri.rtoscana at gmail.com>
> To: <gfoss at faunalia.it>
> Sent: Tuesday, May 06, 2008 6:39 PM
> Subject: Re: [Gfoss] R: Re: R: Re: Gestione segnalazioni all'interno
> dimappe.
> 
> 
> Capisco,
> 
> allora e' molto piu' semplice di quello che pensavo....
> 
> metti in linea un qualsiasi gis-server,
> mapserver o geoserver o altro.
> Scegli l'interfaccia che meglio ti aggrada, ad esempio p-mapper,
> ma potresti usare anche altre soluzioni.
> 
> Poi ti scrivi uno script in javascript che a fronte di un click sulla
> mappa (un evento javascript).
> Recupera le coordinate geografiche,
> fa comparire una finestrella e precompila una form in html.
> 
> nella form ci metti le coordinate geografiche, e chiedi all'utente di
> inserire uno o piu' testi e eventualmente selezionare da una combo-list
> un livello di gravita' della segnalazione.
> 
> poi a fronte del submit sulla form registri il tutto lato server su un
> dbms oppure, ancora piu' semplice lo appendi su un file di testo,
> oppure meno semplice ma piu' efficare,
> fai in modo che lo scirpt lato server compili una email e la invii a una
> destinazione.
> Cosi' registrano subito l'avento.
> Infine trascrivi le coordinate su un bel db in postgres cosi' al
> prossimo connect l'evento compare a video.
> 
> 
> E' molto piu' semplice a farsi che a dirsi.
> 
> feci una cosa del genere in un prototipo di un sistema per fare inserire
> a utenti remoti informazioni di stratigrafia in un sistema che
> registrava le coordinate geografiche del punto in cui era stato fatto il
> sondaggio.
> Quindi evento + coordinate geografiche inserite da remoto.
> 
> La parte gis e' solo a supporto, serve solo per permettere a un utente
> di individuare il punto ove e' avvenuto l'evento identificandolo in una
> mappa dinamica. Per cui non hai bisogno di grandi e sofisticate
> funzionalita'' gis, ma ti basta le funzioni base, il resto e' solo una
> form alfanumerica da riempire e spedire a un server.
> 
> 
> Una unica raccomandazione:
> fai in maniera che il sistema rifiuti di attivare la finestrella con la
> form di inserimento se l'utente non e' almeno a scala 1:10.000 o migliore,
> altrimenti la segnalazione dell'evento rischia di avere delle coordinate
> geografiche troppo imprecise e per un livello comunale non va bene.
> 
> 
> Saluti,
> 
> Andrea P.
> 
> Gianni B. ha scritto:
>> Vorrei evitare di fare installare a degli utenti (è un servizio per i
>> cittadini di un comune) un software aggiuntivo,
>> anche se gratuito. In pratica non devono inserire delle geometrie ma solo
> un
>> breve testo (segnalazione guasto, ecc),
>> in modo che chi eroga il servizio può predisporre un intervento per
>> risolvere l'eventuale guasto.
>> Per adesso me lo immagino così : un punto con una simbologia particolare e
>> cliccandoci sopra compare il messaggio lasciato dall'utente.
>> Nel frattempo ho dato un occhiata anche a Cartoweb3 col plugin edition ma
> mi
>> pare che si possano inserire solo geometrie,
>> o mi sbaglio??
>>
>> Ora continuo le mie prove.
>> Grazie.
>>
>> Gianni
>> Bologna
> 
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss at faunalia.com
> http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 




Maggiori informazioni sulla lista Gfoss