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 Mon 19 November 2012 14:32

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

wfs-t tinyows openlayers

Bonjour,

J’essaie d'utiliser tinyows avec openlayers afin de permettre l'édition d'une couche postgis à travers une interface web.
J'ai paramétré le fichier config.xml et la couche que je souhaite modifier est vue correctement lorsque je fait un .../tinyows.exe --check

Dans l'interface web, avec firebug, je constate qu'il y a une réponse wfs cependant je ne vois rien s'afficher. On dirait encore un problème de projection, mais je ne parviens pas à le résoudre.
pour le code js, j'ai repris l'exemple présent sur le site de mapserver.
http://mapserver.org/trunk/tinyows/openlayershowto.html


Code:

....

function init() {
    var options = {
        projection: new OpenLayers.Projection("EPSG:3949"),
        displayProjection: new OpenLayers.Projection("EPSG:900913"),
        units: 'm',
        maxResolution: "auto",
        maxExtent: new OpenLayers.Bounds(1424700.0,8169000.0,1451156.0,8188335.0)
    };
    map = new OpenLayers.Map('map',options);
        
    var mapnik      = new OpenLayers.Layer.OSM();
    var epsg4326     = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
    var epsg3949     = new OpenLayers.Projection("EPSG:3949");   // Transform from rgf93cc49
        var epsg900913    = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    var position    = new OpenLayers.LonLat(-0.57,48.75).transform( epsg4326, epsg900913);
    var zoom        = 12; 


    var saveStrategy = new OpenLayers.Strategy.Save();
    saveStrategy.events.register("success", '', showSuccessMsg);
    saveStrategy.events.register("fail", '', showFailureMsg);
    
    
    commerces = new OpenLayers.Layer.Vector("commerces", {
        strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
        projection: new OpenLayers.Projection("EPSG:900913"),
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            srsName: "EPSG:900913",
            url: "http://127.0.0.1/cgi-bin/tinyows.exe?",
            featureNS :  "http://www.tinyows.org/",
            featureType: "test",
            geometryName: "the_geom",
            //schema: "http://127.0.0.1/cgi-bin/tinyows.exe?service=wfs&request=getFeature&version=1.1.0&typename=local:test"
            schema: "http://127.0.0.1/cgi-bin/tinyows.exe?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=local:test"
        })
    });


....

J'obtiens une réponse, je peux avoir la même chose avec des coordonnées L93CC49 qui sont celles que j'utilise. Cependant, rien ne s'affiche sad


Code:

<gml:boundedBy>
    <gml:Envelope srsName="EPSG:900913">
         <gml:lowerCorner>-63356.179688 6232023.500000</gml:lowerCorner>
         <gml:upperCorner>-62901.589844 6232334.500000</gml:upperCorner>
    </gml:Envelope>
</gml:boundedBy>

<gml:featureMember>
   <local:test gml:id="test.1">
   <local:Id>1001</local:Id>
   <local:the_geom>
   <gml:Point srsName="spatialreferencing.org:900913">
     <gml:pos srsDimension="2">-63274 6232334</gml:pos>
   </gml:Point>
   </local:the_geom>
   </local:test>
</gml:featureMember>

Si c'est un problème de projection, je dois dire qu'openlayers ne me réussi pas à ce niveau là.

Tinyows peut-il servir les données en changeant leur système de projection comme mapserver ?


Merci pour votre aide.


ps je suis sous win7 64 avec tinyows1.0.0rc3 et mapserver6.0.1

Dernière modification par jonathan (Mon 19 November 2012 16:11)

Hors ligne

 

#2 Mon 19 November 2012 16:31

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

Re: wfs-t tinyows openlayers

Ca s'affiche !!

j'ai ajouté ceci dans la définition du layer.

Code:

            readFormat: new OpenLayers.Format.GML({
                'internalProjection': new OpenLayers.Projection("EPSG:900913"),
                'externalProjection': new OpenLayers.Projection("EPSG:900913")
            }),

Reste à faire fonctionner les transactions.....

edit :

pas besoin d'indiquer les informations sur les projections :

Code:

readFormat: new OpenLayers.Format.GML(),

Dernière modification par jonathan (Tue 20 November 2012 09:29)

Hors ligne

 

#3 Tue 20 November 2012 09:34

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

Re: wfs-t tinyows openlayers

C'eut été trop beau que les transactions fonctionnent directement wink


Code:

[Tue Nov 20 09:32:16 2012] [ERROR] Element '{{http://www.opengis.net/gml}_Feature}test': This element is not expected. Expected is one of ( {http://www.opengis.net/gml}_Feature, {http://www.opengis.net/gml}FeatureCollection, {http://www.opengis.net/gml}MultiPointCoverage, {http://www.opengis.net/gml}MultiCurveCoverage, {http://www.opengis.net/gml}MultiSurfaceCoverage, {http://www.opengis.net/gml}MultiSolidCoverage, {http://www.opengis.net/gml}GridCoverage, {http://www.opengis.net/gml}RectifiedGridCoverage, {http://www.opengis.net/gml}Observation, {http://www.opengis.net/gml}DirectedObservation ).

[Tue Nov 20 09:32:16 2012] [ERROR] XML request isn't valid

Je ne suis pas sûr que ce soit le problème connu lié à libxml2 et si c'est le cas, je ne suis pas sûr de savoir contourner le problème sous windows....

Merci d'avance pour vos retours d'expérience.

Dernière modification par jonathan (Tue 20 November 2012 11:08)

Hors ligne

 

#4 Tue 20 November 2012 12:19

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

Re: wfs-t tinyows openlayers

Comment avoir une version 2.8 de libxml2 sous windows ?????

Hors ligne

 

#5 Tue 20 November 2012 14:35

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

Re: wfs-t tinyows openlayers

le log de tinyows dit

Code:

[ERROR] Element '{http://www.opengis.net/gml}MultiPoint': This element is not expected. Expected is ( {http://www.opengis.net/gml}Point ).

???

Hors ligne

 

#6 Mon 26 November 2012 09:41

jonathan
Participant assidu
Date d'inscription: 16 May 2006
Messages: 263

Re: wfs-t tinyows openlayers

En utilisant une table dont la géométrie est multipoint, ca avance.

http://www.forumsig.org/showthread.php?t=35546

Hors ligne

 

Pied de page des forums

Powered by FluxBB