지도의 정적 이미지 만들기
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() 메소드는 중심 좌표 및 이미지의 확대/축소 수준에 대한 제어를 제공하고, 지도에 표시 가능한 제공 항목을 토대로 좌표를 계산합니다.
| 메소드 | 설명 |
|---|---|
| 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 );