Я пытаюсь получить координаты пользователя по долготе и широте, но у меня возникают проблемы с доступом к этим значениям из будущего.
В настоящее время я использую пакет Geolocator для получения Future, но при получении значения я сталкиваюсь с ошибкой.
Чтобы получить местоположение, вот что я делаю:
Future<Position> locateUser() async {
return Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high)
.then((location) {
if (location != null) {
print("Location: ${location.latitude},${location.longitude}");
}
return location;
});
}
И чтобы получить эти координаты в функции виджета сборки,
Я делаю это:
bool firstTime = true;
String latitude;
String longitude;
@override
Widget build(BuildContext context) {
if(firstTime == true) {
locateUser().then((result) {
setState(() {
latitude = result.latitude.toString();
longitude = result.longitude.toString();
});
});
fetchPost(latitude, longitude);
firstTime = false;
}
Я получаю следующую ошибку:
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s)
Я хочу иметь возможность хранить эти координаты в переменных и передавать их в другие функции, которые у меня есть. Я довольно новичок во Флаттере, поэтому любая помощь будет признательна!