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 Thu 28 October 2010 15:33

pako
Juste Inscrit !
Date d'inscription: 18 Jun 2010
Messages: 7

Affichage multiplié d'un élément avec le renderer Canvas d'Openlayers

Bonjour,
Le sujet n'est peut être pas clair donc je vais essayer d'expliquer un peu mieux mon problème.
J'ai une couche openlayers sur laquelle j'affecte un style et à laquelle j'ajoute un renderer Canvas
qui permet une meilleure fluidité que le SVG ... seul problème lors du zoom ou du déplacement,
mon objet est dessiné plusieurs fois (de 2 à 4 en général) à des endroits différents (parmi tout ces objets il y en a un à la bonne place).

Je précise que le problème ne se produit que lorsque j'affecte un externalGraphic sur l'objet,
car quand j'utilise les symboles basiques d'OpenLayers tout fonctionne très bien...
Pour l'instant je m'en sors à peu près grâce à un strategy refresh mais c'est pas l'idéal.

Je vous joint la définition de ma couche et de son style.

Voici ma couche

var incident_existant = new OpenLayers.Layer.Vector("Incidents", {
                        styleMap: style_incident,displayInLayerSwitcher: false, renderers: ['Canvas'],
            strategies: [new OpenLayers.Strategy.Fixed(),new OpenLayers.Strategy.Refresh({interval: 15000})],               
                        protocol: new OpenLayers.Protocol.HTTP({url: "./data/points.json",format: new OpenLayers.Format.GeoJSON()})
});

et son style

var style_incident = new OpenLayers.StyleMap({
            "default": new OpenLayers.Style(null, {rules: [new OpenLayers.Rule({
                            symbolizer: {"Point": { externalGraphic: "./images/incident.jpg",
                            pointRadius: 20,
                            fillOpacity: 1
                        }}})]}),
            "select":  new OpenLayers.Style(null, {rules: [new OpenLayers.Rule({
                            symbolizer: {"Point": { externalGraphic: "",
                            pointRadius: 10,
                            fillColor: "red",
                            fillOpacity: 0.7,
                            strokeOpacity: 1,
                            strokeColor: "red"
            }}})]})
    });

J'espère que quelqu'un pourra m'aider car je bloque sur ce problème depuis un bout de temps et je pense que la solution n'est pas très compliquée pourtant.

Par avance merci de votre aide.

Dernière modification par pako (Thu 28 October 2010 15:36)

Hors ligne

 

#2 Thu 28 October 2010 16:35

René-Luc D'Hont
Participant assidu
Date d'inscription: 7 Nov 2006
Messages: 328
Site web

Re: Affichage multiplié d'un élément avec le renderer Canvas d'Openlayers

Quelle version d'OpenLayers ?

Et si ça se trouve c'est un bug corrigé dans la version 2.10 ou pas.

Hors ligne

 

#3 Thu 28 October 2010 17:23

pako
Juste Inscrit !
Date d'inscription: 18 Jun 2010
Messages: 7

Re: Affichage multiplié d'un élément avec le renderer Canvas d'Openlayers

J'utilise la version 2.10 d'OpenLayers.

J'ai déjà fait le tour des bugs Openlayers et je n'ai rien trouvé de similaire à mon problème.

Hors ligne

 

Pied de page des forums

Powered by FluxBB