ブラウザの位置情報から天気を返す方法。GPSとIP推定でその場で試せるサンプルつき

ブラウザの位置情報から天気を返す方法。GPSとIP推定でその場で試せるサンプルつき

ブラウザの情報から天気を返したいなら、GPS優先、だめならIP推定 の2段構えがいちばん扱いやすいです。
最初から精度を求めすぎるより、まず 地域名 今の天気 気温 降水確率 ひとこと を返す形に絞ると実装がぶれません。

最終更新: 2026年4月20日

この記事では、ブラウザで位置情報を取り、Open-Meteo で天気を返す最小構成を整理します。
下のテスト欄では、そのまま現在地付近の天気を試せます。

先に答え

ブラウザの位置情報から天気を返す最小構成はこれです。

  1. navigator.geolocation で GPS を試す
  2. 失敗したら IP ベースで地域を推定する
  3. 緯度経度を Open-Meteo に渡す
  4. 地域名 / 天気 / 気温 / 降水確率 / ひとこと を返す

これで、過剰に大きい仕組みにしなくても十分実用になります。

その場で試せるテスト

現在地付近の天気を試す

GPS優先で取得し、位置情報が使えないときはIPベースの推定地域で表示します。

ボタンを押すと天気を取得します。

この実装で返している情報

返しているのは次の5つだけです。

  • 地域名
  • 今の天気
  • 現在気温と体感
  • 今日の最高気温と最低気温
  • 降水確率とひとこと

最初はこれで十分です。
ここに最寄り駅や雨雲レーダーまで足し始めると、位置精度やデータ量の問題が増えて重くなりやすいです。

なぜ GPS と IP 推定の2段構えにするのか

GPS は精度が高いですが、許可されないことがあります。
一方で IP 推定は精度が落ちますが、許可なしでもおおまかな地域を出せます。

この2段構えにしておくと、次のように止まりにくくなります。

  • 許可されたら GPS で細かく出せる
  • 許可されなくても IP 推定で地域天気は返せる
  • どちらもだめならエラー文を返せる

つまり、最初から完璧な現在地を狙うより、失敗しても戻せる設計のほうが実用的です。

実装の流れ

JavaScript の流れはかなり単純です。

const location = await resolveLocation('auto');
const weather = await fetchWeather(location.latitude, location.longitude);
return {
  label: location.city,
  summary: weather.current.weather_code,
  temperature: weather.current.temperature_2m,
  rain: weather.daily.precipitation_probability_max[0]
};

実際にやっていることはこの3つです。

  1. ブラウザから位置を取る
  2. 天気 API に緯度経度を渡す
  3. 返ってきた値をカードに整える

このまま広げるなら何を足すか

次に足すなら、この順がやりやすいです。

  • 最寄り駅
  • 雨の日コメントの精度調整
  • 地域ニュースや地域記事への導線
  • 県別週間予報ページへの内部リンク

逆に、最初からやらなくていいものはこのあたりです。

  • 細かすぎる行動ログ
  • 常時 GPS 追跡
  • 複数 API の同時利用
  • 複雑な地図表示

まとめ

ブラウザの位置情報から天気を返すなら、最適なのは GPS優先 + IP推定 fallback の形です。
この形なら、位置情報の許可が取れたときは精度を出せて、取れなくても地域天気として成立します。

まずはこの記事のテスト欄のように、地域名 / 天気 / 気温 / 降水確率 / ひとこと を返すところまで作れば十分です。
そこから必要に応じて、最寄り駅や地域記事への導線を足していくと広げやすいです。

参考:

attrip

attrip

考えたことを、記事・AI・音楽に変えて発信しています。

盆栽、音楽、ブログ運営、日々の試行錯誤について書いています。

2010年から発信中

コメントを残す