@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位置を取得します。
パラメータ | 型 |
---|---|
options | PositionOptions |
戻り値: Promise<Position>
以降 1.0.0
watchPosition(...)
watchPosition(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>
位置の変更を監視するためのウォッチを設定します。位置の変更を監視すると、大量の電力を消費する可能性があることに注意してください。必要な場合にのみリスニングするようにしてください。
パラメータ | 型 |
---|---|
options | PositionOptions |
callback | WatchPositionCallback |
戻り値: Promise<string>
以降 1.0.0
clearWatch(...)
clearWatch(options: ClearWatchOptions) => Promise<void>
指定されたウォッチをクリアします。
パラメータ | 型 |
---|---|
options | ClearWatchOptions |
以降 1.0.0
checkPermissions()
checkPermissions() => Promise<PermissionStatus>
位置情報パーミッションを確認します。システムの位置情報サービスが無効になっている場合は、エラーをスローします。
戻り値: Promise<PermissionStatus>
以降 1.0.0
requestPermissions(...)
requestPermissions(permissions?: GeolocationPluginPermissions | undefined) => Promise<PermissionStatus>
位置情報パーミッションを要求します。システムの位置情報サービスが無効になっている場合は、エラーをスローします。
パラメータ | 型 |
---|---|
permissions | GeolocationPluginPermissions |
戻り値: Promise<PermissionStatus>
以降 1.0.0
インターフェース
Position
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
timestamp | number | coordsの作成タイムスタンプ | 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
プロパティ | 型 | 説明 | デフォルト | 以降 |
---|---|---|---|---|
enableHighAccuracy | boolean | 高精度モード(利用可能な場合はGPSなど)。Android 12以降のデバイスでは、ユーザーがACCESS_FINE_LOCATIONパーミッションを付与していない場合、無視されます(位置エイリアスで確認できます)。 | false | 1.0.0 |
timeout | number | 位置情報の更新を待つ最大時間(ミリ秒)。Androidでは、プラグインのバージョン4.0.0以降、getCurrentPositionではtimeoutは無視されます。 | 10000 | 1.0.0 |
maximumAge | number | 返すことができる可能性のあるキャッシュされた位置の最大経過時間(ミリ秒) | 0 | 1.0.0 |
ClearWatchOptions
プロパティ | 型 |
---|---|
id | CallbackID |
PermissionStatus
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
location | PermissionState | 位置エイリアスのパーミッション状態。Androidでは、ACCESS_COARSE_LOCATIONとACCESS_FINE_LOCATIONの両方のパーミッションを要求/確認します。iOSとWebでは、位置情報パーミッションを要求/確認します。 | 1.0.0 |
coarseLocation | PermissionState | coarseLocationエイリアスのパーミッション状態。Androidでは、ACCESS_COARSE_LOCATIONを要求/確認します。Android 12以降では、ユーザーは近似位置(ACCESS_COARSE_LOCATION)または正確な位置(ACCESS_FINE_LOCATION)を選択できるため、アプリが高精度を必要としない場合はこのエイリアスを使用できます。iOSとWebでは、locationエイリアスと同じ値になります。 | 1.2.0 |
GeolocationPluginPermissions
プロパティ | 型 |
---|---|
permissions | GeolocationPermissionType[] |
型エイリアス
WatchPositionCallback
(position: Position | null, err?: any): void
CallbackID
string
PermissionState
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
GeolocationPermissionType
'location' | 'coarseLocation'