Création d'une image statique d'une carte

Vous pouvez créer une image statique d'une carte en appelant MapField.getImage(), fourni dans le progiciel net.rim.device.api.lbs.maps.ui ou MapFactory.generateStaticImage(), fourni dans le progiciel net.rim.device.api.lbs.maps.

Vous pouvez appeler MapField.getImage() pour capturer une image de la carte actuellement affichée à l'écran, ainsi que toutes les données visibles sur la carte. MapField.getImage() est utilisé pour capturer des images dans les applications d'interface utilisateur où la carte apparaît sous forme de champ à l'écran. Par exemple, dans une application qui affiche une carte des centres d'intérêt, vous pouvez inclure un bouton sur lequel les utilisateurs de terminal BlackBerry peuvent cliquer pour enregistrer une image de la carte actuelle.

Vous pouvez appeler MapFactory.generateStaticImage() pour créer une image d'une carte dans les situations suivantes :
  • Pour créer une image de la vue à l'écran de la carte actuelle dans une application sans interface utilisateur (par exemple, une application qui envoie des mises à jour périodiques de la position d'une personne à une adresse électronique)
  • Pour créer une image d'une carte qui n'autorise pas d'interaction utilisateur, comme effectuer un panoramique ou un zoom (par exemple, dans une application de contacts qui fournit l'image d'une carte correspondant à l'adresse personnelle du contact)

Les méthodes generateStaticImage() dans la classe MapFactory permettent de contrôler les coordonnées du centre et du niveau de zoom de l'image et de calculer les coordonnées en fonction des éléments mappables fournis.

Méthode

Description

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

Cette méthode utilise une classe MappableVector et fournit à l'application un contrôle des coordonnées pour le centre et le niveau de zoom de l'image de carte.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

Cette méthode utilise une classe MapDataModel et fournit à l'application un contrôle des coordonnées pour le centre et le niveau de zoom de l'image de carte.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

Cette méthode calcule le centre et le niveau de zoom de l'image en fonction des données mappables de MappableVector.

Échantillon de code : création d'une image statique d'une carte dans une application d'interface utilisateur

// add the data to a collection
MapDataModel data = new MapDataModel();
data.add( (Mappable) new MapLocation( 43.47550, -80.53900, "Andrew", null ) );
data.add( (Mappable) new MapLocation( 43.48261, -80.54169, "Blake", null ) );
data.add( (Mappable) new MapLocation( 43.47751, -80.54817, "Christine", null ) );
// create the map and specify the map size
MapField map = new MapField(data, 200, 200);
// create the image
Bitmap image = map.getImage();

Échantillon de code : création d'une image statique d'une carte (calcul du centre et du niveau de zoom de la carte)

// add the data to a collection
MappableVector data = new MappableVector();
data.addElement( new MapLocation( 43.47550, -80.53900, "Andrew", null ) );
data.addElement( new MapLocation( 43.48261, -80.54169, "Blake", null ) );
data.addElement( new MapLocation( 43.47751, -80.54817, "Christine", null ) );
// specify the size of the resulting image
XYDimension imageSize = new XYDimension( 200, 100 );
// create the image
Bitmap map = MapFactory.getInstance().generateStaticMapImage( imageSize, data );

Échantillon de code : création d'une image statique d'une carte (spécification du centre et du niveau de zoom de la carte)

// add the data to a collection
MapDataModel data = new MapDataModel();
MapLocation andrew = new MapLocation(43.47550, -80.53900, "Andrew", null );
data.add( (Mappable) andrew );
data.add( (Mappable) new MapLocation( 43.48261, -80.54169, "Blake", null ) );
data.add( (Mappable) new MapLocation( 43.47751, -80.54817, "Christine", null ) );
// visibility for this location is false and it will not display on the map
data.add( (Mappable) new MapLocation( 43.49487, -80.55335, "Dustin", null), null, false );
// specify the image size, center and zoom level
MapDimensions dim = new MapDimensions( 200, 100 );
dim.setCentre( andrew );
dim.setZoom( 3 );
// create the image
Bitmap map = MapFactory.getInstance().generateStaticMapImage( dim, data );

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