프로그래밍/Xamarin
.NET MAUI에서 Google Map 설정 및 OnMapReady 활용 방법
흑우마스터
2025. 1. 14. 16:07
.NET MAUI에서 Google Map을 사용하면서 지도 로딩이 완료된 후 특정 설정을 적용하려면 OnMapReady 메서드를 활용합니다. 이 메서드는 맵이 로드되고 상호작용 준비가 되었을 때 호출됩니다.
Google Map 설정 코드 예제
아래는 OnMapReady 메서드를 활용하여 Google Map의 UI 설정을 조정하는 코드입니다.
using Android.Gms.Maps;
using Android.Gms.Maps.Model;
using Microsoft.Maui.Handlers;
using Microsoft.Maui.Controls.Compatibility.Maps.Android;
class MapCallbackHandler : Java.Lang.Object, IOnMapReadyCallback
{
private readonly IMapHandler mapHandler;
public MapCallbackHandler(IMapHandler mapHandler)
{
this.mapHandler = mapHandler;
}
public void OnMapReady(GoogleMap googleMap)
{
// 맵 핸들러를 통해 핀이나 맵 상태를 업데이트
mapHandler.UpdateValue(nameof(IMap.Pins));
// 줌 컨트롤 버튼 비활성화
googleMap.UiSettings.ZoomControlsEnabled = false;
// "내 위치" 버튼 비활성화
googleMap.UiSettings.MyLocationButtonEnabled = false;
// 나침반 비활성화
googleMap.UiSettings.CompassEnabled = false;
// 추가적으로 틸트(기울기) 제스처나 줌 제스처도 비활성화 가능
googleMap.UiSettings.TiltGesturesEnabled = false;
googleMap.UiSettings.ZoomGesturesEnabled = false;
}
}
OnMapReady 메서드는 Google Map이 완전히 로드된 후 호출됩니다. 이 시점에서 지도 객체(GoogleMap)의 UI 설정이나 상태를 조정할 수 있습니다.
- ZoomControlsEnabled
googleMap.UiSettings.ZoomControlsEnabled = false;
줌 버튼을 비활성화합니다. - MyLocationButtonEnabled
googleMap.UiSettings.MyLocationButtonEnabled = false;
"내 위치" 버튼을 비활성화합니다. 이 버튼은 위치 서비스가 활성화되었을 때 표시됩니다. - CompassEnabled
googleMap.UiSettings.CompassEnabled = false;
사용자가 지도를 회전할 때 나타나는 나침반을 비활성화합니다. - TiltGesturesEnabled
googleMap.UiSettings.TiltGesturesEnabled = false;
맵의 기울기 제스처를 비활성화합니다. - ZoomGesturesEnabled
googleMap.UiSettings.ZoomGesturesEnabled = false;
줌 인/줌 아웃 제스처를 비활성화합니다.