#1 Mon 06 April 2009 11:33
- jim06200
- Participant occasionnel
- Date d'inscription: 6 Apr 2009
- Messages: 28
OpenLayers + Geoserver requête wfs projection
Bonjour tous le monde,
Première question: ou je peux telecharger une version d'openlayers ou il y a OpenLayers.Strategy.Save() et OpenLayers.Protocol.WFS car les versions que j'ai me mette que sse ne sont pas des constructeurs :s
J'utilise du coup l'url suivante : http://dev.openlayers.org/sandbox/ad.../OpenLayers.js
Je voudrais visualiser mes données via WFS et les afficher dans openlayers sur un fond google.
Le problème est que mes données s'affiche correctement en wms mais en wfs elle ne s'affiche pas ou il faut
Les options de ma map:
Code:
var options = { //projection: new OpenLayers.Projection("EPSG:900913"), projection: new OpenLayers.Projection("EPSG:900913"), //displayProjection: new OpenLayers.Projection("EPSG:4326"), units: "m", maxResolution: 'auto', numZoomLevels: 9, maxExtent: new OpenLayers.Bounds(-20037508, -20037508,20037508, 20037508.34) };
Ma requête wfs :
Code:
var wfsF = new OpenLayers.Layer.WFS( "France WFS","http://localhost:8080/geoserver/wfs?", {typename: 'topp:dep_france_dom'}, { layers: 'dep_france_dom', featureNS: 'http://www.openplans.org/topp', srs: "EPSG:27572", style:fStyle, extractAttributes: true }, {'reproject': true} );
2ème requête :
Code:
var wfsfra = new OpenLayers.Layer.Vector( "fra", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: new OpenLayers.Projection("EPSG:27572"), protocol: new OpenLayers.Protocol.WFS({ srsName: "EPSG:27572", url: "http://localhost:8080/geoserver/wfs", featureType: "dep_france_dom", featureNS: "http://www.openplans.org/topp", }) } );
Mes données s'affiche dans l'afrique et non sur la france.
J'ai testé avec le shapefile test de geoserver "states" qui est en wgs84(EPSG:4326) et la première requête ne marche pas mais la deuxième oui et les données s'affiche bien ou il faut.
Je n'en peut pu j'ai essayé pas mal de configuration mais le résultat et toujour le même .
Hors ligne
#2 Mon 06 April 2009 11:42
Re: OpenLayers + Geoserver requête wfs projection
Bonjour,
Il y a une erreur dans la gestion de la projection
srs: "EPSG:27572"
alors que tu as définie la projection de ta carte à 900913. Soit tu configures la reprojection dans OL, soit tu appelles ton WFS à la projection 900913 et tu reprojetes côté serveur, ce qui est préférable à mon avis.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 08 April 2009 11:27
- jim06200
- Participant occasionnel
- Date d'inscription: 6 Apr 2009
- Messages: 28
Re: OpenLayers + Geoserver requête wfs projection
Bonjour Yves,
J'ai mit srs: "EPSG:900913" mais rien ne change
Code:
var wfsS = new OpenLayers.Layer.WFS( "States WFS","http://localhost:8080/geoserver/wfs", {typename: 'topp:dep_france_dom'}, { layers: 'dep_france_dom', featureNS: 'http://www.openplans.org/topp', srs: "EPSG:900913", extractAttributes: true }, {'reproject': true} );
ou
Code:
var wfs = new OpenLayers.Layer.Vector( "france", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: new OpenLayers.Projection("EPSG:900913"), protocol: new OpenLayers.Protocol.WFS({ srsName: "EPSG:900913", url: "http://localhost:8080/geoserver/wfs", featureType: "dep_france_dom", featureNS: "http://www.openplans.org/topp", }) } );
La ma france est toujours en afrique.
Je ne voie pas comment faire je n'ai plus d'idées .
Merci de ton aide.
Dernière modification par jim06200 (Wed 08 April 2009 11:35)
Hors ligne
#4 Wed 08 April 2009 13:31
- jim06200
- Participant occasionnel
- Date d'inscription: 6 Apr 2009
- Messages: 28
Re: OpenLayers + Geoserver requête wfs projection
C'est j'ai résolu le prolème il y avait quelque problème de syntaxe apparemment...
Voici mes requêtes:
Code:
var wfsS = new OpenLayers.Layer.WFS( "France WFS","http://localhost:8080/geoserver/wfs", { typeName: 'dep_france_dom', srsName: "EPSG:900913", extractAttributes: true }, {'reproject': true} );
ou
Code:
var wfs = new OpenLayers.Layer.Vector( "France wfs", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: new OpenLayers.Projection("EPSG:900913"), protocol: new OpenLayers.Protocol.WFS({ srsName: "EPSG:900913", url: "http://localhost:8080/geoserver/wfs", featureType: "dep_france_dom", version:'1.1.0', featureNS: "http://www.openplans.org/topp", }) } );
Voilou jspr que sa en aidera d'autres ^^
Bye
Hors ligne
#5 Wed 08 April 2009 15:16
- jim06200
- Participant occasionnel
- Date d'inscription: 6 Apr 2009
- Messages: 28
Re: OpenLayers + Geoserver requête wfs projection
Par contre si quelqu'un c'est ou je peut telecharger une librairie openlayers avec OpenLayers.Strategy.Save() et OpenLayers.Protocol.WFS() sa serai cool car je ne trouve pas
Merci
Hors ligne
#6 Wed 08 April 2009 15:26
Re: OpenLayers + Geoserver requête wfs projection
Bonjour,
Il n'y a qu'une bibliothèque OpenLayers et elle est disponible ici : http://openlayers.org
Si vous désirez utiliser une version de développement comme le laisse supposer le fait que vous souhaitez une méthode spécifique, vous pouvez soit récupérer les fichiers svn, soit utiliser la version "compilé" chaque nuit : http://dev.openlayers.org/
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Wed 08 April 2009 17:33
- jim06200
- Participant occasionnel
- Date d'inscription: 6 Apr 2009
- Messages: 28
Re: OpenLayers + Geoserver requête wfs projection
Merci Yves j'ai telecharger directement les fichiers pour les ajouter a ma librairie
Euh encore une question :$
Je voulais savoir si il était possible de dire a openlayers de rajouter une option a la BBOX car mes données wfs s'affiche que lorsque le zoom est petit. (lorsque je visualise le monde je voie les données wfs et losque j'arrive juste sur la france elle ne sont plus visible)
Voila la requête de openlayers:
http://localhost:8080/geoserver/wfs?...%2Ftopp&style=[object%20Object]&srsName=EPSG%3A900913&extractAttributes=true&SERV ICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG% 3A900913&BBOX=-3033021.2817773437,3434162.806416014,4794130.41322 2657,8326132.615791013
Elle ne me renvoi rien
Je test celle ci dans mon navigateur:
http://localhost:8080/geoserver/wfs?...%2Ftopp&style=[object%20Object]&srsName=EPSG%3A900913&extractAttributes=true&SERV ICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG% 3A900913&BBOX=-3033021.2817773437,3434162.806416014,4794130.41322 2657,8326132.615791013,ESPG:4326
Si je met EPSG:900913 cela fonctionne aussi
Celle ci me renvoi des données (juste je ne sais pas)
Des idées?
Merci
Jim
Dernière modification par jim06200 (Wed 08 April 2009 17:34)
Hors ligne
#8 Wed 08 July 2009 16:40
- icadedt
- Participant assidu
- Lieu: ici et là
- Date d'inscription: 21 Jul 2006
- Messages: 478
Re: OpenLayers + Geoserver requête wfs projection
pour revenir à ces histoire de projection google mercator :
d'abord pour commencer, vous trouverez une illustration de mon probleme en piece jointe
dans ma carte openlayers , jai 3 couches :
- une venant de google
-une venant de mon mapserver en format mapserver
- une venant de mon mapserver en format WFS
les 2 dernieres se connectent au MêMe MAPFILE
voici le code de ces 2 couches :
Code:
var layer3 = new OpenLayers.Layer.MapServer( "COUCHE MAPSERVER (violet)", "http://localhost:8080/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/testjuin.map", {layers: ['mespoint']}, {gutter: 1, isBaseLayer:false, reproject:true, transparent: "true", format: "image/png"}); var layer = new OpenLayers.Layer.WFS( "COUCHE WFS (orange)","http://localhost:8080/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/testjuin.map", { typeName: 'mespoint', srsName: "EPSG:900913", extractAttributes: true }, {reproject: true} );
le probleme c'est que ma couche mapserver (couche avec objets en violet) se cale bien avec la couche de google mais pas ma couche WFS
code de mon mapfile :
Code:
MAP NAME "Sans_nom2" size 200 200 TRANSPARENT ON STATUS ON EXTENT -533163.587959 5065853.405045 1064212.328233 6636737.874231 # EXTENT -73986.608324 22165.544960 121281.419623 250218.765307 UNITS METERS IMAGECOLOR 100 255 255 SYMBOLSET "..\symbols\symbols35.sym" SYMBOL NAME 'interstate' TYPE pixmap IMAGE 'C:\ms4w\apps\tutorial\symbols\interstate.png' END PROJECTION "init=epsg:900913" ##recommended END LAYER NAME "mespoint" TYPE POLYGON MINSCALE 0 MAXSCALE 100000000 STATUS DEFAULT METADATA "wms_title" "mespoints" ### WFS "wfs_title" "mespoints" "wfs_onlineresource" "http://localhost:8080/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/testjuin.map&?" ## Recommended "wfs_srs" "epsg:900913" ## Recommended "gml_featureid" "ID" "gml_include_items" "all" END PROJECTION "init=epsg:4326" ##recommended, cette projection d'origine des données END DUMP TRUE CONNECTIONTYPE OGR CONNECTION "C:\ms4w\apps\tutorial\data\REG_france.TAB" CLASS NAME "mespoint" STYLE COLOR 105 100 232 OUTLINECOLOR 32 32 32 END #SYMBOL "interstate" #ou bien "interstate" #color 100 100 100 #OUTLINECOLOR 12 30 100 #SIZE 20 #END END # Class section END # LAYER Section END # MapFile
d'avance merci
Dernière modification par icadedt (Wed 08 July 2009 17:49)
Hors ligne