📍 Основы работы с геолокацией
Определение GPS-координат пользователя — базовая функция для многих приложений. В FlutterFlow это можно реализовать через стандартные действия или кастомный код для большей гибкости.
1. Настройка разрешений (Permissions)
Прежде чем запрашивать координаты, необходимо настроить разрешения в проекте:
- Перейдите в Settings → App Settings → Permissions.
- Включите Location Permission.
- Введите текст запроса (например: “Приложению нужен доступ к GPS для отображения вас на карте”).
2. Получение координат через Custom Action
Использование пакета geolocator позволяет получить точные координаты с проверкой всех системных разрешений.
Шаг А: Настройка зависимости
В разделе Custom Code → Custom Actions добавьте зависимость:
geolocator: ^11.0.0
Шаг Б: Код функции getCurrentPosition
- Return Value:
LatLng
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:geolocator/geolocator.dart';
Future<LatLng> getCurrentPosition() async {
final serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
throw Exception("Location services are disabled");
}
var permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
throw Exception("Location permissions are denied");
}
}
final position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high,
);
return LatLng(position.latitude, position.longitude);
}3. Вызов функции
- Добавьте действие на кнопку: Custom Action → getCurrentPosition.
- Сохраните результат в Action Output Variable Name (например,
userLocation). - Теперь вы можете использовать
userLocation(типLatLng) для центрирования карты или сохранения в базу данных.
Автор контента: Валерий Парфёнов