2013-04-03 1 views
1

J'ai une carte ESRI qui contient 11 polylignes. Je voudrais que lorsqu'un utilisateur passe sur une ligne, la ligne change de couleur et change de largeur. Lorsqu'un utilisateur quitte la ligne, la ligne reprend sa couleur et sa largeur d'origine. Toutes ces lignes sont sur la même couche (var atteint).Changer la couleur et la largeur de Polyline - API JavaScript ESRI

J'ai le code qui détecte lorsqu'un mousesover utilisateur ou mouseout d'une ligne:

dojo.connect(reaches, "onMouseOver", function(evt) 
{ }); 

dojo.connect(reaches, "onMouseOut", function() 
{ }); 

Ils détectent correctement lorsque la souris sur une ligne et lorsque la souris est hors ligne. La façon dont j'ai ces 2 fonctions, ils détectent quand la souris est sur n'importe quelle ligne dans la couche reaches. Je voudrais que la fonction onMouseOver sache quelle ligne a été survolée et change la couleur et la largeur de la ligne. Comment puis-je faire cela?

+0

Avez-vous résolu ce problème? Je suis confronté au même problème –

Répondre

1

Je voudrais la fonction onMouseOver de savoir quelle ligne a été moucheté sur

Le paramètre evt donné à votre fonction de gestionnaire d'événements doit avoir une propriété .graphic, qui contient la géométrie de la fonction que vous » re planant au-dessus.

et changer la couleur et la largeur de la ligne

Vous ne pouvez pas le faire directement sur la fonction sans jouer avec ses valeurs de champ, mais vous pouvez ajouter une nouvelle fonctionnalité à la couche map.graphics pour servir de fonctionnalité en surbrillance. Il y a un bon exemple sur ESRI's forums:

dojo.connect(pdaGraphicsLayer, "onMouseOver", function(evt) { 
map.graphics.clear(); 
var highlightGraphic = new esri.Graphic(evt.graphic.geometry,highlightSymbol); 
map.graphics.add(highlightGraphic); 
}); 
+0

Comment cela peut-il être fait sans événement mouseover. Je veux dire que je voulais changer la largeur et la hauteur de toutes les polylignes quand un utilisateur clique sur le bouton? –

Questions connexes