Étiquetage et définition de la visibilité des positions sur une carte

Vous pouvez attribuer des balises aux positions stockées dans une classe MapDataModel. Chaque classe MapField est associée à une instance de MapDataModel. La classe MapDataModel fournie dans le progiciel net.rim.device.api.lbs.maps.model, représente un conteneur. Vous pouvez ajouter au conteneur des positions et des données associées aux positions en appelant MapDataModel.add(). N'importe quel élément et ses données associées sont considérés comme des éléments mappables dans le conteneur.

Vous pouvez regrouper les éléments mappables en attribuant des balises aux éléments (par exemple, tous les emplacements à caractère professionnel ont une balise « professionnel »). Vous pouvez appeler MapDataModel.add() ou MapDataModel.tag() pour étiqueter les éléments mappables dans un conteneur MapDataModel. La méthode add() vous permet d'ajouter un élément mappable au conteneur et de spécifier une balise pour l'élément. La méthode tag() vous permet de spécifier une balise pour un seul élément mappable du conteneur. Plusieurs emplacements peuvent avoir la même balise (par exemple, toutes les filiales RIM pourront être étiquetées « RIM »), et une seule position peut avoir plusieurs balises (par exemple, une résidence peut comporter des balises pour « Sarah » et « Paul »).

Vous pouvez spécifier quels éléments étiquetés stockés dans MapDataModel sont visibles ou masqués sur une carte. Par défaut, tous les éléments de MapDataModel sont visibles. Par exemple, vous pouvez ajouter la balise « parc » à plusieurs positions et spécifier que seules les positions avec l'étiquette « parc » soient affichées sur la carte. Vous pouvez spécifier les éléments visibles sur la carte en appelant d'abord MapDataModel.setVisibleNone() pour désactiver la visibilité de tous les éléments, puis appeler MapDataModel.setVisible() pour activer la visibilité des éléments spécifiés.

Échantillon de code : étiquetage de positions à l'aide de la méthode MapDataModel.add()

Dans l'échantillon de code suivant, trois positions sont définies, puis ajoutées et étiquetées à l'aide de la méthode MapDataModel.add(). Seules les positions comportant une étiquette « RIM » sont visibles sur la carte.

MapDataModel model = map.getModel();
MapLocation office01 = new MapLocation( 43.47550, -80.53900, "Head Office", null );
MapLocation office02 = new MapLocation( 43.48261, -80.54169, "Manufacturing", null );
MapLocation justinHome = new MapLocation( 43.47751, -80.54817, "Justin - Home", null);
model.add( (Mappable) office01, "RIM");
model.add( (Mappable) office02, "RIM");
model.add( (Mappable) justinHome, "home");
model.setVisibleNone();
model.setVisible( "RIM" );

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