OpenLayer funzione Insert Point per un WFS-T

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

OpenLayer funzione Insert Point per un WFS-T

Nicola De Innocentis
Ciao a tutti,
sto studiando un esempio di wfs-t in OpenLayers con punti provenienti dal database PostGIS e gestiti attraverso Geoserver.
Ho inserito le funzioni di spostamento, di rimozione, di visualizzazione info sul layer wms e di salvataggio.Queste funzioni vanno bene e fungono perfettamente.
Volevo poi creare una funzione di Inserimento punto con un apertura di un form in cui si potessero riempire i campi di attributi appartenente al vettore wfs.Il form appare come un popup il problema è che all'inserimento dati non si aggiornano i campi di attributo nel wfs.
L'esempio ha preso spunto da quest'altro a tale link : http://www.gisandchips.org/demos/j3m/wfs/wfs_golf.html
mentre il mio codice della funzione è questo:

      var drawPoint = new OpenLayers.Control.DrawFeature(
                wfs_layer, OpenLayers.Handler.Point,
                {    multi:false,
                    displayClass: 'olControlDrawFeaturePoint',
                    featureAdded: function InsertFeature(feature){
                                        selectedFeature=feature;
                                        var fid=selectedFeature.id;
                                        var CATEGORIA=selectedFeature.attributes['CATEGORIA'];
                                        var PROVINCIA=selectedFeature.attributes['PROVINCIA'];
     
                                               
                                                     htmlForm="<div style='font-size:.8em'>"+
                                                     '<h2><b>Inserire i Dati</b></h2>\n'+
                                                     "FID: "+fid+ "<br/>\n" +"<input type='hidden' name='fid' id='fid' value='"+ fid +"'>" +
                                                     "CATEGORIA:<input type='text' name='CATEGORIA' id='CATEGORIA' value='Categoria' size=20 style='background-color: #E6E6FA; color: #7F7F7F; font-style: italic;' > <br/>\n" +
                                                     "PROVINCIA:<input type='text' name='PROVINCIA' id='PROVINCIA' value='provincia' size=15 style='background-color: #E6E6FA; color: #7F7F7F; font-style: italic;' > <br/>\n" +
                                                    "<button onclick=btnInsert>Salva</button>"+"</div>"
                                                             //definizione popup
                                                             popup = new OpenLayers.Popup.FramedCloud("info",
                                                             feature.geometry.getBounds().getCenterLonLat(),
                                                             null,
                                                             htmlForm,
                                                             null,
                                                             true                                                             
                                                             );
                                                           

                                                      feature.popup = popup;
                                                      map.addPopup(popup);
                                                     

                                                      var btnInsert=new OpenLayers.Control.Button({trigger:function Update(fid){
                                                   
                                                                      var fid=new OpenLayers.Util.getElement('fid').value;
                                                                      var mioFeature=wfs_layer.getFeaturebyId(fid);
                                                                     
                                                                      //attribuisce il valore inserito dal Form all'attributo della Feature
                                                                      miofeature.attributes.CATEGORIA=OpenLayers.Util.getElementById('CATEGORIA').value;
                                                                      miofeature.attributes.PROVINCIA=OpenLayers.Util.getElementById('PROVINCIA').value;
                                                                     
                                                                      //Rimuove popup
                                                                      map.removePopup(mioFeature.popup);
                                                                      mioFeature.popup.destroy();
                                                                      mioFeature.popup = null;

                                                                    } //fine update
                                                     
                                                      }); //fine trigger
 
                                                 
                                               
                                                //     else info
                                            } //fine Insert function

Vi ringrazio anticipatamente per l'aiuto.Ciao
--
Nicola De Innocentis

www.nicoladeinnocentis.it


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011