본문으로 바로가기


안녕하세요. PEACE-입니다.

안드로이드 스터디 [열여섯 번째] 글입니다.


포스팅 '안드로이드 구글 맵 - 1, 2'에서 구글 맵과 마커를 구현했습니다. 오늘은 마커에 대한 상세 기능과 사용 방법에 대해 알아보겠습니다. 마커를 생성할 줄 모르신다면 아래에 첨부한 이전 포스팅에서 공부하시길 바랍니다.




** 안드로이드 구글 맵 - 1

[ Google Maps API Key 발급 받기 : http://mailmail.tistory.com/17 ]    

** 안드로이드 구글 맵 - 2

[ Android Google Map 마커 구현 : http://mailmail.tistory.com/18 ]    

** 안드로이드 구글 맵 - 3

[ Android Google Map 마커 옵션 사용법  : http://mailmail.tistory.com/19 ]    

** 안드로이드 구글 맵 - 4

[ Android Google Map 마커 여러개 생성하기 : http://mailmail.tistory.com/20 ]    

** 안드로이드 구글 맵 - 5

[ Android Google Map 마커 클릭 이벤트 처리 http://mailmail.tistory.com/21 ]    

** 안드로이드 구글 맵 - 6 (예정)

[ Android Google Map 마커 클러스터링




1. Marker

MarkerGoogle Map에서 사용하는 가장 일반적인 객체입니다. 주로 정해진 위치에 표시하며, 아이콘, 타이틀, 내용, 투명도 등의 설정이 가능합니다. 아래 가이드는 Google APIs for Android의 마커 가이드를 참조한 것입니다. 예제에서는 가장 많이 사용되는 Position, Title, Snippet, Alpha, Icon만 다루겠습니다.

 Position 위치(필수)
지도에서 마커의 위치에 대한 LatLng 값입니다. 이는 Marker 객체의 유일한 필수 속성입니다.

 Anchor 앵커
마커의 LatLng 위치에 배치될 이미지의 지점. 기본값은 이미지의 하단 중앙입니다.

 Alpha 알파
마커의 투명도를 설정합니다. 기본값은 1.0입니다.

 Title 제목
사용자가 마커를 눌렀을 때 정보 창에 표시되는 문자열.

 Snippet 스니펫
제목 아래에 표시되는 추가 텍스트.

 Icon 아이콘
기본 마커 이미지 대신 표시되는 비트맵.

 Drag Status 드래그 가능
사용자가 마커를 이동할 수 있게 하려면 true로 설정합니다. 기본값은 false입니다.

 Visibility 가시성
마커가 보이지 않게 하려면 false로 설정합니다. 기본값은 true입니다.

 Flat or Billboard 평면 또는 빌보드 방향
기본적으로 마커는 화면과 반대쪽 방향이므로, 카메라로 회전하거나 틸트할 수 없습니다. 평면 마커는 지표면과 반대쪽 방향이며, 카메라로 회전과 틸트가 가능합니다. 두 유형의 마커 모두 확대/축소에 따라 크기가 변경되지 않습니다. 이 효과를 원하면 GroundOverlays를 사용합니다.

 Rotation 회전

시계방향으로 도 단위로 지정되는 마커의 방향. 마커가 평면인 경우 기본 위치가 변경됩니다. 평면 마커의 기본 위치는 북쪽 정렬입니다. 마커가 평면이 아닌 경우, 기본 위치는 위를 가리키고 마커가 항상 카메라를 마주하도록 회전합니다.

 zIndex 마커 그리기 순서
마커의 그리기 순서입니다. 마커는 zIndex 순서로 그려지며 가장 위에있는 zIndex 마커가 그려집니다. 각 마커에 대해 zIndex 속성을 설정하면 사용자가 가장 많이 발생시킬 탭 대상을 제어 할 수 있습니다. 기본값은 0입니다.

 Tag 꼬리표
마커와 연결된 객체입니다. 예를 들어, Object는 마커가 나타내는 것에 대한 데이터를 포함 할 수 있습니다. 이것은 별도의 Map <Marker, Object>를 저장하는 것보다 쉽습니다. 다른 예로서 데이터 세트의 ID에 해당하는 String ID를 연결할 수 있습니다. Google Maps Android API는 마커가지도에서 제거되면이 속성이 null로 설정된다는 점을 제외하고는이 속성을 읽거나 쓰지 않습니다.






2. MarkerOptions 객체와 사용

마커에 대한 옵션 설정은 MarkerOptions를 통해 가능하며 아래와 같이 설정합니다.
0) MarkerOptions 객체 생성
// 구글 맵에 표시할 마커에 대한 옵션 설정
MarkerOptions makerOptions = new MarkerOptions();



1) Position 마커를 표시하고 싶은 위도 경도 위치를 LatLng 객체를 통해 설정한다.
makerOptions.position(new LatLng(37.52487, 126.92723))



2) Title 마커에 표시하고 싶은 타이틀을 문자열로 설정한다.
makerOptions.title("여의도!!")




3) Snippet 마커에 표시되는 타이틀 바로 밑에 추가될 텍스트를 문자열로 설정한다.
makerOptions.snippet("여의도 한강 치맥 합시다.")




4) Alpha 마커의 투명도를 설정한다. 단 타이틀이나 텍스트는 적용되지 않는다.
makerOptions.alpha(0.5f);




5) Icon 마커 색상을 변경하거나 기본 마커 대신 사용한 Bitmap 설정한다.
makerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))

또는

makerOptions.icon(BitmapDescriptorFactory.fromBitmap(R.drawable.marker1));






 Tip


아래 소스처럼 한 번에 기능을 이어서 사용이 가능하다.

// 구글 맵에 표시할 마커에 대한 옵션 설정
MarkerOptions makerOptions = new MarkerOptions();
makerOptions.position(new LatLng(37.52487, 126.92723))
.title("여의도!!")
.snippet("여의도 한강 치맥 합시다.")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))
.alpha(0.5f);