---
read_when:
    - Додавання підтримки вузла розташування або інтерфейсу дозволів
    - Проєктування дозволів Android на доступ до місцезнаходження або поведінки на передньому плані
summary: Команда геолокації для вузлів (location.get), режими дозволів і поведінка Android у передньому плані
title: Команда місцезнаходження
x-i18n:
    generated_at: "2026-05-06T03:40:11Z"
    model: gpt-5.5
    provider: openai
    source_hash: 63ed754bfdda1cf379dcb7ac40817c0b93cc1efe4526512d70258072da4bc8a7
    source_path: nodes/location-command.md
    workflow: 16
---

## Коротко

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

## Чому селектор (а не просто перемикач)

Дозволи ОС мають кілька рівнів. Ми можемо показати селектор у застосунку, але фактичний дозвіл усе одно визначає ОС.

- iOS/macOS можуть показувати **Під час використання** або **Завжди** в системних запитах/Налаштуваннях.
- Застосунок Android наразі підтримує лише геолокацію на передньому плані.
- Точна геолокація є окремим дозволом (iOS 14+ «Точна», Android «fine» проти «coarse»).

Селектор в UI задає режим, який ми запитуємо; фактичний дозвіл зберігається в налаштуваннях ОС.

## Модель налаштувань

Для кожного пристрою Node:

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

Поведінка UI:

- Вибір `whileUsing` запитує дозвіл на геолокацію на передньому плані.
- Якщо ОС відхиляє запитаний рівень, повернутися до найвищого наданого рівня та показати стан.

## Зіставлення дозволів (node.permissions)

Необов’язково. Node 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.
- Інші платформи Node можуть відрізнятися.

## Інтеграція з моделлю/інструментами

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

## Текст UX (рекомендовано)

- Вимкнено: «Передавання геолокації вимкнено.»
- Під час використання: «Лише коли OpenClaw відкрито.»
- Точна: «Використовувати точну GPS-геолокацію. Вимкніть перемикач, щоб ділитися приблизною геолокацією.»

## Пов’язане

- [Розбір геолокації каналу](/uk/channels/location)
- [Захоплення з камери](/uk/nodes/camera)
- [Режим розмови](/uk/nodes/talk)
