흑우마스터의 마법의 공간

.NET MAUI에서 Google Map 설정 및 OnMapReady 활용 방법 본문

프로그래밍/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;
    줌 인/줌 아웃 제스처를 비활성화합니다.