[flutter] 플러터 geolocator를 이용한 현재 위치 가져오기

지리적 위치 기반 서비스는 모바일 앱에서 매우 중요한 기능 중 하나입니다. 플러터(Flutter)를 사용하여 현재 장치의 위치를 가져올 수 있는 방법을 알아보겠습니다. 이를 위해 플러터의 geolocator 패키지를 사용할 것입니다.

1. geolocator 패키지 추가하기

프로젝트의 pubspec.yaml 파일에 geolocator 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  geolocator: ^7.6.2

위에서 geolocator 패키지의 최신 버전(7.6.2)을 사용하도록 지정하였습니다. 필요에 따라 버전을 업데이트할 수 있습니다.

2. 위치 가져오기 코드 작성하기

이제 위치 정보를 가져오기 위한 코드를 작성해 보겠습니다. 아래와 같이 main.dart 파일을 열고 다음 내용을 추가합니다:

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Position? _currentPosition;

  @override
  void initState() {
    super.initState();
    _getCurrentLocation();
  }

  void _getCurrentLocation() async {
    final position = await Geolocator.getCurrentPosition(
        desiredAccuracy: LocationAccuracy.high);
    setState(() {
      _currentPosition = position;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Geolocator Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Latitude: ${_currentPosition?.latitude}',
              ),
              Text(
                'Longitude: ${_currentPosition?.longitude}',
              ),
            ],
          ),
        ),
      ),
    );
  }
}

위 코드는 앱을 실행하면 현재 위치의 위도(latitude)와 경도(longitude)를 가져와서 화면에 표시합니다. Geolocator.getCurrentPosition 메서드를 사용하여 위치를 가져옵니다.

3. 앱 실행 및 위치 권한 설정하기

위치 관련 기능을 사용하기 위해서는 앱이 위치 권한을 가지고 있어야 합니다. 따라서 AndroidManifest.xml (Android) 또는 Info.plist (iOS) 파일에 위치 권한에 대한 설정을 추가해야 합니다.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is required to show your current position.</string>

위 코드에서는 사용자에게 위치 권한이 필요한 이유를 안내하는 메시지를 표시하는 것을 확인할 수 있습니다.

4. 앱 실행하기

이제 위 코드가 포함된 앱을 실행해 보겠습니다. 실행하면 앱은 현재 위치를 가져와서 위도와 경도를 화면에 표시할 것입니다.

지리적인 위치 정보를 사용하는 앱을 개발할 때는 사용자의 개인정보 보호를 위해 적절한 안내 및 동의 절차를 거쳐야 합니다.

이제 여러분은 플러터의 geolocator 패키지를 사용하여 현재 위치를 가져올 수 있는 방법을 알게 되었습니다. 이를 응용하여 다른 위치 관련 서비스와 기능을 개발할 수 있습니다.

더 많은 정보 및 예제 코드는 geolocator 패키지의 문서를 참조하시기 바랍니다.