Geolocator.getCurrentPosition()์ด ์๋ฎฌ๋ ์ดํฐ์์ ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ์ฅ์น์์ ์๋ํฉ๋๋ค.
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class LoadingScreen extends StatefulWidget {
<strong i="6">@override</strong>
_LoadingScreenState createState() => _LoadingScreenState();
}
class _LoadingScreenState extends State<LoadingScreen> {
void getLocation() async {
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.low,
);
print(position);
}
<strong i="7">@override</strong>
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RaisedButton(
onPressed: () {
getLocation();
},
child: Text('Get Location'),
),
),
);
}
}
์ด๊ฒ์ ์ฝ๋์ด๊ณ print(position)๋ ์๋์ ๊ฒฝ๋๋ฅผ ์ธ์ํ์ง ์์ต๋๋ค.
iOS ๋๋ Android์์ ํ ์คํธ ์ค์ ๋๊น?
์๋ฎฌ๋ ์ดํฐ/์๋ฎฌ๋ ์ดํฐ์์ ์์น ์ ๋ฐ์ดํธ๋ฅผ ํ์ฑํํ๋์ง ํ์ธํ์ญ์์ค. ์ด๊ฒ์ ์๋ฎฌ๋ ์ดํฐ/์๋ฎฌ๋ ์ดํฐ์ ์ค์ ์์ ์ํํ ์ ์์ต๋๋ค.
๋ํ ์๋ฎฌ๋ ์ดํฐ/์๋ฎฌ๋ ์ดํฐ๊ฐ LocationAccuracy.low
ํญ์ ์ ์๋ํ๋ ๊ฒ์ ์๋๋๋ค. ์ด๋ฅผ ๋ ๋์ ์์ค์ผ๋ก ์ด๋ํ๋ ค๊ณ ํ ์ ์์ต๋๋ค.
๋๋ ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ผํ๊ณ ์์ต๋๋ค. ๋์ ์ ํ๋์ ์์น๋ฅผ โโ์ป์ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋๋ต์ ์ธ ์์น์ ๋ํ ์ก์ธ์ค ๊ถํ๋ง ์์ฒญํ์ต๋๋ค. @mvanbeusekom ๋ ์ ๋๊ธ์ ๋ณด๊ณ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
๋ผ๋ ํ์ํ ๊ถํ์ ๋งค๋ํ์คํธ์ ์ถ๊ฐํ ํ LocationAccuracy,high
์ ์๋ํ๊ณ ์ถ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํด๋น ๊ถํ์ ์ถ๊ฐํ ํ ๋ฎ์ ์ ํ๋์ ๋์ ์ ํ๋ ์์ฒญ์ด ๋ชจ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ํฅ๋ฏธ๋ก์ด.
์ง๊ธ์ ์ด ๋ฌธ์ ๋ฅผ ๋ซ๊ฒ ์ต๋๋ค. Android ์๋ฎฌ๋ ์ดํฐ๊ฐ COARSE ๊ถํ์ผ๋ก ์ ๋๋ก ์๋ํ์ง ์๋ ๊ฒ์ ์๋ ค์ง ๋ฌธ์ ์ ๋๋ค. ์ด๋ COARSE ์์น๊ฐ ์๋ฎฌ๋ ์ดํฐ์์ ์ฌ์ฉํ ์ ์๋ ์ ๋ฃฐ๋ฌ ๋คํธ์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์น๋ฅผ ์ผ๊ฐ ์ธก๋ํ๋ ค๊ณ ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ผํ๊ณ ์์ต๋๋ค. ๋์ ์ ํ๋์ ์์น๋ฅผ โโ์ป์ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋๋ต์ ์ธ ์์น์ ๋ํ ์ก์ธ์ค ๊ถํ๋ง ์์ฒญํ์ต๋๋ค. @mvanbeusekom ๋ ์ ๋๊ธ์ ๋ณด๊ณ
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
๋ผ๋ ํ์ํ ๊ถํ์ ๋งค๋ํ์คํธ์ ์ถ๊ฐํ ํLocationAccuracy,high
์ ์๋ํ๊ณ ์ถ์์ต๋๋ค.๊ทธ๋ฌ๋ ํด๋น ๊ถํ์ ์ถ๊ฐํ ํ ๋ฎ์ ์ ํ๋์ ๋์ ์ ํ๋ ์์ฒญ์ด ๋ชจ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ํฅ๋ฏธ๋ก์ด.