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." <[EMAIL PROTECTED]>To: <[EMAIL PROTECTED]> 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 solounbreve 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 mamipare 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 [email protected] 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.
_______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [email protected] 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.
