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@gmail.com>
To: <gfoss@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@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.