Erstellen einer statischen Grafik einer Karte

Sie können ein statisches Bild einer Karte durch Aufrufen von MapField.getImage() erstellen, der im net.rim.device.api.lbs.maps.ui-Paket vorhanden ist, oder durch Aufrufen von MapFactory.generateStaticImage(), der im - net.rim.device.api.lbs.mapsPaket vorhanden ist.

Sie können MapField.getImage() aufrufen, um ein Bild der aktuellen Kartenansicht am Bildschirm, einschließlich aller auf der Karte sichtbaren Daten, aufzunehmen. MapField.getImage() wird verwendet, um Bilder in Benutzeroberflächen-Anwendungen aufzuzeichnen, bei denen die Karte ein Feld am Bildschirm ist. Sie können z. B. in einer Anwendung, die eine Karte von Sonderzielen anzeigt, eine Schaltfläche bereitstellen, über die BlackBerry-Gerätebenutzer eine Grafik der aktuellen Karte speichern können.

Sie können MapFactory.generateStaticImage() aufrufen, um ein Bild einer Karte in folgenden Situationen zu erstellen:
  • Um eine Grafik der aktuellen Kartenansicht auf dem Bildschirm in einer Nicht-Benutzeroberflächen-Anwendung zu erstellen (z. B. in einer Anwendung, die regelmäßige Aktualisierungen des Standorts einer Person an eine E-Mail-Adresse sendet)
  • Um eine Grafik einer Karte zu erstellen, die keine Benutzereingriffe, wie z. B. Schwenken und Zoomen, zulässt (z. B. in einer Kontaktanwendung, um eine Grafik einer Karte für die Heimatanschrift des Kontakts bereitzustellen)

Die generateStaticImage()-Methoden in der MapFactory-Klasse ermöglicht die Steuerung der Koordinaten für Mitte und Vergrößerungsfaktor des Bilds, und berechnen die Koordinaten auf Basis der bereit gestellten abbildbaren Elemente.

Methode

Beschreibung

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

Diese Methode verwendet eine MappableVector-Klasse und ermöglicht der Anwendung die Steuerung der Koordinaten für Mitte und Vergrößerungsfaktor des Kartenbilds.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

Diese Methode verwendet eine MapDataModel-Klasse und ermöglicht der Anwendung die Steuerung der Koordinaten für Mitte und Vergrößerungsfaktor des Kartenbilds.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

Diese Methode berechnet Mitte und Vergrößerungsfaktor des Bilds auf Basis der abbildbaren Daten im MappableVector.

Codebeispiel: Erstellen einer statischen Grafik einer Karte in einer Benutzeroberflächen-Anwendung

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

Codebeispiel: Erstellen einer statischen Grafik einer Karte (Kartenmitte und Vergrößerungsfaktor werden berechnet)

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

Codebeispiel: Erstellen einer statischen Grafik einer Karte (Kartenmitte und Vergrößerungsfaktor werden angegeben)

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

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.