コンテンツにスキップ

Node の位置情報を取得する:location.get の使い方

デバイスの位置情報を扱う機能を実装しようとすると、OSごとの権限管理の複雑さに直面することがよくあります。フォアグラウンドでは動作するのにバックグラウンドでは動作しない、あるいはユーザーが許可したはずの精度が得られないといった問題は、多くの開発者が経験する共通の悩みです。

OpenClaw では、これらの複雑な OS レベルの挙動を整理し、location.get コマンドを通じて一貫した方法で位置情報にアクセスできるようになっています。

  • OpenClaw Node がインストールされたデバイス(iOS, Android, または macOS)
  • 各 OS での適切なシステム権限の許可

Node から位置情報を取得するための最小限の手順は以下の通りです。

Node デバイスごとに設定が必要です。デフォルトは Off になっているため、以下のいずれかを選択します。

  • While Using: アプリを使用中のみ許可します。
  • Always: バックグラウンドでの取得も許可します。

精細な位置情報が必要な場合は、location.preciseEnabled(Precise Location)もオンにします。

node.invoke を使用して location.get を呼び出します。

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

成功すると、以下のようなデータが返ってきます。

{
"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"
}

CLI から直接実行して動作を確認することもできます。

Terminal window
openclaw nodes location get --node <id>

位置情報の取得に失敗する場合、以下のエラーコードを確認してください。

  • LOCATION_DISABLED: セレクターが Off に設定されています。
  • LOCATION_PERMISSION_REQUIRED: 要求したモードに必要な OS 権限が不足しています。
  • LOCATION_BACKGROUND_UNAVAILABLE: アプリがバックグラウンドにありますが、While Using しか許可されていません。
  • LOCATION_TIMEOUT: 時間内に位置を特定できませんでした。
  • LOCATION_UNAVAILABLE: システムエラー、または位置情報プロバイダーが利用不可です。

OS の制限により、UI で Always を選択しても、OS の設定画面でユーザーが手動で許可をアップグレードする必要がある場合があります。特に Android 10 以降や iOS では、システムプロンプトの指示に従ってください。

設定や実装で困ったときは、AI Setup Assistant に相談してみてください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。