Anpassen der Darstellung von Objekten auf einer Karte

Das net.rim.device.api.lbs.maps.view-Paket enthält die Klassen Style und StyleSet, mit denen Sie die Darstellung von abbildbaren Objekten, die auf einer Karte angezeigt werden, anpassen können. Mit Stilen können Sie Ihre Karten anpassen und ihnen eine einheitliche Darstellung verleihen (ähnlich wie bei CSS-Stilen).

Die Style-Klasse stellt die folgenden Eigenschaften bereit, die die visuellen Eigenschaften von abbildbaren Objekten definieren.

  • Rand: Legt Eigenschaften für den Rand um ein abbildbares Objekt fest (Farbe, Deckkraft und Größe).
  • Füllung: Legt Eigenschaften für den inneren Bereich eines abbildbaren Objekts fest (Farbe und Deckkraft).
  • Bezeichnung: Legt Eigenschaften für die Bezeichnung eines abbildbaren Objekts fest (Farbe und Deckkraft des Füllbereichs, Ausrichtung, Farbe, Familienname, Deckkraft, Größe und Stil der Schriftart).

Die Style-Klasse enthält auch Konstanten für die Randgröße und Textausrichtung (z. B. EDGE_SIZE_LARGEund FONT_ALIGNMENT_RIGHT). Dementsprechend sind auch Konstanten für die Schriftart und Farbe in den Klassen Font und Color vorhanden. Die Deckkraft wird durch eine Ganzzahl zwischen 0 und 255 dargestellt, wobei 0 transparent und 255 deckend ist.

Die StyleSet-Klasse stellt einen Satz von einzelnen Stilen dar, die eine Karte verwendet, um abbildbare Objekte auf einem Bildschirm zu rendern. Karten haben einen Standardstilsatz, den Sie abrufen und mit Ihren eigenen Stilen überschreiben können.

Ein StyleSet-Objekt kann drei verschiedene Arten von Stilen enthalten: einen Basisstil, einen Klassenstil und einen ID-Stil. Der Basisstil definiert einen Stil für alle abbildbaren Objekte. Der Klassenstil definiert einen Stil für alle abbildbaren Objekte einer bestimmten Klasse. Der ID-Stil definiert einen Stil für alle abbildbaren Objekte einer bestimmten ID. Um einem abbildbaren Objekt eine ID zuzuweisen, müssen Sie auf dem Objekt AbstractMappable.setStyleId() aufrufen.

Sie können auch Stile erstellen, die ihre Eigenschaften von übergeordneten Stilen erben (z. B. kann ein ID-Stil seine Eigenschaften von einem Klassen- oder Basisstil erben). Um eine Eigenschaft von einem übergeordneten Stil zu erben, können Sie eine der INHERIT-Konstanten (z. B. COLOR_INHERIT oder EDGE_SIZE_INHERIT) festlegen.

Erstellen einer Karte

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

Abrufen des Stilsatzes für die Karte

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

Definieren von Stilen und Anwenden von Stilen auf einen Stilsatz

// 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);

Erstellen eines abbildbaren Objekts, das einen ID-Stil verwendet

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

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.