Guide de développement
Local Navigation
- Présentation des services géodépendants
- Recherche d'une position
- Géocodage et géocodage inversé
- Réception d'alertes de proximité par geofencing
- Identification de l'itinéraire ou de l'orientation
- Obtention du temps de trajet, de la distance et de l'heure de départ estimés
- Visualisation d'une position à l'aide de cartes
- Personnalisation de l'aspect d'une carte
- Intégration à BlackBerry Maps
- Pour plus d'informations
- Glossaire
- Envoi de commentaires
- Informations juridiques
Documentation produit
>
Documentation pour les développeurs
>
Guides de développement et référence API pour Java
>
Guide de développement
Location-Based Services - BlackBerry Java SDK - 7.0
Étiqueter et définir la visibilité des positions sur une carte
Les étapes suivantes décrivent comment attribuer des tags aux éléments mappables qui sont stockés dans une classe MapDataModel. La visibilité est définie de sorte à afficher les positions indiquées comme étant à caractère « professionnel ». La carte ainsi obtenue à partir de l'application est représentée dans l'image suivante :

- Importez les classes et les interfaces requises.
import net.rim.device.api.lbs.maps.*; import net.rim.device.api.lbs.maps.model.*; import net.rim.device.api.lbs.maps.ui.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*;
- Créez le cadre d'application en développant la classe UiApplication. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'application, appelez pushScreen() pour afficher l'écran personnalisé de l'application. La classe MapTagScreen, décrite à l'étape 3, représente l'écran personnalisé.
public class MapTaggingDemo extends UiApplication { public static void main(String[] args) { MapTaggingDemo theApp = new MapTaggingDemo(); theApp.enterEventDispatcher(); } public MapTaggingDemo() { pushScreen(new MapTagScreen()); } } - Créez le cadre de l'écran personnalisé en développant la classe FullScreen. Dans le constructeur, appelez super() pour créer un menu par défaut.
class MapTagScreen extends FullScreen { public MapTagScreen() { super(FullScreen.DEFAULT_CLOSE | FullScreen.DEFAULT_MENU | FullScreen.VERTICAL_SCROLL | FullScreen.VERTICAL_SCROLLBAR); - Dans le constructeur d'écran, appelez MapFactory.getInstance() pour créer une instance de la classe MapFactory, puis appelez generateRichMapField() pour générer le champ de carte. Appelez add() pour ajouter l'instance RichMapField à l'écran.
RichMapField map = MapFactory.getInstance().generateRichMapField(); add(map);
- Appelez getModel() pour créer une instance de la classe MapDataModel.
MapDataModel data = map.getModel();
- Créez des instances de la classe MapLocation pour définir les positions. Transmettez la latitude, la longitude, l'étiquette, et la description de chaque position aux objets MapLocation.
MapLocation julieHome = new MapLocation( 43.47751, -80.54817, "Julie - Home", null ); MapLocation headOffice = new MapLocation( 43.47550, -80.53900, "Head Office", null ); - Créez un identifiant de nombre entier pour représenter un élément mappable. Attribuez l'élément mappable à l'identifiant en appelant add() pour ajouter une position et transmettre l'un des objets MapLocation et une balise de position à MapDataModel. Vous pouvez utiliser l'identifiant pour accéder à l'élément dans MapDataModel et attribuer une autre balise à un élément mappable en appelant tag() et en transmettant l'identifiant et la balise comme arguments. Dans l'échantillon de code suivant, deux positions sont ajoutées à MapDataModel et deux balises sont attribuées à chaque position.
int julieHomeId = data.add( (Mappable) julieHome, "julie" ); data.tag( julieHomeId, "home" ); int headOfficeId = data.add( (Mappable) headOffice, "julie" ); data.tag( headOfficeId, "work" );
- Définissez deux autres positions et appelez add() pour ajouter les positions à MapDataModel. Appelez tag() pour attribuer les balises appropriées aux positions.
MapLocation paulHome = new MapLocation( 43.49487, -80.55335, "Paul - Home", null ); int paulHomeId = data.add( (Mappable) paulHome, "paul" ); data.tag( paulHomeId, "home" ); data.tag( headOfficeId, "paul" ); data.tag( paulHomeId, "sarah" ); MapLocation manufacturing = new MapLocation( 43.46514, -80.50506, "Manufacturing", null ); int manufacturingId = data.add( (Mappable) manufacturing, "sarah" ); data.tag( manufacturingId, "work" ); - Activez la visibilité des positions portant la balise « professionnel ». Par défaut, toutes les positions sont visibles sur la carte. Appelez setVisibleNone() pour désactiver la visibilité de toutes les positions. Appelez setVisible() et transmettez la balise « professionnel » comme argument pour spécifier qu'uniquement les positions avec la balise « professionnel » sont visibles sur la carte.
data.setVisibleNone(); data.setVisible( "work" );
- Appelez getMapField().update() pour mettre à jour la vue de la carte. Transmettez la valeur booléenne true (vrai) à la méthode update pour recalculer le centre et le niveau de zoom de la carte avec les positions visibles sur la carte.
map.getMapField().update(true);
Sujet suivant: Échantillon de code : marquage et paramétrage de la visibilité des positions sur une carte
Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.