📍 Основы работы с геолокацией

Определение GPS-координат пользователя — базовая функция для многих приложений. В FlutterFlow это можно реализовать через стандартные действия или кастомный код для большей гибкости.

1. Настройка разрешений (Permissions)

Прежде чем запрашивать координаты, необходимо настроить разрешения в проекте:

  1. Перейдите в Settings App Settings Permissions.
  2. Включите Location Permission.
  3. Введите текст запроса (например: “Приложению нужен доступ к 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. Вызов функции

  1. Добавьте действие на кнопку: Custom Action getCurrentPosition.
  2. Сохраните результат в Action Output Variable Name (например, userLocation).
  3. Теперь вы можете использовать userLocation (тип LatLng) для центрирования карты или сохранения в базу данных.

Автор контента: Валерий Парфёнов