Crear una imagen estática de un mapa

Puede crear una imagen estática de un mapa invocando MapField.getImage(), proporcionado en el paquete net.rim.device.api.lbs.maps.ui, o MapFactory.generateStaticImage(), proporcionado en el paquete net.rim.device.api.lbs.maps.

Puede invocar MapField.getImage() para capturar una imagen de la vista del mapa actual en la pantalla, incluido cualquier dato que sea visible en el mapa. MapField.getImage() se utiliza para capturar imágenes en aplicaciones de interfaz de usuario en las que el mapa es un campo de la pantalla. Por ejemplo, en una aplicación que muestre un mapa de puntos de interés, puede proporcionar un botón en el que el usuario del dispositivo BlackBerry haga clic para guardar una imagen del mapa actual.

Puede invocar MapFactory.generateStaticImage() para crear una imagen de un mapa en las situaciones siguientes:
  • Para crear una imagen de la vista del mapa actual en la pantalla en una aplicación que no sea de la interfaz de usuario (por ejemplo, en una aplicación que envía actualizaciones periódicas de la ubicación de una persona a una dirección de correo electrónico)
  • Para crear una imagen de un mapa que no permite la interacción del usuario como panorámica y zoom (por ejemplo, en una aplicación de contactos para proporcionar una imagen del mapa del domicilio particular del contacto)

Los métodos generateStaticImage() en la clase MapFactory proporcionan control sobre las coordenadas de centro y nivel de zoom de la imagen y calculan las coordenadas según los elementos asignables proporcionados.

Método

Descripción

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

Este método utiliza una clase MappableVector y proporciona a la aplicación control sobre las coordenadas de centro y nivel de zoom de la imagen del mapa.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

Este método utiliza una clase MapDataModel y proporciona a la aplicación control sobre las coordenadas de centro y nivel de zoom de la imagen del mapa.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

Este método calcula el centro y nivel de zoom de la imagen según los datos asignados en MappableVector.

Ejemplo de código: crear una imagen estática de un mapa en una aplicación de la interfaz de usuario

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

Ejemplo de código: crear una imagen estática de un mapa (se calculan el centro y nivel de zoom del mapa)

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

Ejemplo de código: crear una imagen estática de un mapa (se especifican el centro y nivel de zoom del mapa)

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

¿Le ha resultado útil esta información? Envíenos sus comentarios.