[flutter] 플러터에서의 주소 및 지명 검색 처리 방법

플러터는 Google의 개발한 오픈 소스 UI 소프트웨어 개발 키트로, 다양한 플랫폼에서 동작하는 애플리케이션을 개발할 수 있습니다. 이번 글에서는 플러터에서 주소 및 지명 검색을 처리하는 방법에 대해서 알아보겠습니다.

1. Google 지도 API 키 발급

먼저, 주소 및 지명 검색을 처리하기 위해서는 Google Maps API를 사용해야 합니다. Google Maps API를 사용하기 위해서는 API 키가 필요합니다. 아래는 API 키 발급 절차입니다.

  1. Google Cloud 플랫폼 콘솔로 이동합니다.
  2. 프로젝트를 선택하고, API 및 서비스 > 대시보드로 이동합니다.
  3. “서비스 추가” 버튼을 클릭하고, “Maps JavaScript API”를 검색하여 선택한 뒤, “활성화” 버튼을 클릭합니다.
  4. 좌측 탐색 메뉴에서 “API 및 서비스 > 자격증명”으로 이동합니다.
  5. 오른쪽에 “키 만들기” 버튼을 클릭합니다.
  6. “API 키”를 생성하고, 해당 키를 복사합니다.

2. Geocoding API 사용하기

Geocoding API는 특정 주소나 지명을 좌표로 변환해주는 서비스입니다. 플러터에서 Geocoding API를 사용하기 위해서는 geocoding 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 패키지를 추가합니다.

dependencies:
  geocoding: ^2.0.1

패키지 추가 후, main.dart 파일에서 다음과 같이 패키지를 import 합니다.

import 'package:geocoding/geocoding.dart';

이제 주소를 좌표로 변환하는 함수를 작성해보겠습니다.

Future<List<Location>> searchLocation(String query) async {
  List<Location> locations = await locationFromAddress(query);
  return locations;
}

위의 searchLocation 함수는 query 파라미터로 받은 주소를 좌표로 변환하여 반환합니다. 반환값으로는 Location 객체의 리스트를 반환합니다.

3. Places API 사용하기

Places API는 지명이나 장소에 대한 자동 완성 및 세부 정보를 제공해주는 서비스입니다. 플러터에서 Places API를 사용하기 위해서는 google_maps_flutter 패키지를 설치해야 합니다.

dependencies:
  google_maps_flutter: ^2.0.9

패키지 추가 후, main.dart 파일에서 다음과 같이 패키지를 import 합니다.

import 'package:google_maps_flutter/google_maps_flutter.dart';

자동 완성 및 세부 정보를 제공받으려면 PlacesAutocomplete 위젯을 사용해야 합니다.

PlacesAutocomplete(
  apiKey: '<YOUR_API_KEY>',
  onPlaceSelected: (Place place) {
    print(place);
  },
)

<YOUR_API_KEY>에는 발급받은 Google Maps API 키를 입력합니다. onPlaceSelected 콜백 함수에서는 선택된 장소에 대한 정보를 처리할 수 있습니다.

이렇게 플러터에서 주소 및 지명 검색을 처리하는 방법에 대해서 알아보았습니다. Google Maps API를 사용하여 다양한 지리적 정보를 활용할 수 있으니, 원하는 기능을 구현하여 애플리케이션을 보완해보시기 바랍니다.

참고자료