コンテンツへスキップ
ナビゲーションに移動
リスクを調べてみよう
郵便番号を入れるとその地域の凍害危険性を3段階で診断します。ぜひ試してみてね!簡易的なものです。
const map = L.map(‘map’).setView([37.5, 137.0], 5); // 日本の中心
L.tileLayer(‘https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png’, {
attribution: ‘© OpenStreetMap contributors’
}).addTo(map);
map.on(‘click’, function(e) {
const lat = e.latlng.lat;
const lng = e.latlng.lng;
fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}`)
.then(res => res.json())
.then(data => {
const address = data.address;
const zip = address.postcode;
const messageArea = document.getElementById(‘result’);
if (!zip) {
messageArea.textContent = ‘郵便番号が取得できませんでした。’;
messageArea.className = ‘alert alert-secondary’;
return;
}
// ここで先ほどの凍上リスク判定ロジックを再利用
const prefix = zip.slice(0, 3);
let message = `【地域】${address.state || ”}${address.city || ”}\n`;
let level = ‘info’;
if ([‘060’, ‘030’, ‘010’, ‘020’, ‘038’, ‘949’].includes(prefix)) {
message += ‘この地域は凍上災リスクが非常に高いです。’;
level = ‘danger’;
} else if ([‘940’, ‘950’, ‘399’, ‘501’].includes(prefix)) {
message += ‘この地域は中程度の凍上リスクがあります。’;
level = ‘warning’;
} else {
message += ‘この地域の凍上リスクは比較的低いです。’;
level = ‘success’;
}
messageArea.textContent = message;
messageArea.className = `alert alert-${level}`;
});
});
const map = L.map(‘map’).setView([37.5, 137.0], 5); // 日本の中心
L.tileLayer(‘https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png’, {
attribution: ‘© OpenStreetMap contributors’
}).addTo(map);
map.on(‘click’, function(e) {
const lat = e.latlng.lat;
const lng = e.latlng.lng;
fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}`)
.then(res => res.json())
.then(data => {
const address = data.address;
const zip = address.postcode;
const messageArea = document.getElementById(‘result’);
if (!zip) {
messageArea.textContent = ‘郵便番号が取得できませんでした。’;
messageArea.className = ‘alert alert-secondary’;
return;
}
// ここで先ほどの凍上リスク判定ロジックを再利用
const prefix = zip.slice(0, 3);
let message = `【地域】${address.state || ”}${address.city || ”}\n`;
let level = ‘info’;
if ([‘060’, ‘030’, ‘010’, ‘020’, ‘038’, ‘949’].includes(prefix)) {
message += ‘この地域は凍上災リスクが非常に高いです。’;
level = ‘danger’;
} else if ([‘940’, ‘950’, ‘399’, ‘501’].includes(prefix)) {
message += ‘この地域は中程度の凍上リスクがあります。’;
level = ‘warning’;
} else {
message += ‘この地域の凍上リスクは比較的低いです。’;
level = ‘success’;
}
messageArea.textContent = message;
messageArea.className = `alert alert-${level}`;
});
});
PAGE TOP