[Gfoss] OpenLayer funzione Insert Point per un WFS-T
Nicola De Innocentis
deinnocentis.nicola a gmail.com
Mer 4 Maggio 2011 18:45:49 CEST
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
-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20110504/a1596f46/attachment.html>
Maggiori informazioni sulla lista
Gfoss