MENU
  • ホーム
備えあれば憂いなし

防災ナビ

  • ホーム
防災ナビ
  • ホーム
  • 防災グッズ

    防災リュック 中身 一人暮らし 必須アイテム徹底比較!防災士監修

  • 防災グッズ

    【元消防士・防災士監修】防災セットを最強に!鬼嫁厳選追加アイテムとカスタマイズ術

  • 避難計画

    車中泊避難の注意点と対策|防災ナビゲーターが解説する安全な避難計画

  • 避難計画

    【防災士・気象予報士監修】命を繋ぐ!避難場所・避難経路「再確認」パーフェクトガイド

  • 避難計画

    【防災士・気象予報士が伝授】後悔しない!避難計画と連動させる「最適な防災セット」の選び方

  • 備蓄

    【防災士・気象予報士が提言】備蓄のプロが解説!『本当に安心できる』防災セットの選び方・使い方2026

  • 備蓄

    【2児の母が徹底解説】災害で後悔しない!備蓄食料・水「鬼嫁流」完全攻略ガイド

  • 避難計画

    【元消防士・防災士が伝授】家族を守る避難計画の全貌〜鬼嫁式ロードマップ

🛡️
防災マガジン
ダッシュボード 豆知識 記事 まもりちゃん 今すぐチェック
ダッシュボード 豆知識 記事 まもりちゃん
今すぐチェック ↓ まもりちゃんとは?
Real-Time Dashboard

リアルタイム防災ダッシュボード

最新の防災情報をまもりちゃんがわかりやすく解説。毎日自動更新されるデータをチェックしよう。

🔴
Earthquake
最新の地震情報
—
読み込み中…
まもり
データを取得しています…
🔵
Weather
今日の天気
—
読み込み中…
まもり
データを取得しています…
🟡
Pollen
花粉情報
—
読み込み中…
まもり
データを取得しています…
🟢
Quiz
今日の防災クイズ
—
読み込み中…
まもり
データを取得しています…
Gamification

あなたの防災力は?

防災クイズに答えたり、豆知識を読むことで防災スコアがアップ。レベルを上げてバッジをコレクションしよう!

※ Phase 3(LINE連携後)で本実装予定

⭐ Lv.5 防災中級者
650
防災スコア
Lv.5 防災中級者 650 / 1000
🏅
地震マスター
🌤️
天気博士
🌸
花粉ハンター
🧠
クイズ王
📚
豆知識通
🔥
連続ログイン
🏆
防災マスター
💎
全制覇
まもりちゃん(メガネver)
Daily Tips

まもりの豆知識

日替わりの防災豆知識をまもりちゃんがお届け。今日の知識で、明日の安全を。

読み込み中…

豆知識を取得しています…

まもり

公式Xで過去の豆知識を見る →
Blog Articles

最新の防災記事

防災のプロが監修した記事で、もしもの備えを万全に。

🏚️
地震対策

マンションの耐震性チェック — あなたの建物は大丈夫?

準備中
☔
天気・気象

ゲリラ豪雨から身を守る5つの行動ルール

準備中
🎒
防災知識

2026年版 非常用持ち出し袋の中身リスト完全ガイド

準備中
🌸
花粉対策

ヒノキ花粉のピークはいつ?最新の花粉カレンダー

準備中
📱
防災アプリ

災害時に役立つスマホアプリ10選【2026年最新版】

準備中
🏠
在宅避難

自宅で安全に過ごすための在宅避難マニュアル

準備中
noteで記事を読む →
Meet Mamori

まもりちゃんとは?

みんなの安全を見守る防災マスコット。季節やシーンに合わせていろんな姿に変身するよ!

通常まもり
通常
いつものまもりちゃん
ヘルメットまもり
地震対策
ヘルメットver
台風まもり
台風対策
レインコートver
花粉まもり
花粉対策
マスクver
熱中症まもり
熱中症対策
夏バテ注意ver
クイズまもり
クイズ
博士ver
メガネまもり
豆知識
メガネver
X Instagram Threads note LINE
Live Feed

𝕏 公式アカウント

防災マガジン公式Xの最新情報をチェック。

リアルタイム配信中。
@mamori_bousai のポスト
🛡️
防災マガジン

あなたの安全を、いつも見守る。まもりちゃんと一緒に防災力を育てるサイトです。

コンテンツ

  • 地震情報
  • 天気予報
  • 花粉情報
  • 防災クイズ

公式SNS

  • 𝕏 公式アカウント
  • Instagram
  • note
  • LINE 友だち追加

サイト情報

  • プライバシーポリシー
  • 特定商取引法に基づく表記
  • お問い合わせ
