구글맵 snippet을 두줄이상으로 구현하기

by 조쉬 posted Dec 14, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

GoogleMap으로 작업중에 MarkerOptions 로 해당 마커의 세부정보를 담아서 여러개의 마커를 맵상에 띄울 수 있는데

아래의 소스내용을 보면 snippet 부분이 해당 내용이다.

 

(소스는 마커정보 일부분)

1
2
3
4
5
6
LatLng aLatLng = new LatLng(Double.parseDouble(lat),Double.parseDouble(lng));
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(aLatLng);
markerOptions.title("제목입니다.");
markerOptions.snippet("내용입니다.\n다음줄입니다.\n셋째줄입니다.");
mMap.addMarker(markerOptions);
cs

 

실제 결과화면을 보면 snippet 문자열은 세줄형태로 나와야하는데, 기본 snippet 특성상 한줄만 화면에 보여준다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 하나의 윈도우인포창 설정하기 - 마커클릭시 하나의 창뜬다.
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
 
    @Override
    public View getInfoWindow(Marker marker) {
        return null;
    }
 
    @Override
    public View getInfoContents(Marker marker) {
        LinearLayout info = new LinearLayout(mContext);
        info.setOrientation(LinearLayout.VERTICAL);
 
        TextView title = new TextView(mContext);
        title.setTextColor(Color.BLACK);
        title.setGravity(Gravity.CENTER);
        title.setTypeface(null, Typeface.BOLD);
        title.setText(marker.getTitle());
 
        TextView snippet = new TextView(mContext);
        snippet.setTextColor(Color.GRAY);
        snippet.setGravity(Gravity.LEFT);
        snippet.setText(marker.getSnippet());
 
        info.addView(title);
        info.addView(snippet);
 
        return info;
    }
});
cs

infowindow 라는 하나의 인포창을 띄우는 어탭터소스 내용이다.

안에 보면 10라인과 같이 해당 마커를 하나 클릭하면 콜백처리하여 그 마커정보를 자동으로 읽어 오는데 여기에는 \n 형식도 출력하면서 전체 내용 줄을 출력할 수 있다.

 

[실행 결과 화면]