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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 sad

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 sad

Merci

Hors ligne

 

#6 Wed 08 April 2009 15:26

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

Pied de page des forums

Powered by FluxBB