Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 13 April 2010 09:06

Régis Longchamp
Juste Inscrit !
Date d'inscription: 24 Feb 2010
Messages: 2

[openlayers -postgis]- enregistrement d'objets modifiés

Bonjour,

Que faut-il spécifier dans le code d'Openlayers afin qu'il puisse enregistrer des données WFS qui viennent d'être modifiées ?

En effet, j'arrive sans autre à supprimer et ajouter des features dans la base de données postgis, mais à les modifier.

Par ailleurs, l'enregistrement d'un élément modifié provenant d'un shapefile introduit directement dans GeoServer marche sans problème.

Le problème doit donc résider dans un update de la géométrie de l'objet dans postgis...


Voici le messages d'erreur de firebug :

<?xml version="1.0" encoding="UTF-8"?>
<wfs:WFS_TransactionResponse version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-transaction.xsd">
<wfs:InsertResult>
<ogc:FeatureId fid="none"/>
</wfs:InsertResult>
<wfs:TransactionResult>
<wfs:Status>
<wfs:FAILED/>
</wfs:Status>
<wfs:Message>update error</wfs:Message>
</wfs:TransactionResult>
</wfs:WFS_TransactionResponse>


Quelqu'un a-t-il déjà rencontré ce genre de problème ? Merci par avance pour votre aide.



Voici les éléments clés de mon code :

Code:

// la couche WFS qui va être modifiée :

var saveStrategy = new OpenLayers.Strategy.Save();      
                                                                      
              var     modify3 = new OpenLayers.Layer.WFS(
               "tig:modify3", 
               "http://localhost:8080/geoserver/wfs",
               
               {typename: 'tig:modify3'},
           //    {styleMap: styleMap_rouge},
               {   strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],    
                   typename: 'modify3', 
                   srs: 'EPSG:21781',
                   featureNS: 'http://opengeo.org/tig',
                   schema:   "http://localhost:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=tig:modify3", 
                   extractAttributes: false,
                   commitReport: function(str) {
                         OpenLayers.Console.log(str);
                     }} 
                     );
                       modify3.setIsBaseLayer(false);


// la fonction d'édition :

     
            var edit = new OpenLayers.Control.ModifyFeature(modify3, {
                title: "Modify Feature",
                displayClass: "olControlDrawFeaturePathbleux",
                
            });
            
            

// l'enregistrement s'effectue à l'extérieur du javascript :
  <a href="#" onclick="map.layers[5].commit();map.layers[3].commit();map.layers[4].commit();return false  " >Save</a><br />

Hors ligne

 

Pied de page des forums

Powered by FluxBB