Bonjour,
Dans votre extrait de GPX, il semble qu'il n'y ait qu'un seul tracé. En fonction de quels paramètres voudriez vous changer de style ?
En règle générale, pour modifier les styles de certains éléments d'un fichier KML, ou GPX, il faut jouer sur le paramètre styleMap de la couche KML (ou GPX).
1. Définir la fonction qui va récupérer et tester l'attribut de votre choix, par exemple :
1 2 3 4 5 6 7
| function getColorFromName(feature) {
if (feature.attributes.name == 'rando') {
return "red";
} else {
return "blue";
}
} |
2. Modifier votre styleMap pour qu'il pointe vers cette fonction lors de la définition de la couleur de contour (par exemple)
Par exemple, si vous avez
1 2 3 4 5 6 7 8 9
| viewer.getMap().addLayer(
'GPX',
'Route',
'./themes/api/img/assets/routes.gpx',
{
visibility:true,
styleMap:myStyleMap,
}
); |
comme dans l'exemple du tutoriel, il vous faut modifier l'attribut que vous voulez faire varier (ici la couleur de contour) dans votre variable myStyleMap :
- en remplaçant la couleur du contour par "${getColor}"
- en ajoutant un paramètre 'context', qui permet de désigner la fonction qui va effectivement tester la valeur des attributs de votre fichier KML ou GPX : ici getColorFromName
1 2 3 4 5 6 7 8 9 10
| var myStyleMap = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
'pointRadius': 10,
'strokeColor': "${getColor}",
'fillColor': '#ff0000'
},{
// Définition du contexte définissant la couleur de remplissage des ponctuels
context:{getColor: getColorFromName}
})
}); |
Partager