[flutter] 플러터에서 주소로 위치 찾기

플러터에서 지리적 위치를 표시하고 싶을 때, 사용자가 입력한 주소를 기반으로 위치를 찾아내는 기능이 필요할 수 있습니다. 이를 위해서는 지리적 위치 데이터를 사용하여 지도에 표시할 수 있는 좌표 정보를 얻어야 합니다. 이번 글에서는 플러터에서 주소로 위치를 찾아내는 방법에 대해 알아보겠습니다.

Geocoding 패키지

플러터에서는 geocoding 패키지를 사용하여 주소를 위치 좌표로 변환할 수 있습니다. 이 패키지를 사용하면 지오코딩 작업을 수행할 수 있으며, 주소로부터 위도와 경도를 얻을 수 있습니다.

import 'package:geocoding/geocoding.dart';

Future<void> findLocation(String address) async {
  try {
    List<Location> locations = await locationFromAddress(address);
    for (var location in locations) {
      print(location.latitude);
      print(location.longitude);
    }
  } catch (e) {
    print('Error: $e');
  }
}

위 코드는 geocoding 패키지를 사용하여 입력한 주소로부터 위치를 찾아내는 예시입니다. locationFromAddress 함수를 사용하여 주소를 위치 좌표로 변환하고, 반환된 결과를 활용할 수 있습니다.

위치 정보 표시

얻어낸 위도와 경도를 활용하여 지도 상에 위치를 표시할 수 있습니다. 플러터에서는 google_maps_flutter 패키지를 이용하여 지도를 표시하고, 해당 위치 정보를 마커로 표시할 수 있습니다.

import 'package:google_maps_flutter/google_maps_flutter.dart';

GoogleMapController _controller;

Marker marker;

void _onMapCreated(GoogleMapController controller) {
  _controller = controller;
  _controller.addMarker(MarkerOptions(
    position: LatLng(location.latitude, location.longitude),
    infoWindowText: InfoWindowText('마커', '해당 위치'),
  ));
}

위 코드는 google_maps_flutter 패키지를 이용하여 얻어낸 위치 정보를 지도 상에 마커로 표시하는 예시입니다. _onMapCreated 콜백 함수를 사용하여 지도를 생성하고, 해당 위치에 마커를 추가합니다.

이렇게 플러터에서 주소로 위치를 찾고 지도 상에 위치를 표시하는 방법에 대해 알아보았습니다. geocoding 패키지를 통해 주소를 위치 좌표로 변환하고, google_maps_flutter 패키지를 이용하여 지도 상에 해당 위치를 표시할 수 있습니다.

더 많은 정보를 찾으려면 geocoding 패키지 문서google_maps_flutter 패키지 문서를 참고해보세요.