지도상의 객체 모양 사용자 정의

net.rim.device.api.lbs.maps.view 패키지에는 StyleStyleSet 클래스가 들어 있어 지도 상에 나타나는 표시 가능한 객체의 모양을 사용자 정의하는 데 사용할 수 있습니다. 스타일을 사용함으로써 지도를 사용자 정의할 수 있고 CSS 스타일 적용과 유사한 방식으로 모양을 동일하게 할 수 있습니다.

Style 클래스는 다음과 같은 속성을 제공하여 표시 가능한 객체의 시각적 특성을 정의합니다.

  • Edge(모서리): 표시 가능한 객체 둘레의 모서리 속성을 지정합니다(색상, 불투명도 및 크기).
  • Fill(채우기): 표시 가능한 객체의 내부 영역 속성을 지정합니다(색상 및 불투명도).
  • Label(레이블): 표시 가능한 객체의 레이블 속성을 지정합니다(채우기 색상과 불투명도, 정렬, 색상, 집합 이름, 불투명도, 크기 및 글꼴 스타일).

Style 클래스에는 모서리 크기와 텍스트 정렬에 사용되는 상수도 포함되어 있습니다(예: EDGE_SIZE_LARGEFONT_ALIGNMENT_RIGHT). 글꼴 및 색상에 관련된 상수는 각각 FontColor 클래스에서 찾을 수 있습니다. 불투명도는 0과 255 사이의 정수로 표현됩니다. 여기서 0은 투명, 255는 불투명을 의미합니다.

StyleSet 클래스는 표시 가능한 객체를 화면에 렌더링하기 위해 지도가 사용하는 개별 스타일을 나타냅니다. 지도에는 기본 스타일 집합이 있으므로 이를 가져와 사용할 수 있고 자신의 스타일로 재정할 수도 있습니다.

StyleSet 객체에는 기본 스타일, 클래스 스타일 및 ID 스타일이라는 세 유형의 스타일이 포함되어 있습니다. 기본 스타일은 표시 가능한 모든 객체에 대해 하나의 스타일을 정의합니다. 클래스 스타일은 특정 클래스의 표시 가능한 모든 객체에 대해 하나의 스타일을 정의합니다. ID 스타일은 특정 ID의 표시 가능한 모든 객체에 대해 하나의 스타일을 정의합니다. 표시 가능한 객체에 하나의 ID를 할당하려면 해당 객체에서 AbstractMappable.setStyleId()를 호출해야 합니다.

상위 스타일로부터 속성을 상속받는 스타일도 만들 수 있습니다. 예를 들어, ID 스타일은 클래스 스타일 또는 기본 스타일로부터 상속받을 수 있습니다. 상위 스타일로부터 속성을 상속받으려면 INHERIT 상수 중 하나를 지정할 수 있습니다(예: COLOR_INHERIT 또는 EDGE_SIZE_INHERIT ).

지도 만들기

RichMapField map = MapFactory.getInstance().generateRichMapField();

지도에 대한 스타일 집합 가져오기

StyleSet styles = map.getMapField().getDrawingStyles();

스타일을 정의하고 이를 스타일 집합에 적용하기

// Base style for the entire map.
Style baseStyle = new Style();
baseStyle.setLabelFontFamilyName("arial");
styles.setBaseStyle( baseStyle );
// Style for the MapLocation class.
Style classStyle = new Style();
classStyle.setLabelFillColor( Color.BLACK );
classStyle.setLabelFontColor( Color.WHITE );
classStyle.setEdgeColor( Color.WHITE );
styles.addClassBasedStyle( MapLocation.class, classStyle );
// Style for a specific ID.
Style idStyle = new Style();
classStyle.setEdgeColor( Color.RED );
styles.addIdBasedStyle("ID_1", idStyle);

ID 스타일을 사용하는 표시 가능한 객체 만들기

MapLocation locationTwo = new MapLocation( 4500100, -7499900, "Loc. 2", "Uses an ID style" );
locationTwo.setStyleId("ID_1");

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