지도의 정적 이미지 만들기

net.rim.device.api.lbs.maps.ui 패키지에 제공되는 MapField.getImage() 또는 net.rim.device.api.lbs.maps 패키지에 제공되는 MapFactory.generateStaticImage()를 호출하여 지도의 정적 이미지를 만들 수 있습니다.

MapField.getImage()를 호출하면 지도에서 볼 수 있는 모든 데이터를 포함하여 화면에 나타나는 현재 지도 보기의 이미지를 캡처할 수 있습니다. MapField.getImage()는 지도가 화면상의 필드인 UI 프로그램에서 이미지를 캡처하는 데 사용됩니다. 예를 들어, 관심 지점의 지도를 표시하는 프로그램에서는 BlackBerry 단말기 사용자가 현재 지도의 이미지를 저장하기 위해 클릭할 수 있는 버튼을 제공할 수 있습니다.

MapFactory.generateStaticImage()를 호출하면 다음과 같은 상황에서 지도의 이미지를 만들 수 있습니다.
  • 비UI 프로그램(예: 개인의 위치를 주기적으로 업데이트하여 이메일 주소로 보내는 프로그램)에서 화면에 나타난 현재 지도 보기의 이미지를 만들려는 경우
  • 연락처의 집 주소에 대한 지도 이미지를 제공하려는 주소록 프로그램 등에서 이동 및 확대/축소 같은 사용자 상호 작용을 허용하지 않는 지도 이미지를 만들려는 경우

MapFactory 클래스의 generateStaticImage() 메소드는 중심 좌표 및 이미지의 확대/축소 수준에 대한 제어를 제공하고, 지도에 표시 가능한 제공 항목을 토대로 좌표를 계산합니다.

메소드

설명

generateStaticMapImage(MapDimensions mapProperties, MappableVector data)

이 메소드는 MappableVector 클래스를 사용하고 중심 좌표 및 지도 이미지의 확대/축소 수준에 대한 제어를 프로그램에 제공합니다.

generateStaticMapImage(MapDimensions mapProperties, MapDataModel data)

이 메소드는 MapDataModel 클래스를 사용하고 중심 좌표 및 지도 이미지의 확대/축소 수준에 대한 제어를 프로그램에 제공합니다.

generateStaticMapImage(XYDimension imageSize, MappableVector data)

이 메소드는 MappableVector를 통해 제공되는 지도에 표시 가능한 데이터를 기반으로 이미지의 중심 좌표 및 확대/축소 수준을 계산합니다.

코드 샘플: UI 프로그램에서 지도의 정적 이미지 만들기

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

코드 샘플: 지도의 정적 이미지 만들기(지도 중심 좌표 및 확대/축소 수준이 계산되는 경우)

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

코드 샘플: 지도의 정적 이미지 만들기(지도 중심 좌표 및 확대/축소 수준이 지정되는 경우)

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

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.