Flutter-geolocator: Geolocator.getCurrentPosition()์ด ์œ„๋„ ๋˜๋Š” ๊ฒฝ๋„๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 11์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Baseflow/flutter-geolocator

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)๋Š” ์œ„๋„์™€ ๊ฒฝ๋„๋ฅผ ์ธ์‡„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

needs more info

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋†’์€ ์ •ํ™•๋„์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์–ป์„ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋Œ€๋žต์ ์ธ ์œ„์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ๋งŒ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. @mvanbeusekom ๋‹˜ ์˜ ๋Œ“๊ธ€์„ ๋ณด๊ณ  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ๋ผ๋Š” ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ถ”๊ฐ€ํ•œ ํ›„ LocationAccuracy,high ์„ ์‹œ๋„ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ๋‚ฎ์€ ์ •ํ™•๋„์™€ ๋†’์€ ์ •ํ™•๋„ ์š”์ฒญ์ด ๋ชจ๋‘ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กœ์šด.

๋ชจ๋“  3 ๋Œ“๊ธ€

iOS ๋˜๋Š” Android์—์„œ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๊นŒ?

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ/์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์œ„์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ/์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์„ค์ •์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ/์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ LocationAccuracy.low ํ•ญ์ƒ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ฅผ ๋” ๋†’์€ ์ˆ˜์ค€์œผ๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋†’์€ ์ •ํ™•๋„์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์–ป์„ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋Œ€๋žต์ ์ธ ์œ„์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ๋งŒ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. @mvanbeusekom ๋‹˜ ์˜ ๋Œ“๊ธ€์„ ๋ณด๊ณ  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ๋ผ๋Š” ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ถ”๊ฐ€ํ•œ ํ›„ LocationAccuracy,high ์„ ์‹œ๋„ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ๋‚ฎ์€ ์ •ํ™•๋„์™€ ๋†’์€ ์ •ํ™•๋„ ์š”์ฒญ์ด ๋ชจ๋‘ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กœ์šด.

์ง€๊ธˆ์€ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค. Android ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ COARSE ๊ถŒํ•œ์œผ๋กœ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” COARSE ์œ„์น˜๊ฐ€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ„์น˜๋ฅผ ์‚ผ๊ฐ ์ธก๋Ÿ‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