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

#1 ven. 21 octobre 2011 10:21

Thierry21
Membre
Date d'inscription: 10 août 2006
Messages: 44

[OpenLayers + Mapguide]

bonjour à tous,
j'essaye sans succès d'afficher une couche publiée par Mapguide en WFS dans Openlayers.
J'accède à cette couche WFS via Gaia ou QuantumGis sans problème.
De même j'arrive à accéder à des ressources WFS "publiques" via Openlayers.
C'est la combinaison WFS issu de Mapguide / Openlayers que je n'arrive pas à faire fonctionner.
J'ai du code de la forme :

Code:

        
var url = "http://127.0.0.1:80/mapguide/mapagent/mapagent.fcgi?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=ns128881253:macouche&SRSNAME=EPSG:27572";
                var layer = new OpenLayers.Layer.Vector("WFS", {
                    protocol: new OpenLayers.Protocol.WFS({
                        url:  url

                    })
                });

quand je copie l'url dans un navigateur, j'obtiens bien une description de mes données.
Quelqu'un saurait-il comment paramétrer le protocole WFS (featuretype, featureNS, ...etc ) dans Openlayers pour accéder au service WFS de Mapguide ?

Merci de vos réponses.

Hors ligne

 

#2 ven. 21 octobre 2011 13:10

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

Re: [OpenLayers + Mapguide]

Bonjour,

Tu es sur que les autres URL fonctionnent ? Parce que le paramètre de la variable URL est erroné ca serait plutôt ca :  http://127.0.0.1:80/mapguide/mapagent/mapagent.fcgi?

Autre question : la projection de ton projet est bien en 27572 ? Sinon il faut reprojeter à la volée.

Y.

Hors ligne

 

#3 ven. 21 octobre 2011 14:53

Thierry21
Membre
Date d'inscription: 10 août 2006
Messages: 44

Re: [OpenLayers + Mapguide]

Bonjour,
merci pour cette réponse.

J'avais déjà essayé avec l'url proposée (c'est d'ailleurs comme ça que j'accède aux données WMS de mon serveur) mais ça ne donnait rien de plus.
Qu'entend tu par "la projection de ton projet" ?
Si c'est la projection de ma carte Openlayers la réponse est oui . Je la déclare comme ça :

Code:

var mapBounds = new OpenLayers.Bounds(801364.475487,1995250.205884,912428.503013,2133566.128722);
        var mapoptions = {
            maxExtent: mapBounds,
            maxResolution:'auto',
            projection: 'EPSG:27572',
            units: 'm'
            };

(c'est cohérent avec le SRS de ma source)

Si, coté Mapguide, je publie en WMS un calque basé sur cette ressource (avec les mêmes paramètres de de l'objet map coté Openlayers) : ça fonctionne.
Idem si je déclare un layer de type OpenLayers.Layer.MapGuide, en passant une MapDefinition :  ça fonctionne.

Hors ligne

 

#4 ven. 21 octobre 2011 15:18

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

Re: [OpenLayers + Mapguide]

Bonjour,

Ca me parait bon. Par contre ton objet protocol est incorrecte :

var protocol = new OpenLayers.Protocol.WFS({
        version: "1.1.0",
        url:  "http://demo.opengeo.org/geoserver/wfs",
        featureType: "tasmania_roads",
        featureNS: "http://www.openplans.org/topp",
        geometryName: "the_geom"
    });

Y.

Hors ligne

 

#5 lun. 24 octobre 2011 11:37

Thierry21
Membre
Date d'inscription: 10 août 2006
Messages: 44

Re: [OpenLayers + Mapguide]

Merci,

j'avais déjà vu cet exemple.

mais c'est justement cet objet protocol que je n'arrive pas à configurer. smile

Dans QuantumGis ma ressource est vue ainsi :

Code:

http://127.0.0.1:80/mapguide/mapagent/mapagent.fcgi?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=ns128881253:macouche&SRSNAME=EPSG:27572

Coté Openlayers, je fais correspondre featuretype avec TYPENAME et version avec VERSION

Code:

var url2="http://127.0.0.1:80/mapguide/mapagent/mapagent.fcgi?";

        var layer = new OpenLayers.Layer.Vector("WFS", {
                    protocol: new OpenLayers.Protocol.WFS({
                    version: "1.0.0",
                    url:  url2,
                    featureType: "ns128881253:macouche",
                    geometryName: "the_geom"
                    })
                });

ma "feature" comporte bien un champ géométrique appelé "the_geom".
Je ne sais pas à quoi correspond featureNS alors je ne l'ai pas mis.

j'ai un message d'erreur pas vraiment clair :

Code:

Message : 'null' a la valeur Null ou n'est pas un objet.
Ligne : 512
Caractère : 237
Code : 0
URI : http://127.0.0.1/mapguide/OpenLayers-2.11/OpenLayers.js

ça a un rapport avec le centrage/zoom de la couche, peut-être un bug dans le traitement du SRS ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |