#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
Re: [OpenLayers] Problème WFS et Strategy
Bonjour,
Regarde le DOM pour retrouver les attributs qui ont été déplacé 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
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