[flutter] 플러터에서 사용자가 지도를 움직였을 때 이벤트 처리하기

플러터 앱에서 지도를 터치하여 이동할 때 이벤트를 처리하는 방법을 알아보겠습니다.

패키지 추가

먼저, google_maps_flutter 패키지를 pubspec.yaml 파일에 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  google_maps_flutter: ^2.2.0

패키지를 추가한 후에는 터미널에서 flutter pub get 명령어를 통해 종속성을 설치해야 합니다.

이벤트 처리

다음으로, GoogleMap 위젯을 사용하여 지도를 표시하고 onCameraMove 콜백을 이용하여 지도 이동 이벤트를 처리할 수 있습니다.

GoogleMap(
  onCameraMove: (CameraPosition position) {
    // 사용자가 지도를 이동할 때 발생하는 이벤트 처리
  },
),

위 코드에서 onCameraMove 콜백은 지도가 이동될 때마다 호출되므로, 이를 활용하여 지도 이동 이벤트를 처리할 수 있습니다.

예제

이제 전체적인 코드를 통해 예제를 살펴보겠습니다.

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: GoogleMap(
          initialCameraPosition: CameraPosition(
            target: LatLng(37.532600, 127.024612), // 초기 지도 중앙 위치
            zoom: 15, // 초기 줌 레벨
          ),
          onCameraMove: (CameraPosition position) {
            // 사용자가 지도를 이동할 때 발생하는 이벤트 처리
            print('지도가 이동됨: ${position.target}');
          },
        ),
      ),
    );
  }
}

위 예제는 GoogleMap 위젯을 사용하여 기본 지도를 표시하고, onCameraMove 콜백을 통해 지도 이동 이벤트를 출력하는 방법을 보여줍니다. 사용자가 지도를 이동할 때마다, 콘솔에 현재 지도 중앙 위치가 출력됩니다.

이렇게하여 플러터 앱에서 지도 이동 이벤트를 쉽게 처리할 수 있습니다.

참고 자료