Geolocation API
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Geolocation インターフェイスは、端末の位置をプログラムから取得することができるオブジェクトを表します。ウェブコンテンツが端末の位置情報にアクセスすることができるようにします。これにより、ウェブサイトやアプリがユーザーの位置に応じてカスタマイズされた結果を提供できるようになります。
このインターフェイスを持つオブジェクトは、 Navigator オブジェクトの navigator.geolocation プロパティを使って得ることができます。
メモ: セキュリティ上の理由により、ウェブページが位置情報にアクセスしようとする時、ユーザーにアクセス許可が求められます。その方法やポリシーはブラウザーによって異なることに注意してください。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 5 | 12 | 3.5 | 5 | 18 | ≤3 | |
| clearWatch() は Geolocation インターフェイスのメソッドで、以前 Geolocation.watchPosition() によって登録された位置情報/エラーの監視ハンドラーを解除するために使用します。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| getCurrentPosition() は Geolocation インターフェイスのメソッドで、端末の現在位置を取得するために使われます。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
secure_context_required 安全なコンテキストが必要 | 50 | 79 | 55 | 10 | 50 | 10 |
| watchPosition() は Geolocation インターフェイスのメソッドで、端末の位置が変化するたびに自動的に呼び出されるハンドラー関数を登録するために用いられます。 また必要に応じてエラー処理コールバック関数を指定することができます。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| GeolocationCoordinates インターフェイスは、地球上の端末の位置と高度、およびこれらのプロパティが計算された精度を表します。 地理の位置情報情報は、世界測地系座標 (WGS84) で指定された形で提供されます。 | 79 | 79 | 72 | 13.1 | 79 | 13.4 |
| accuracy は GeolocationCoordinates インターフェイスの読み取り専用プロパティで、厳密な正の double 値であり、信頼度 95% の GeolocationCoordinates.latitude および GeolocationCoordinates.longitude の精度をメートル単位で表します。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| GeolocationCoordinates.altitude は読み取り専用のプロパティであり、 double 値で、その位置の WGS84 楕円体(公称海面水準を定義するもの)からの高度をメートル単位で表します。この値は、実装がこのデータを提供できない場合は null となります。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| altitudeAccuracy は GeolocationCoordinates インターフェイスの読み取り専用プロパティで、厳密な正の double 値であり、信頼度 95% の altitude の精度をメートル単位で表します。実装が高度の計測に対応していない場合、この値は null になります。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| heading は GeolocationCoordinates インターフェイスの読み取り専用プロパティであり、 double 値で端末の移動方向を表します。この値は角度で指定され、端末の移動方向が北向きからどれだけ角度があるかを示します。 0 度は真北を表し、そこから時計回りに指定します(すなわち、東は 90 度で西は 270 度になります)。 GeolocationCoordinates.speed が 0 である場合、または端末が移動方向の情報を提供できない場合、heading は null になります。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| latitude は GeolocationCoordinates インターフェイスの読み取り専用プロパティであり、 double 値でその位置の緯度を 10 進形式で表します。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| longitude は GeolocationCoordinates インターフェイスの読み取り専用プロパティであり、地理的な位置の経度 10 進数で表す数値です。 ミリ秒単位の Unix timeとして提供される、計測時刻を表すタイムスタンプ共に、 GeolocationCoordinates オブジェクトは GeolocationPosition インターフェイスの一部であり、位置位置を取得して返す位置情報 API 関数が返すオブジェクト型です。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
secure_context_required 安全なコンテキストが必要 | 47 | 79 | 55 | 10 | 47 | 10 |
| speed は GeolocationCoordinates インターフェイスの読み取り専用プロパティであり、 double 型で端末の移動速度をメートル毎秒で表します。実装でこれを計測することができなければ、この値は null になります。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| toJSON() は GeolocationCoordinates インターフェイスのメソッドで、Serializationです。これはこの GeolocationCoordinates オブジェクトの JSON 表現を返します。 | 126 | 126 | 129 | 18 | 126 | 18 |
| GeolocationPosition インターフェイスは対象のデバイスのある時間における現在位置を表します。GeolocationCoordinates オブジェクトで表される位置情報には、地球を表す楕円体上における平面座標のほかに、高度や速度といった情報も含まれます。 | 79 | 79 | 72 | 13.1 | 79 | 13.4 |
| coords は GeolocationPosition インターフェイスの読み取り専用のプロパティで、地理的な位置を表す GeolocationCoordinates オブジェクトを返します。このオブジェクトには、地球上の位置(経度、緯度)、高度、速度が含まれ、グループ化して返されます。また、これらの値に関する精度情報も含まれます。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
secure_context_required 安全なコンテキストが必要 | 47 | ≤18 | 55 | 10 | 47 | 10 |
| timestamp は GeolocationPosition インターフェイスの読み取り専用プロパティで、端末が位置を測定した日時を表します。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
| toJSON() は GeolocationPosition インターフェイスのメソッドで、Serializationです。これはこの GeolocationPosition オブジェクトの JSON 表現を返します。 | 126 | 126 | 129 | 18 | 126 | 18 |
| GeolocationPositionError インターフェイスは位置情報の取得時に発生したエラーの理由を表します。 | 79 | 79 | 72 | 13.1 | 79 | 13.4 |
| code は GeolocationPositionError インターフェイスの読み取り専用プロパティで、 unsigned short でエラーコードを表します。 | 5 | 12 | 3.5 | 5 | 18 | 4.2 |
| message は GeolocationPositionError インターフェイスの読み取り専用プロパティで、エラーの詳細を説明する、人間が読める文字列を返します。 | 5 | 12 | 3.5 | 5 | 18 | 4.2 |
secure_context_required 安全なコンテキストが必要 | 47 | ≤18 | 55 | 10 | 47 | 10 |
| Navigator.geolocation は読み取り専用のプロパティで、ウェブコンテンツが端末の位置情報にアクセスするための Geolocation オブジェクトを返します。これにより、ウェブサイトやアプリがユーザーの現在の位置に応じた結果を提供できるようになります。 | 5 | 12 | 3.5 | 5 | 18 | ≤3 |
geolocation (secure context required) 安全なコンテキストが必要 | 47 | 79 | 55 | 10 | 47 | 10 |
permission_geolocation geolocation`パーミッション | 43 | 79 | 46 | 16 | 43 | 16 |
| その他 | ||||||
html.elements.iframe.allow.geolocation | 64 | 79 | 74 | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける geolocation ディレクティブは、現在の文書が Geolocation インターフェイスを使用することを許可するかどうかを制御します。 | 88 | 88 | | | 88 | |
- GPSD (GPS デーモン) サポートが Firefox 3.6 で追加されました。WiFiベースの位置情報はGoogle(プライバシー)またはカスタムプロバイダ(MLSの指示)によって提供されます。
- このバージョンで機能が削除されました (78)
- 以前は別名で対応していました: Coordinates (5)
- このバージョンで機能が削除されました (79)
- 以前は別名で対応していました: Coordinates (12)
- このバージョンで機能が削除されました (71)
- 以前は別名で対応していました: Coordinates (3.5)
- このバージョンで機能が削除されました (13.1)
- 以前は別名で対応していました: Coordinates (5)
- このバージョンで機能が削除されました (78)
- 以前は別名で対応していました: Coordinates (18)
- このバージョンで機能が削除されました (13.4)
- 以前は別名で対応していました: Coordinates (≤3)
- このバージョンで機能が削除されました (78)
- 以前は別名で対応していました: Position (5)
- このバージョンで機能が削除されました (79)
- 以前は別名で対応していました: Position (12)
- このバージョンで機能が削除されました (71)
- 以前は別名で対応していました: Position (3.5)
- このバージョンで機能が削除されました (13.1)
- 以前は別名で対応していました: Position (5)
- このバージョンで機能が削除されました (78)
- 以前は別名で対応していました: Position (18)
- このバージョンで機能が削除されました (13.4)
- 以前は別名で対応していました: Position (≤3)
- このバージョンで機能が削除されました (79)
- 以前は別名で対応していました: PositionError (5)
- このバージョンで機能が削除されました (79)
- 以前は別名で対応していました: PositionError (12)
- このバージョンで機能が削除されました (71)
- 以前は別名で対応していました: PositionError (3.5)
- 以前は別名で対応していました: PositionError (5)
- このバージョンで機能が削除されました (79)
- 以前は別名で対応していました: PositionError (18)
- 以前は別名で対応していました: PositionError (4.2)
基本構文
navigator.geolocation.getCurrentPosition(
(pos) => {
console.log('Latitude:', pos.coords.latitude);
console.log('Longitude:', pos.coords.longitude);
},
(err) => console.error('Location error:', err.message),
{ enableHighAccuracy: true }
); 実務での使いどころ
-
Geolocation API の活用
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
注意点
- 古いブラウザでは対応していない場合がある。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。