10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

意外と使える!JavaScript+ブラウザで取得する位置情報(Geolocation API)

Last updated at Posted at 2025-12-03

最初に

ネイティブアプリを作らなくても、JavaScript+ブラウザで位置情報を取得することができます。

とはいえ、実際に使おうとすると「できる/できない」や、いくつか注意点がありますので、今回はそれについてまとめます。

取得できそうなデータ

MDNには下記のデータを取得する方法があると書かれています。

物凄くざっくり書くと下記の項目を取得する方法があります。

  • latitude → 緯度
  • longitude → 経度
  • altitude → 高度
  • accuracy → 緯度経度の精度
  • altitudeAccuracy → 高度の精度
  • heading → 方向
  • speed → 移動速度

実際に取得できるデータ

基本的には端末の情報を読み取っているので、ブラウザごとの際は少ないのですが、MacのChromeを使った場合のみ、altitudeで「0」を取得してしまうという挙動になります。

headingspeedは、手元にあるブラウザの範囲では取得できなさそうです。

iPhoneの場合

Safari Chrome Firefox
latitude ◯取得できる ◯取得できる ◯取得できる
longitude ◯取得できる ◯取得できる ◯取得できる
altitude ◯取得できる ◯取得できる ◯取得できる
accuracy ◯取得できる ◯取得できる ◯取得できる
altitudeAccuracy ◯取得できる ◯取得できる ◯取得できる
heading ✕取得できない ✕取得できない ✕取得できない
speed ✕取得できない ✕取得できない ✕取得できない

Macの場合

Safari Chrome Firefox
latitude ◯取得できる ◯取得できる ◯取得できる
longitude ◯取得できる ◯取得できる ◯取得できる
altitude ✕取得できない 常に「0」を取得 ✕取得できない
accuracy ◯取得できる ◯取得できる ◯取得できる
altitudeAccuracy ✕取得できない ✕取得できない ✕取得できない
heading ✕取得できない ✕取得できない ✕取得できない
speed ✕取得できない ✕取得できない ✕取得できない

デメリット

JavaScriptとブラウザで位置情報を取得するのはお手軽ですが、下記のようなデメリットも存在します。

  1. headingspeed が取得できない
  2. 取得開始の際、ブラウザ側で位置情報の許可の確認が走る
  3. ブラウザをアクティブにしていないと取得できない

特に3の「ブラウザをアクティブにしていないと取得できない」は重要で、とある仕事で車両の位置をこのJavaScriptとブラウザで取得するということをやった際、車両に乗車されている方が端末を触ってしまい、位置情報が途切れるというトラブルがありました。(これは社内に端末を設置する位置や手法で解消できそうな気もします。)

最後に

JavaScriptとブラウザで位置情報を取得する方法は、素早く構築でき、iPhoneで電波が安定している箇所については移動体でも数メートルの精度で取得できるという優れた面があります。

使い方によっては実用に耐える機能でもありますので、ご興味ある方はぜひ一度お試しください。

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?