Personnalisation de l'aspect des objets mappables d'une carte

Le progiciel net.rim.device.api.lbs.maps.view contient les classes Style et StyleSet, qui vous permettent de personnaliser l'aspect de tout objet mappable affiché sur une carte. Les styles vous permettent de personnaliser vos cartes et de leur donner un aspect uniforme de façon analogue à l'application de styles CSS.

La classe Style fournit les propriétés suivantes, qui définissent les caractéristiques visuelles d'objets mappables.

  • Bord : indique les propriétés du contour de l'objet mappable (couleur, opacité et taille).
  • Remplissage : indique des propriétés de la zone interne de l'objet mappable (couleur et opacité).
  • Libellé : indique les propriétés du libellé de l'objet mappable (couleur et opacité du remplissage, alignement, couleur, nom de famille, opacité, taille et style de la police d'affichage).

La classe Style contient également les constantes de la taille du contour et de l'alignement de texte (par exemple, EDGE_SIZE_LARGE et FONT_ALIGNMENT_RIGHT). Vous pouvez trouver les constantes concernant la police d'affichage et la couleur respectivement dans les classe Font et Color. L'opacité est représentée par un nombre entier entre 0 et 255, où 0 équivaut à transparent et 255 à opaque.

La classe StyleSet représente un ensemble de styles individuels utilisés par une carte pour afficher les objets mappables à l'écran. Les cartes disposent d'un ensemble de styles par défaut que vous pouvez récupérer et remplacer par vos propres styles.

Un objet StyleSet peut inclure trois types différents de styles : un style de base, un style de classe et un style d'identifiant. Le style de base définit un style pour tous les objets mappables. Le style de classe définit un style pour tous les objets mappables d'une classe particulière. Le style d'identifiant définit un style pour tous les objets mappables d'un identifiant en particulier. Pour attribuer un identifiant à un objet mappable, vous devez appeler AbstractMappable.setStyleId() sur l'objet.

Vous pouvez également créer des styles héritant des propriétés de styles parents (par exemple, un style d'identifiant peut hériter d'un style de classe ou de base). Pour hériter d'une propriété d'un style parent, vous pouvez spécifier l'une des constantes INHERIT, par exemple, COLOR_INHERIT ou EDGE_SIZE_INHERIT.

Création d'une carte

RichMapField map = MapFactory.getInstance().generateRichMapField();

Récupération de l'ensemble de styles de la carte

StyleSet styles = map.getMapField().getDrawingStyles();

Définition de styles et application à un ensemble de styles

// Base style for the entire map.
Style baseStyle = new Style();
baseStyle.setLabelFontFamilyName("arial");
styles.setBaseStyle( baseStyle );
// Style for the MapLocation class.
Style classStyle = new Style();
classStyle.setLabelFillColor( Color.BLACK );
classStyle.setLabelFontColor( Color.WHITE );
classStyle.setEdgeColor( Color.WHITE );
styles.addClassBasedStyle( MapLocation.class, classStyle );
// Style for a specific ID.
Style idStyle = new Style();
classStyle.setEdgeColor( Color.RED );
styles.addIdBasedStyle("ID_1", idStyle);

Création d'un objet mappable utilisant un style d'identifiant

MapLocation locationTwo = new MapLocation( 4500100, -7499900, "Loc. 2", "Uses an ID style" );
locationTwo.setStyleId("ID_1");

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.