오늘은 geolocator 패키지 사용법에 대해서 알아보겠습니다.
개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 2.8.1
소스코드 위치 - https://github.com/mike-bskim/weather/releases/tag/start
먼저 준비 작업
1. 패키지 추가
geolocator: ^8.2.0
2. AndroidManifest.xml 파일에 permission 추가
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.weather">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 이부분 추가
main.dart 파일
import 'package:flutter/material.dart';
import 'screens/loading.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Weather app',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const Loading(),
);
}
}
loading.dart 파일
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class Loading extends StatefulWidget {
const Loading({Key? key}) : super(key: key);
@override
_LoadingState createState() => _LoadingState();
}
class _LoadingState extends State<Loading> {
void getLocation() async{
// 기본설정은 아래처럼 하면 자신의 위도/경도 위치를 알수 있다.
LocationPermission permission = await Geolocator.requestPermission();
Position position = await Geolocator.
getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
debugPrint(position.toString());
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
debugPrint('ElevatedButton clicked~~');
getLocation();
},
child: const Text(
'Get my location',
style: TextStyle(
color: Colors.white
),
),
),
),
);
}
}
에뮬로 사용할 경우, 자신의 위치를 수동으로 설정할수 있어서 편리함.
콘솔창 출력 결과
I/flutter ( 8513): ElevatedButton clicked~~
I/flutter ( 8513): Latitude: 37.566535, Longitude: 126.9779683
[참고자료] 코딩셰프
- [https://www.youtube.com/watch?v=YqKMBQYZSmw&list=PLQt_pzi-LLfoOpp3b-pnnLXgYpiFEftLB&index=13]
'Flutter > 10 app Weather' 카테고리의 다른 글
[Flutter] App Weather - 5단계 추가 데이터 & 모델링 (0) | 2022.04.29 |
---|---|
[Flutter] App Weather - 4단계 UI (0) | 2022.04.29 |
[Flutter] App Weather - 3.5단계 model of openweathermap (0) | 2022.04.28 |
[Flutter] App Weather - 3단계 json from openweathermap (0) | 2022.04.28 |
[Flutter] App Weather - 2단계 http & json (0) | 2022.04.27 |