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

Определение 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) для центрирования карты или сохранения в базу данных.

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