Creazione di un'immagine statica di una mappa

È possibile creare un'immagine statica di una mappa richiamando MapField.getImage(), fornito nel pacchetto net.rim.device.api.lbs.maps.ui, o MapFactory.generateStaticImage(), fornito nel pacchetto net.rim.device.api.lbs.maps.

È possibile richiamare MapField.getImage() per acquisire un'immagine della mappa corrente sulla schermata, inclusi i dati visibili sulla mappa. MapField.getImage() viene utilizzato per acquisire immagini nelle applicazioni dell'interfaccia utente, dove la mappa è un campo sulla schermata. Ad esempio, in un'applicazione che visualizza una mappa di punti di interesse, è possibile fornire un pulsante su cui gli utenti BlackBerry possono fare clic per salvare un'immagine della mappa corrente.

È possibile richiamare MapFactory.generateStaticImage() per creare un'immagine di una mappa nelle seguenti situazioni:
  • Per creare un'immagine della visualizzazione della mappa corrente sulla schermata in un'applicazione non appartenente all'interfaccia utente (ad esempio, in un'applicazione che invia aggiornamenti periodici sulla posizione di una persona a un indirizzo e-mail)
  • Per creare un'immagine di una mappa che non consente l'interazione degli utenti come la panoramica e lo zoom (ad esempio, in un'applicazione Contatti per fornire l'immagine di una mappa per l'indirizzo di casa del contatto)

I metodi generateStaticImage() nella classe MapFactory forniscono il controllo sulle coordinate del centro e sul livello di zoom dell'immagine e calcolano le coordinate in base agli elementi che possono essere mappati.

Metodo

Descrizione

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

Questo metodo utilizza una classe MappableVector e fornisce all'applicazione il controllo sulle coordinate del centro e sul livello di zoom dell'immagine della mappa.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

Questo metodo utilizza una classe MapDataModel e fornisce all'applicazione il controllo sulle coordinate del centro e sul livello di zoom dell'immagine della mappa.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

Questo metodo calcola le coordinate del centro e il livello di zoom dell'immagine in base ai dati che possono essere mappati in MappableVector.

Esempio di codice: creazione di un'immagine statica di una mappa in un'applicazione dell'interfaccia utente

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

Esempio di codice: creazione di un'immagine statica di una mappa (vengono calcolati il centro della mappa e il livello dello zoom)

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

Esempio di codice: creazione di un'immagine statica di una mappa (vengono specificati le coordinate del centro e il livello dello zoom della mappa)

// 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 );
Argomento successivo: Integrazione con BlackBerry Maps

Le informazioni sono state utili? Inviateci i vostri commenti.