#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
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
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