メインコンテンツへスキップ
バージョン: v8

@capacitor/geolocation

Geolocation APIは、GPSを使用してデバイスの現在位置を取得および追跡するためのシンプルなメソッドを提供します。利用可能な場合は、高度、方位、速度の情報も提供します。

インストール

npm install @capacitor/geolocation
npx cap sync

iOS

Appleは、位置情報についてInfo.plistにプライバシーに関する説明を指定することを要求しています。

  • NSLocationWhenInUseUsageDescriptionプライバシー - 使用中の位置情報に関する説明

XcodeでiOSのパーミッションを設定する方法の詳細については、Info.plistの設定に関するiOSガイドをご覧ください。

Android

このAPIでは、次のパーミッションをAndroidManifest.xmlに追加する必要があります。


<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />

最初の2つのパーミッションは、正確な位置データと粗い位置データの両方を要求します。最後の行はオプションですが、アプリが機能するためにGPSを必要とする場合に必要です。省略することもできますが、GPSハードウェアがないデバイスにはアプリがインストールされない可能性があることに注意してください。

Androidのパーミッションの設定の詳細については、パーミッションの設定に関するAndroidガイドをご覧ください。

変数

このプラグインは、次のプロジェクト変数(アプリのvariables.gradleファイルで定義)を使用します。

  • playServicesLocationVersion com.google.android.gms:play-services-locationのバージョン(デフォルト: 21.1.0

import { Geolocation } from '@capacitor/geolocation';

const printCurrentPosition = async () => {
const coordinates = await Geolocation.getCurrentPosition();

console.log('Current position:', coordinates);
};

API

getCurrentPosition(...)

getCurrentPosition(options?: PositionOptions | undefined) => Promise<Position>

デバイスの現在のGPS位置を取得します。

パラメータ
optionsPositionOptions

戻り値: Promise<Position>

以降 1.0.0


watchPosition(...)

watchPosition(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>

位置の変更を監視するためのウォッチを設定します。位置の変更を監視すると、大量の電力を消費する可能性があることに注意してください。必要な場合にのみリスニングするようにしてください。

パラメータ
optionsPositionOptions
callbackWatchPositionCallback

戻り値: Promise<string>

以降 1.0.0


clearWatch(...)

clearWatch(options: ClearWatchOptions) => Promise<void>

指定されたウォッチをクリアします。

パラメータ
optionsClearWatchOptions

以降 1.0.0


checkPermissions()

checkPermissions() => Promise<PermissionStatus>

位置情報パーミッションを確認します。システムの位置情報サービスが無効になっている場合は、エラーをスローします。

戻り値: Promise<PermissionStatus>

以降 1.0.0


requestPermissions(...)

requestPermissions(permissions?: GeolocationPluginPermissions | undefined) => Promise<PermissionStatus>

位置情報パーミッションを要求します。システムの位置情報サービスが無効になっている場合は、エラーをスローします。

パラメータ
permissionsGeolocationPluginPermissions

戻り値: Promise<PermissionStatus>

以降 1.0.0


インターフェース

Position

プロパティ説明以降
timestampnumbercoordsの作成タイムスタンプ1.0.0
coords{ latitude: number; longitude: number; accuracy: number; altitudeAccuracy: number | null; altitude: number | null; speed: number | null; heading: number | null; }GPS座標とデータの精度1.0.0

PositionOptions

プロパティ説明デフォルト以降
enableHighAccuracyboolean高精度モード(利用可能な場合はGPSなど)。Android 12以降のデバイスでは、ユーザーがACCESS_FINE_LOCATIONパーミッションを付与していない場合、無視されます(位置エイリアスで確認できます)。false1.0.0
timeoutnumber位置情報の更新を待つ最大時間(ミリ秒)。Androidでは、プラグインのバージョン4.0.0以降、getCurrentPositionではtimeoutは無視されます。100001.0.0
maximumAgenumber返すことができる可能性のあるキャッシュされた位置の最大経過時間(ミリ秒)01.0.0

ClearWatchOptions

プロパティ
idCallbackID

PermissionStatus

プロパティ説明以降
locationPermissionState位置エイリアスのパーミッション状態。Androidでは、ACCESS_COARSE_LOCATIONとACCESS_FINE_LOCATIONの両方のパーミッションを要求/確認します。iOSとWebでは、位置情報パーミッションを要求/確認します。1.0.0
coarseLocationPermissionStatecoarseLocationエイリアスのパーミッション状態。Androidでは、ACCESS_COARSE_LOCATIONを要求/確認します。Android 12以降では、ユーザーは近似位置(ACCESS_COARSE_LOCATION)または正確な位置(ACCESS_FINE_LOCATION)を選択できるため、アプリが高精度を必要としない場合はこのエイリアスを使用できます。iOSとWebでは、locationエイリアスと同じ値になります。1.2.0

GeolocationPluginPermissions

プロパティ
permissionsGeolocationPermissionType[]

型エイリアス

WatchPositionCallback

(position: Position | null, err?: any): void

CallbackID

string

PermissionState

'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'

GeolocationPermissionType

'location' | 'coarseLocation'