© 2026 防災マガジン. All rights reserved.
const SCALE_MAP = { 10: ‘震度1’, 20: ‘震度2’, 30: ‘震度3’, 40: ‘震度4’, 45: ‘震度5弱’, 50: ‘震度5強’, 55: ‘震度6弱’, 60: ‘震度6強’, 70: ‘震度7’ }; const POLLEN_LABELS = [‘なし’, ‘少ない’, ‘やや多い’, ‘多い’, ‘非常に多い’, ‘極めて多い’]; const MAMORI_COMMENTS = { earthquake: { low: ‘揺れは小さかったけど、避難経路は確認してね!’, mid: ‘少し大きめの揺れだったよ。家具の転倒防止、大丈夫?’, high: ‘大きな地震です!すぐに安全な場所に移動してね!’ }, weather: { clear: ‘お出かけ日和だよ~!水分補給も忘れずにね!’, cloudy: ‘曇りだけど、急な雨に備えて折り畳み傘があると安心だよ!’, rain: ‘雨の日は足元に注意してね!傘を忘れずに!’, snow: ‘雪の日は路面が滑りやすいよ。暖かくしてお出かけしてね!’ }, pollen: { low: ‘花粉は落ち着いてるよ。でも油断は禁物!’, mid: ‘マスクと目薬を忘れずにね!’, high: ‘花粉が多い日!できるだけ外出を控えて、帰ったらすぐ着替えてね!’ } }; function formatDate(dateStr) { const d = new Date(dateStr); return `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日 ${String(d.getHours()).padStart(2,’0′)}:${String(d.getMinutes()).padStart(2,’0′)}`; } function getScaleLabel(scale) { return SCALE_MAP[scale] || `震度${Math.floor(scale/10)}`; } function getEqComment(scale) { if (scale >= 50) return MAMORI_COMMENTS.earthquake.high; if (scale >= 30) return MAMORI_COMMENTS.earthquake.mid; return MAMORI_COMMENTS.earthquake.low; } function getWeatherComment(label) { if (label.includes(‘雪’)) return MAMORI_COMMENTS.weather.snow; if (label.includes(‘雨’)) return MAMORI_COMMENTS.weather.rain; if (label.includes(‘くもり’) || label.includes(‘曇’)) return MAMORI_COMMENTS.weather.cloudy; return MAMORI_COMMENTS.weather.clear; } function getPollenComment(maxLevel) { if (maxLevel >= 4) return MAMORI_COMMENTS.pollen.high; if (maxLevel >= 2) return MAMORI_COMMENTS.pollen.mid; return MAMORI_COMMENTS.pollen.low; } async function loadData(url) { try { const res = await fetch(url); if (!res.ok) throw new Error(res.statusText); return await res.json(); } catch { return null; } } async function renderEarthquake() { const data = await loadData(‘https://lp.bousai-navi.com/data/last_earthquake.json’); if (!data) return; const scaleLabel = getScaleLabel(data.last_max_scale); document.getElementById(‘eq-value’).textContent = scaleLabel; document.getElementById(‘eq-meta’).innerHTML = `${data.last_hypocenter} M${data.last_magnitude}
${formatDate(data.last_time)}`; document.getElementById(‘eq-comment’).textContent = getEqComment(data.last_max_scale); const heroBadgeEq = document.getElementById(‘hero-eq-badge’); if (heroBadgeEq) heroBadgeEq.textContent = `🔴 ${scaleLabel} ${data.last_hypocenter}`; } async function renderWeather() { const data = await loadData(‘https://lp.bousai-navi.com/data/weather_history.json’); if (!data || !data.posted || data.posted.length === 0) return; const latest = data.posted[data.posted.length – 1]; const tokyo = latest.cities[‘東京’]; if (!tokyo) return; document.getElementById(‘weather-value’).innerHTML = `${tokyo.today_emoji} ${tokyo.temp_max}`; document.getElementById(‘weather-meta’).innerHTML = `東京 ${tokyo.today_label}
降水確率 ${tokyo.today_pop}`; document.getElementById(‘weather-comment’).textContent = getWeatherComment(tokyo.today_label); const heroBadgeWeather = document.getElementById(‘hero-weather-badge’); if (heroBadgeWeather) heroBadgeWeather.textContent = `${tokyo.today_emoji} 東京 ${tokyo.temp_max}`; } async function renderPollen() { const data = await loadData(‘https://lp.bousai-navi.com/data/pollen_history.json’); if (!data || !data.posted) return; let latest = null; for (let i = data.posted.length – 1; i >= 0; i–) { if (data.posted[i].levels) { latest = data.posted[i]; break; } } if (!latest) return; const maxLevel = latest.max_level || 0; const maxRegion = Object.entries(latest.levels) .sort((a, b) => b[1] – a[1])[0]; document.getElementById(‘pollen-value’).textContent = `レベル${maxLevel}`; document.getElementById(‘pollen-meta’).innerHTML = `${maxRegion[0]}エリア ${POLLEN_LABELS[maxLevel] || ”}
全国${Object.keys(latest.levels).length}地域観測`; document.getElementById(‘pollen-comment’).textContent = getPollenComment(maxLevel); } async function renderQuiz() { const data = await loadData(‘https://lp.bousai-navi.com/data/quiz_history.json’); if (!data || !data.posted) return; const count = data.posted.length; const latest = data.posted[count – 1]; document.getElementById(‘quiz-value’).textContent = `Q.${count}`; document.getElementById(‘quiz-meta’).innerHTML = `${latest.hashtag}
累計 ${count} 問出題`; document.getElementById(‘quiz-comment’).textContent = ‘今日のクイズにチャレンジしてみてね!’; const heroBadgeQuiz = document.getElementById(‘hero-quiz-badge’); if (heroBadgeQuiz) heroBadgeQuiz.textContent = `✅ 累計 ${count} 問`; } async function renderTips() { const data = await loadData(‘https://lp.bousai-navi.com/data/tips_history.json’); if (!data || !data.posted || data.posted.length === 0) return; const latest = data.posted[data.posted.length – 1]; const d = new Date(latest.timestamp); const dateStr = `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日`; document.getElementById(‘tips-date’).textContent = `📅 ${dateStr}の豆知識`; document.getElementById(‘tips-title’).textContent = latest.hashtag.replace(‘#’, ”); document.getElementById(‘tips-body’).textContent = `今日のテーマは「${latest.hashtag.replace(‘#’, ”)}」です。日頃の備えが、いざというとき大きな差になります。`; document.getElementById(‘tips-speech’).textContent = `「${latest.wisdom}」— まもりより`; } document.addEventListener(‘DOMContentLoaded’, () => { renderEarthquake(); renderWeather(); renderPollen(); renderQuiz(); renderTips(); }); const SCALE_MAP = { 10: ‘震度1’, 20: ‘震度2’, 30: ‘震度3’, 40: ‘震度4’, 45: ‘震度5弱’, 50: ‘震度5強’, 55: ‘震度6弱’, 60: ‘震度6強’, 70: ‘震度7’ }; const POLLEN_LABELS = [‘なし’, ‘少ない’, ‘やや多い’, ‘多い’, ‘非常に多い’, ‘極めて多い’]; const MAMORI_COMMENTS = { earthquake: { low: ‘揺れは小さかったけど、避難経路は確認してね!’, mid: ‘少し大きめの揺れだったよ。家具の転倒防止、大丈夫?’, high: ‘大きな地震です!すぐに安全な場所に移動してね!’ }, weather: { clear: ‘お出かけ日和だよ~!水分補給も忘れずにね!’, cloudy: ‘曇りだけど、急な雨に備えて折り畳み傘があると安心だよ!’, rain: ‘雨の日は足元に注意してね!傘を忘れずに!’, snow: ‘雪の日は路面が滑りやすいよ。暖かくしてお出かけしてね!’ }, pollen: { low: ‘花粉は落ち着いてるよ。でも油断は禁物!’, mid: ‘マスクと目薬を忘れずにね!’, high: ‘花粉が多い日!できるだけ外出を控えて、帰ったらすぐ着替えてね!’ } }; function formatDate(dateStr) { const d = new Date(dateStr); return `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日 ${String(d.getHours()).padStart(2,’0′)}:${String(d.getMinutes()).padStart(2,’0′)}`; } function getScaleLabel(scale) { return SCALE_MAP[scale] || `震度${Math.floor(scale/10)}`; } function getEqComment(scale) { if (scale >= 50) return MAMORI_COMMENTS.earthquake.high; if (scale >= 30) return MAMORI_COMMENTS.earthquake.mid; return MAMORI_COMMENTS.earthquake.low; } function getWeatherComment(label) { if (label.includes(‘雪’)) return MAMORI_COMMENTS.weather.snow; if (label.includes(‘雨’)) return MAMORI_COMMENTS.weather.rain; if (label.includes(‘くもり’) || label.includes(‘曇’)) return MAMORI_COMMENTS.weather.cloudy; return MAMORI_COMMENTS.weather.clear; } function getPollenComment(maxLevel) { if (maxLevel >= 4) return MAMORI_COMMENTS.pollen.high; if (maxLevel >= 2) return MAMORI_COMMENTS.pollen.mid; return MAMORI_COMMENTS.pollen.low; } async function loadData(url) { try { const res = await fetch(url); if (!res.ok) throw new Error(res.statusText); return await res.json(); } catch { return null; } } async function renderEarthquake() { const data = await loadData(‘https://lp.bousai-navi.com/data/last_earthquake.json’); if (!data) return; const scaleLabel = getScaleLabel(data.last_max_scale); document.getElementById(‘eq-value’).textContent = scaleLabel; document.getElementById(‘eq-meta’).innerHTML = `${data.last_hypocenter} M${data.last_magnitude}
${formatDate(data.last_time)}`; document.getElementById(‘eq-comment’).textContent = getEqComment(data.last_max_scale); const heroBadgeEq = document.getElementById(‘hero-eq-badge’); if (heroBadgeEq) heroBadgeEq.textContent = `🔴 ${scaleLabel} ${data.last_hypocenter}`; } async function renderWeather() { const data = await loadData(‘https://lp.bousai-navi.com/data/weather_history.json’); if (!data || !data.posted || data.posted.length === 0) return; const latest = data.posted[data.posted.length – 1]; const tokyo = latest.cities[‘東京’]; if (!tokyo) return; document.getElementById(‘weather-value’).innerHTML = `${tokyo.today_emoji} ${tokyo.temp_max}`; document.getElementById(‘weather-meta’).innerHTML = `東京 ${tokyo.today_label}
降水確率 ${tokyo.today_pop}`; document.getElementById(‘weather-comment’).textContent = getWeatherComment(tokyo.today_label); const heroBadgeWeather = document.getElementById(‘hero-weather-badge’); if (heroBadgeWeather) heroBadgeWeather.textContent = `${tokyo.today_emoji} 東京 ${tokyo.temp_max}`; } async function renderPollen() { const data = await loadData(‘https://lp.bousai-navi.com/data/pollen_history.json’); if (!data || !data.posted) return; let latest = null; for (let i = data.posted.length – 1; i >= 0; i–) { if (data.posted[i].levels) { latest = data.posted[i]; break; } } if (!latest) return; const maxLevel = latest.max_level || 0; const maxRegion = Object.entries(latest.levels) .sort((a, b) => b[1] – a[1])[0]; document.getElementById(‘pollen-value’).textContent = `レベル${maxLevel}`; document.getElementById(‘pollen-meta’).innerHTML = `${maxRegion[0]}エリア ${POLLEN_LABELS[maxLevel] || ”}
全国${Object.keys(latest.levels).length}地域観測`; document.getElementById(‘pollen-comment’).textContent = getPollenComment(maxLevel); } async function renderQuiz() { const data = await loadData(‘https://lp.bousai-navi.com/data/quiz_history.json’); if (!data || !data.posted) return; const count = data.posted.length; const latest = data.posted[count – 1]; document.getElementById(‘quiz-value’).textContent = `Q.${count}`; document.getElementById(‘quiz-meta’).innerHTML = `${latest.hashtag}
累計 ${count} 問出題`; document.getElementById(‘quiz-comment’).textContent = ‘今日のクイズにチャレンジしてみてね!’; const heroBadgeQuiz = document.getElementById(‘hero-quiz-badge’); if (heroBadgeQuiz) heroBadgeQuiz.textContent = `✅ 累計 ${count} 問`; } async function renderTips() { const data = await loadData(‘https://lp.bousai-navi.com/data/tips_history.json’); if (!data || !data.posted || data.posted.length === 0) return; const latest = data.posted[data.posted.length – 1]; const d = new Date(latest.timestamp); const dateStr = `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日`; document.getElementById(‘tips-date’).textContent = `📅 ${dateStr}の豆知識`; document.getElementById(‘tips-title’).textContent = latest.hashtag.replace(‘#’, ”); document.getElementById(‘tips-body’).textContent = `今日のテーマは「${latest.hashtag.replace(‘#’, ”)}」です。日頃の備えが、いざというとき大きな差になります。`; document.getElementById(‘tips-speech’).textContent = `「${latest.wisdom}」— まもりより`; } document.addEventListener(‘DOMContentLoaded’, () => { renderEarthquake(); renderWeather(); renderPollen(); renderQuiz(); renderTips(); });

新着記事

  • 地震保険は賃貸マンションに必要?防災士が教える判断と備えの手順
  • 地震来たらすること順番|防災士兼気象予報士が教える実践手順
  • 地震対策 家具の固定が簡単にできる賃貸住まい向け手順と注意点
  • 防災グッズ100均で揃うリスト|防災士が教えるコスパ最強の備え方
  • 防災グッズ最低限リスト 子供あり家庭の必需品と選び方2026

最近のコメント

表示できるコメントはありません。

アーカイブ

  • 2026年5月
  • 2026年4月
  • 2026年3月

カテゴリー

  • Uncategorized
  • 備蓄
  • 地震対策
  • 避難計画
  • 防災グッズ

© 防災ナビ.