Android용 Maps SDK 유틸리티 라이브러리

플랫폼 선택: Android iOS

지도에 추가할 고급 기능을 찾고 계신가요? Android용 Maps SDK 유틸리티 라이브러리는 다양한 애플리케이션에 유용하게 사용할 수 있는 클래스의 오픈소스 라이브러리입니다. GitHub 저장소에는 유틸리티 클래스와 (각 클래스의 사용법을 보여주는) 데모 앱이 있습니다.

이 동영상에서 크리스 브로드풋은 다중선 디코딩, 구면 도형, 도움말 풍선 아이콘을 중심으로 유틸리티 라이브러리를 설명합니다.

빠른 설정

Android용 Maps SDK 유틸리티 라이브러리를 설치하려면 설정 가이드를 따르세요.

유틸리티

GeoJSON 레이어가 있는 지도

지도에 GeoJSON 가져오기

지형지물을 GeoJSON 형식으로 저장하고 이 유틸리티를 사용하여 지도 위에 레이어를 렌더링할 수 있습니다. addLayer()를 호출하여 GeoJSON 데이터를 지도에 추가합니다. addFeature()를 호출하고 GeoJsonFeature 객체에 전달하여 개별 지형지물을 추가할 수도 있습니다.

자세한 내용은 Google 지도 Android GeoJSON 유틸리티의 문서를 참고하세요.

KML 레이어가 있는 지도

지도에 KML 가져오기

이 유틸리티를 사용하면 KML 객체를 지리적 도형으로 변환하고 지도 위의 레이어로 렌더링할 수 있습니다. addLayerToMap()을 호출하여 레이어를 지도에 추가합니다. Placemark, GroundOverlay, Document 또는 Folder에서 getProperties()를 호출하여 KML 객체의 속성에 액세스할 수 있습니다.

자세한 내용은 Google 지도 Android KML 유틸리티의 문서를 참고하세요.

히트맵이 있는 지도

지도에 히트맵 추가

히트맵을 사용하면 사용자가 지도에서 데이터 지점의 분포와 상대적 강도를 쉽게 이해할 수 있습니다. 히트맵은 각 위치에 마커를 배치하는 대신 색상과 도형을 사용하여 데이터의 분포를 나타냅니다. HeatmapTileProvider를 만들어 지도의 관심 장소를 나타내는 LatLng 객체 컬렉션에 전달합니다. 그런 다음 새 TileOverlay를 만들어 히트맵 타일 제공자에게 전달하고 타일 오버레이를 지도에 추가합니다.

자세한 내용은 Google 지도 Android 히트맵 유틸리티의 문서를 참고하세요.

도움말 풍선 아이콘이 있는 지도

도움말 풍선 아이콘을 통해 마커 맞춤설정

IconGenerator를 추가하여 마커에 정보 스니펫을 표시합니다. 이 유틸리티는 마커 아이콘을 정보 창처럼 보이게 하여 여기에 텍스트와 다른 콘텐츠를 담는 방법을 제공합니다. 정보 창은 한 번에 하나만 열 수 있지만 이 유틸리티는 둘 이상의 마커를 동시에 열 수 있다는 장점이 있습니다. 또한 마커의 스타일을 지정하고 마커 및 콘텐츠의 방향을 변경하며 마커의 배경 이미지 및 나인 패치를 변경할 수도 있습니다.

클러스터형 마커가 있는 지도

마커 클러스터 관리

ClusterManager를 사용하면 다양한 확대/축소 수준에서 여러 마커를 관리할 수 있습니다. 즉, 지도의 가독성을 해치지 않으면서도 지도에 많은 마커를 넣을 수 있습니다. 사용자가 높은 확대/축소 수준에서 지도를 보면 개별 마커가 지도에 나타납니다. 사용자가 낮은 확대/축소 수준으로 축소하면 마커가 클러스터로 모여서 지도 보기가 쉬워집니다.

자세한 내용은 Google 지도 Android 마커 클러스터링 유틸리티의 문서를 참고하세요.

여러 레이어가 있는 지도

동일한 지도에 여러 레이어 추가

GeoJSON, KML, 클러스터의 지형지물은 물론 자체 마커, 다중선, 다각형을 모두 동일한 지도에 표시할 수 있습니다. 각 레이어에 클릭 리스너를 추가하여 이러한 레이어를 대화형으로 만들 수도 있습니다. MarkerManager, GroundOverlayManager, PolygonManager, PolylineManager 클래스를 각각 인스턴스화한 후 클래스 설정 시 GeoJsonLayer, KmlLayer, ClusterManager의 생성자에 전달하면 됩니다. 그런 다음 위의 Manager 클래스를 직접 사용하여 자체 마커, 다중선, 다각형을 지도에 추가할 수 있습니다.

자세한 내용은 Google 지도 Android 멀티 레이어 데모의 문서를 참고하세요.

인코딩된 다중선이 있는 지도

다중선 인코딩 및 디코딩

PolyUtil은 인코딩된 다중선 및 다각형을 위도/경도 좌표로 변환하거나 그 반대로 변환할 때 유용합니다.

Google 지도에서 다중선이나 다각형을 정의하는 경도 및 위도 좌표는 인코딩된 문자열로 저장됩니다. 다중선 인코딩에 대한 자세한 설명을 참고하세요. 경로 API와 같은 Google API의 응답에서 이 인코딩된 문자열을 수신할 수 있습니다.

Android용 Maps SDK 유틸리티 라이브러리에서 PolyUtil을 사용하여 위도/경도 좌표('LatLngs') 시퀀스를 인코딩된 경로 문자열로 인코딩하고, 인코딩된 경로 문자열을 LatLngs의 시퀀스로 디코딩합니다. 이는 Google 지도 API 웹 서비스와의 상호운용성을 보장합니다.

지도 상에서 두 지점 간의 거리 계산

구면기하학을 통해 거리, 면적 및 방향 계산

SphericalUtil의 구면기하학 유틸리티를 사용하여 위도와 경도를 기반으로 거리, 면적, 방향을 계산할 수 있습니다. 다음은 유틸리티에서 사용할 수 있는 몇 가지 메서드입니다.

  • computeDistanceBetween() – 두 개의 위도/경도 좌표 사이의 거리(단위: 미터)를 반환합니다.
  • computeHeading() – 두 개의 위도/경도 좌표 사이의 방위(단위: 도)를 반환합니다.
  • computeArea() – 지구 상의 닫힌 경로의 면적(단위: 제곱미터)을 반환합니다.
  • interpolate() – 지정된 두 지점 사이의 거리에서 지정된 부분에 있는 지점의 위도/경도 좌표를 반환합니다. 예를 들어 이 메서드를 사용하여 두 지점 사이의 마커를 애니메이션 처리할 수 있습니다.

유틸리티에 포함된 메서드의 전체 목록은 참조 문서를 참고하세요.

위치가 스트리트 뷰에서 지원되는지 여부 확인

위치가 스트리트 뷰에서 지원되는지 확인합니다.

StreetViewUtil 클래스는 위치가 스트리트 뷰에서 지원되는지 여부를 확인하는 기능을 제공합니다. 스트리트 뷰 파노라마를 Android 앱에 추가할 때 이 메타데이터 유틸리티를 호출하고 응답이 OK인 경우에만 스트리트 뷰 파노라마를 추가하여 오류를 방지할 수 있습니다.

자세한 내용은 GitHub에 있는 스트리트 뷰 메타데이터 유틸리티의 문서를 참고하세요.