IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Changer le style d'un OpenLayers.Layer.Boxes


Sujet :

IGN API Géoportail

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut Changer le style d'un OpenLayers.Layer.Boxes
    Bonjour,

    j’essaie de changer le style par défaut d'une Box, cette dernière s'affiche bien, mais ne prend pas les paramètres souhaités en compte.

    Y a t-il une erreur dans mon code, où doit on pratiquer différemment ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function drawPolygonOwner(bounds)
    {
    	var style = new OpenLayers.Style({
    		fillColor: "blue",
    		strokeColor: "blue",
    		strokeWidth: 1
    		});
    	bounds.transform(OpenLayers.Projection.CRS84, viewer.getMap().getProjection());	
    	var boxes  = new OpenLayers.Layer.Boxes( "Emprise", {
    		styleMap: new OpenLayers.StyleMap(style)
    		} );	
    	var box = new OpenLayers.Marker.Box(bounds);
    	boxes.addMarker(box);		
    	viewer.getMap().addLayer(boxes);
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Les éléments dessinés sont des OpenLayers.Marker.Box, le styleMap ne s'appliquent pas à eux

    Il y a par contre une méthode setBorder() sur ces objets qui permet de changer la couleur ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Entre temps, j'ai trouvé cet exemple qui donne le résultat attendu, mais je vais quand même essayer avec le setBorder().

    Pas sûr d'y arriver d’ailleurs !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function drawPolygonOwner(bounds)
    {
    	var style = new OpenLayers.Style({
    		fillColor: "transparent",
    		strokeColor: "blue",
    		strokeWidth: 2
    		});
    	var boxes  = new OpenLayers.Layer.Vector( "Emprise" ,{
    		styleMap: new OpenLayers.StyleMap(style)
    			})         
    	bounds.transform(OpenLayers.Projection.CRS84, viewer.getMap().getProjection());				
    	var  box = new OpenLayers.Feature.Vector(bounds.toGeometry());		
    	boxes.addFeatures(box);
    	viewer.getMap().addLayer(boxes);	
    }

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    C'est normal que l'exemple trouvé fonctionne, il utilise OpenLayers.Layer.Vector qui sait utiliser les styles sur les OpenLayers.Feature.Vector

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    J'arrivais à comprendre cet exemple mais je souhaitais savoir où cela péché dans la première façon de faire... et merci pour l’éclaircissement !!!!

    Finalement, je vais partir sur la première idée "new OpenLayers.Layer.Boxes("Emprise");" puisque c'est bon maintenant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function drawPolygonOwner(bounds)
    {
    	var box  = new OpenLayers.Layer.Boxes("Emprise");
    	bounds.transform(OpenLayers.Projection.CRS84, viewer.getMap().getProjection());	
    	var boxMarker = new OpenLayers.Marker.Box(bounds);
    	boxMarker.setBorder("blue", 2);	
    	box.addMarker(boxMarker);
    	viewer.getMap().addLayer(box);	
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/11/2005, 14h05
  2. [JTable] Changer le style de certaines cellulles
    Par bourinator dans le forum Composants
    Réponses: 4
    Dernier message: 08/10/2005, 14h40
  3. Changer le style en JavaScript [besoin d'aide]
    Par maximenet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/09/2005, 17h21
  4. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33
  5. Changer le style d'une cellule
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2005, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo