---
read_when:
    - Добавление поддержки узла местоположения или UI разрешений
    - Проектирование разрешений Android на доступ к местоположению или поведения в активном режиме
summary: Команда определения местоположения для узлов (location.get), режимы разрешений и поведение Android на переднем плане
title: Команда местоположения
x-i18n:
    generated_at: "2026-06-28T23:09:39Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 63ed754bfdda1cf379dcb7ac40817c0b93cc1efe4526512d70258072da4bc8a7
    source_path: nodes/location-command.md
    workflow: 16
---

## Кратко

- `location.get` — команда узла (через `node.invoke`).
- По умолчанию отключена.
- В настройках Android-приложения используется селектор: Отключено / При использовании.
- Отдельный переключатель: Точная геолокация.

## Почему селектор (а не просто переключатель)

Разрешения ОС имеют несколько уровней. Мы можем показывать селектор внутри приложения, но фактическое разрешение всё равно определяет ОС.

- iOS/macOS могут показывать **При использовании** или **Всегда** в системных запросах/настройках.
- Android-приложение сейчас поддерживает только геолокацию на переднем плане.
- Точная геолокация — это отдельное разрешение (iOS 14+ «Точная», Android «точная» и «приблизительная»).

Селектор в UI управляет запрашиваемым нами режимом; фактическое разрешение хранится в настройках ОС.

## Модель настроек

Для каждого устройства-узла:

- `location.enabledMode`: `off | whileUsing`
- `location.preciseEnabled`: bool

Поведение UI:

- Выбор `whileUsing` запрашивает разрешение на геолокацию на переднем плане.
- Если ОС отклоняет запрошенный уровень, вернуться к максимальному выданному уровню и показать статус.

## Сопоставление разрешений (node.permissions)

Необязательно. Узел macOS сообщает `location` через карту разрешений; iOS/Android могут не включать его.

## Команда: `location.get`

Вызывается через `node.invoke`.

Параметры (рекомендуемые):

```json
{
  "timeoutMs": 10000,
  "maxAgeMs": 15000,
  "desiredAccuracy": "coarse|balanced|precise"
}
```

Полезная нагрузка ответа:

```json
{
  "lat": 48.20849,
  "lon": 16.37208,
  "accuracyMeters": 12.5,
  "altitudeMeters": 182.0,
  "speedMps": 0.0,
  "headingDeg": 270.0,
  "timestamp": "2026-01-03T12:34:56.000Z",
  "isPrecise": true,
  "source": "gps|wifi|cell|unknown"
}
```

Ошибки (стабильные коды):

- `LOCATION_DISABLED`: селектор отключён.
- `LOCATION_PERMISSION_REQUIRED`: отсутствует разрешение для запрошенного режима.
- `LOCATION_BACKGROUND_UNAVAILABLE`: приложение находится в фоне, но разрешён только режим «При использовании».
- `LOCATION_TIMEOUT`: не удалось получить координаты вовремя.
- `LOCATION_UNAVAILABLE`: системный сбой / нет поставщиков данных.

## Поведение в фоне

- Android-приложение отклоняет `location.get`, когда находится в фоне.
- Держите OpenClaw открытым при запросе геолокации на Android.
- Другие платформы узлов могут отличаться.

## Интеграция с моделью/инструментами

- Поверхность инструмента: инструмент `nodes` добавляет действие `location_get` (узел обязателен).
- CLI: `openclaw nodes location get --node <id>`.
- Рекомендации для агента: вызывать только если пользователь включил геолокацию и понимает область действия.

## Текст UX (рекомендуемый)

- Отключено: «Передача геолокации отключена.»
- При использовании: «Только когда OpenClaw открыт.»
- Точная: «Использовать точную GPS-геолокацию. Отключите этот параметр, чтобы передавать приблизительную геолокацию.»

## Связанное

- [Разбор геолокации в канале](/ru/channels/location)
- [Съёмка с камеры](/ru/nodes/camera)
- [Режим разговора](/ru/nodes/talk)
