Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Wed 27 April 2011 12:06

jack tippit
Participant actif
Lieu: Limoges
Date d'inscription: 3 Dec 2008
Messages: 116
Site web

[OpenLayers] l'utilisation de new OpenLayers.Layer.Vector pour WFS

Bonjours à tous,
Je suis donc en train de mettre en place / apprendre a mettre en place un Serveur/interface cartographique. Je travaille avec MapServer et Openlayers Pour le client. J'arrive très bien à faire afficher des layers WMS, je voulais maintenant passé à la superposition de couches vectorielles, j’ai lu dans la documentation que OpenLayers.Layer.WFS allait être abandonné dans openlayers 3 donc je suis passé tout de suite a la méthode préconiser c'est a dire OpenLayers.Layer.Vector.
Mais il faut bien le dire voilà 4 jours que je me creuse la tête sur les quelques lignes de code JS... et j'avoue que je ne comprends pas le problème (un peu noob oui oui).
Donc je me suis dit que peut-être quelqu'un pourrait y jeter un oeil et relever les problèmes.
Donc voici mon code :

Code:

var wfs = new OpenLayers.Layer.Vector("vigneti", {
                                                                    projection: new OpenLayers.Projection("EPSG:32632"),
                                                                    protocol: new OpenLayers.Protocol.WFS({
                                                                        url: "http://localhost/cgi-bin/mapserv?map=/home/delaye/vector.map",
                                                                        //equivalent a layer pour les couche wms
                                                                        featureType: "vigneti",
                                                                        //srsName: "EPSG:32632",
                                                                        featureNS: "http://www.openplans.org/topp",
                                                                        }),
                                                                    //permet de gerer en dernier recourt le style de l'affichage des lignes, points, ou polygones
                                                                    styleMap: new OpenLayers.StyleMap({
                                                                                    strokeWidth: 3,
                                                                                    strokeColor: "#ffffff"
                                                                                })
                });
                map.addLayer(wfs);
                wfs.refresh();

Firebug me renvoie une erreur :

Code:

layer is undefined
[Break On This Error] layer.div.className="olLayerDiv";layer...ContainerDiv.appendChild(layer.div);}                      OpenLayers.js (line 839)

À noter quand j'interroge directement Mapserver, il me renvoie bien la réponse...

si vous avez une lumière pour moi ça :-)
Merci beaucoup

#################### MAJ############################################
En désespoir de cause j'ai tenté l'affichage de la couche wfs  avec OpenLayers.Layer.WFS et la au comble de mon incompréhension la couche s'affiche!!!!
voilà le code

Code:

VectVigneti = new OpenLayers.Layer.WFS("coperture del suolo", 
                                                "http://localhost/cgi-bin/mapserv?map=/home/delaye/vector.map",
                                                {typename: 'vigneti'}, 
                                                { extractAttributes: true});

Pour faire des tests, j'ai laissé l'autre méthode d'affichage avec OpenLayers.Layer.Vector. Or firebug me charge bien le layer "coperture del suolo" (je vois la requête avec get), mais pas de requête quand je lui demande d'afficher "vigneti"
Donc il doit y avoir un problème dans la manière dont je lui passe le paramètre... mais je ne sais toujours pas lequel... et suis toujours a la recherche de la lumière...

Dernière modification par jack tippit (Wed 27 April 2011 16:41)

Hors ligne

 

Pied de page des forums

Powered by FluxBB