Criar uma imagem estática de um mapa

Você pode criar uma imagem estática de um mapa invocando MapField.getImage(), que é fornecido no pacote net.rim.device.api.lbs.maps.ui, ou MapFactory.generateStaticImage(), que é fornecido no pacote net.rim.device.api.lbs.maps.

Você pode invocar MapField.getImage() para capturar uma imagem da visão atual de mapa na tela, incluindo dados que sejam visíveis no mapa. MapField.getImage() é usado para capturar imagens em aplicativos de interface de usuário, onde o mapa é um campo na tela. Por exemplo, em um aplicativo que exibe um mapa de pontos de interesse, você pode fornecer um botão no qual os usuários de aparelhos BlackBerry possam clicar para salvar uma imagem do mapa atual.

Você pode invocar MapFactory.generateStaticImage() para criar a imagem de um mapa nas seguintes situações:
  • Para criar uma imagem da exibição atual do mapa na tela em um aplicativo que não tenha interface de usuário (por exemplo, em um aplicativo que envie atualizações periódicas da localização de uma pessoa a um endereço de e-mail)
  • Para criar uma imagem de um mapa que não permita interação do usuário, tal como exibição panorâmica e zoom (por exemplo, em um aplicativo de contatos para fornecer uma imagem de um mapa para o endereço residencial do contato)

Os métodos generateStaticImage() na classe MapFactory fornecem controle sobre as coordenadas do centro e do zoom da imagem e calcula as coordenadas com base nos itens mapeáveis que são fornecidos.

Método

Descrição

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

Este método usa uma classe MappableVector e fornece o aplicativo com controle das coordenadas do centro e do zoom da imagem do mapa.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

Este método usa uma classe MapDataModel e fornece o aplicativo com controle das coordenadas do centro e do zoom da imagem do mapa.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

Este método calcula o centro e o zoom da imagem com base nos dados mapeáveis no MappableVector.

Exemplo de código: Criar uma imagem estática de um mapa em um aplicativo de interface de usuário

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

Exemplo de código: Criar uma imagem estática de um mapa (os níveis de centro e de zoom do mapa são calculados)

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

Exemplo de código: Criar uma imagem estática de um mapa (os níveis de centro e de zoom do mapa são especificados)

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

Estas informações foram úteis? Gostaríamos de receber seus comentários.