[Flutter] Geolocator #location

2024. 2. 21. 10:02dev/flutter

728x90
반응형

add

flutter pub add geolocator

 

 

import

import 'package:geolocator/geolocator.dart';

 

 

permission setting - android 

Make sure at least ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION are defined in the manifest.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.donguran.weather">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 

permission setting - iOS

NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription

NSLocationUsageDescription (mac os)

 

permission check

LocationPermission permission = await Geolocator.checkPermission();

if (permission == LocationPermission.denied) {
  permission = await Geolocator.requestPermission();

 

 

 

Latitude & Longitude

var currentPosition = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.medium);

 

 

LastPosition

var lastPosition = await Geolocator.getLastKnownPosition(forceAndroidLocationManager: true);

 

result

 

 

추가로 현재 위치의 country information이 필요한 경우

add

flutter pub add geocoding

 

 

import

import 'package:geocoding/geocoding.dart';

 

 

apply

double latitude = currentPosition.latitude;
double longitude = currentPosition.longitude;

List<Placemark> placemark = await placemarkFromCoordinates(latitude, longitude);
debugPrint("placemark...$placemark");

Placemark place = placemark.first;
debugPrint("=================");
debugPrint("place:$place, type:${place.isoCountryCode}");

 

 

원하는 값을 placeMark인스턴스의 프로퍼티를 호출하여 확인한다.

I/flutter ( 7328): [WeatherPage].. place:      Name: , 
I/flutter ( 7328):       Street: 대한민국 서울특별시 중구, 
I/flutter ( 7328):       ISO Country Code: KR, 
I/flutter ( 7328):       Country: 대한민국, 
I/flutter ( 7328):       Postal code: , 
I/flutter ( 7328):       Administrative area: , 
I/flutter ( 7328):       Subadministrative area: ,
I/flutter ( 7328):       Locality: ,
I/flutter ( 7328):       Sublocality:,
I/flutter ( 7328):       Thoroughfare: 
I/flutter ( 7328):       Subthoroughfare: 

728x90
반응형

'dev > flutter' 카테고리의 다른 글

[Flutter] Dialog, Modal  (0) 2024.02.22
[Flutter] TextField  (0) 2024.02.21
[Flutter] CustomPainter  (0) 2024.02.14
[Flutter] landscape, portrait #fullscreen #system  (0) 2024.02.11
[Flutter] Lifecycle  (1) 2024.02.07