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

State Of The Map 2024

#1 Fri 19 June 2009 15:48

lacausse
Juste Inscrit !
Date d'inscription: 25 Mar 2009
Messages: 6

[OpenLayers] Problème WFS et Strategy

Bonjour,

J'ai un petit problème avec un projet.

Je dois représenter des bateaux sur une carte. Les bateaux correspondent à des triangles.
Ils doivent donc s'afficher en fonction de la direction.

Je reçois les infos par WFS.

J'ai réussi avec ce code :

Code:

var style_Mobile = new OpenLayers.Style({
    externalGraphic: "images/vesselred.png",
    graphicWidth: 24,
    graphicHeight: 24,
    graphicXOffset: -12,
    graphicYOffset: -12,
    rotation: "${angle}",
    fillOpacity: 1,
},{
    context: {
        angle: function(feature){
            var cog = feature.attributes.cog;
            var hdg = feature.attributes.hdg;
            if (cog >= 0) {
                return (cog % 360 - 90);                
            } else {
                if (hdg >= 0) {
                    return (hdg % 360 - 90);
                }
                else {
                    return 270;
                }
            }
        }
    }
});

var wfsMobile = new OpenLayers.Layer.WFS(
    "Mobile",
    "http://localhost/cgi-bin/mapserv.exe?map=F:/WFS/test.map&",
    {
    typename : "Coordinate"
    }
    ,
    {
    extractAttributes: true,
    styleMap: new OpenLayers.StyleMap({
        "default": style_Mobile
    })
    }
);

map.addLayer(wfsMobile);

Cependant, avec le nombre élevé de bateau dans certaine zone (port), j'ai essayé d'utiliser :

Code:

strategies: [
               new OpenLayers.Strategy.Fixed(),
               new OpenLayers.Strategy.Cluster()                 
          ]

Inclut dans ce code :

Code:

var wfs = new OpenLayers.Layer.Vector("WFS",
     {
         strategies: [
               new OpenLayers.Strategy.Fixed(),
               new OpenLayers.Strategy.Cluster()                 
          ],
          protocol: new OpenLayers.Protocol.HTTP({
               url: "http://localhost/cgi-bin/mapserv.exe?map=F:/WFS/test.map",
               params: {
                    format: "WFS",
                    service: "WFS",
                    request: "GetFeature",
                    srs: "EPSG:4326",
                    VERSION : "1.0.0",
                    typename : 'Coordinate'
               },
               format: new OpenLayers.Format.GML()
          }),
          styleMap:new OpenLayers.StyleMap({
               "default": style_Mobile
          })
     },
     {
          extractAttributes:true,
          displayInLayerSwitcher: true                       
     });

Au niveau du nombre de bateau affichés c'est parfait.

Par contre, mes bateaux n'ont plus la bonne orientation.
C'est normal lorsqu'il représente plus que un bateau mais pas quand il y en a qu'un seul.

La différence vient de "feature.attributes" qui ne renvoie plus mes infos mais uniquement l'objet "count " correspondant au nombre de bateaux.

Est ce que quelqu'un à une idée pour que je puisse utiliser Strategy tout en continuant de recevoir mes données WFS afin de les exploiter ?

Merci

Nicolas.

Hors ligne

 

#2 Fri 19 June 2009 16:03

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

Re: [OpenLayers] Problème WFS et Strategy

Bonjour,

Regarde le DOM pour retrouver les attributs qui ont été déplacé wink genre cluster.attributes.Coordinate si tu lui as fournies la manière de créer ces attributs (somme, moyenne etc.).

Mon PC rame trop pour que j'aille chercher plus d'information wink

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 Fri 19 June 2009 17:25

lacausse
Juste Inscrit !
Date d'inscription: 25 Mar 2009
Messages: 6

Re: [OpenLayers] Problème WFS et Strategy

Merci pour ta rapide réponde.

J'ai fait quelques recherches mais j'ai rien trouvé.

Je me demande si le problème vient pas de cette partie ? :

Code:

params: {
                    format: "WFS",
                    service: "WFS",
                    request: "GetFeature",
                    srs: "EPSG:4326",
                    VERSION : "1.0.0",
                    typename : 'Coordinate'
               },

Qu'est ce que tu entends par :

si tu lui as fournies la manière de créer ces attributs

Hors ligne

 

#4 Tue 23 June 2009 13:53

lacausse
Juste Inscrit !
Date d'inscription: 25 Mar 2009
Messages: 6

Re: [OpenLayers] Problème WFS et Strategy

Personne n'a une idée ?

Merci

Nicolas.

Hors ligne

 

#5 Tue 23 June 2009 15:12

lacausse
Juste Inscrit !
Date d'inscription: 25 Mar 2009
Messages: 6

Re: [OpenLayers] Problème WFS et Strategy

J'ai trouvé :

il faut remplacer :

Code:

feature.attributes

par

Code:

feature.cluster[0].data

Merci Yves de m'avoir mis sur le bon chemin.

Nicolas.

Hors ligne

 

Pied de page des forums

Powered by FluxBB