ショートコード)
const newEventJson = tempDom.querySelector("#eventdt-json")?.textContent || "{}";
const parsed = JSON.parse(newEventJson);
//console.log("parsedの値", parsed);
if (parsed) {
const est = parsed.est || "データなし";
const esp = parsed.esp || "データなし";
const fdn = parsed.fdn || "データなし";
const frn = parsed.frn || "データなし";
document.getElementById("est-time").innerText = est;
document.getElementById("esp-time").innerText = esp;
document.getElementById("fdn-time").innerText = fdn;
document.getElementById("frn-time").innerText = frn;
const titleElement = document.getElementById("location-status-title");
const messageElement = document.getElementById("location-status-message");
const estTime = new Date(est);
const espTime = new Date(esp);
const movementStatus = (espTime > estTime) ? "停車中" : "運転中";
let safetyStatus = "異常検出なし";
if (fdn && (!frn || new Date(frn) <= new Date(fdn))) {
safetyStatus = "転倒発生";
}
// ▼ ダッシュボード側にも同じ表示を出力
const dashboardStatusEl = document.getElementById("dashboard-status-message");
//console.log("dashboardStatusElの値", dashboardStatusEl);
if (dashboardStatusEl) {
dashboardStatusEl.textContent = `(${movementStatus}・${safetyStatus})`;
dashboardStatusEl.style.color = (safetyStatus === "転倒発生") ? "red" : "black";
//console.log("ダッシュボードのステータス取得テスト", dashboardStatusEl.textContent);
}
messageElement.textContent = `(${movementStatus}・${safetyStatus})`;
messageElement.style.color = (safetyStatus === "転倒発生") ? "red" : "white";
// ▼ 状態アイコンを更新(ここから追加)
const statusIcon = document.getElementById("status-icon");
if (statusIcon) {
let iconUrl = "";
if (safetyStatus === "転倒発生") {
iconUrl = "https://www.fleaiot.com/wp-content/uploads/2025/05/scooter_icon_toggle_0.5s.gif";
} else if (movementStatus === "停車中") {
iconUrl = "https://www.fleaiot.com/wp-content/uploads/2025/05/status_parking.png";
} else {
iconUrl = "https://www.fleaiot.com/wp-content/uploads/2025/05/status_running.png";
}
statusIcon.src = iconUrl;
statusIcon.alt = `${movementStatus} / ${safetyStatus}`;
}
}
})
.catch(error => console.error("更新エラー:", error));
}
// 初回実行 + 60秒ごとに自動更新
updateLocationAndEventData();
setInterval(updateLocationAndEventData, 60000);
});
function getCleanAddress(addressComponents) {
let prefecture = "";
let city = "";
let ward = "";
let town = "";
let street = "";
let number = "";
console.log("addressComponents", addressComponents);
addressComponents.forEach(component => {
if (component.types.includes("administrative_area_level_1")) {
prefecture = component.long_name;
} else if (component.types.includes("locality")) {
city = component.long_name;
} else if (component.types.includes("sublocality_level_1") || component.types.includes("sublocality")) {
ward = component.long_name;
} else if (component.types.includes("neighborhood")) {
town = component.long_name;
} else if (component.types.includes("route")) {
street = component.long_name;
} else if (component.types.includes("street_number")) {
number = component.long_name;
}
});
// 組み立て(必要なもののみ順に)
return [prefecture, city, ward, town, street + number].filter(Boolean).join('');
}
安全エリアの設定
現在地
住所取得中...
{}最終記録時間: データを取得できませんでした
- 現在地を表示しています。
- 停車中の場合、最後に停車した地点を表示します。
- 転倒などの異常が検出された場合は、行動履歴をご確認ください。
- 右下のアイコンを操作すると、周辺の様子をストリートビューで確認できます。
行動履歴
- 地図上のピンは、移動した経路を示します。
- ピンは1分ごとに表示され、例えばピン1から10の間には10分間の移動したことを示します。
- 緑色の大きなピンはスタート地点、青色の大きなピンは現在地を示します。
- GPS測位ができない場所ではピンは表示されず、経路から除外されています。
- ピンをタップすると、その地点にいた時刻が表示されます。
- 表示された時刻情報内のストリートビューをタップすると、周辺の画像が表示されます。
行動履歴には、見守りのために、安全エリアを登録いただくことを推奨します。安全エリアの登録を行う事で、安全エリア外への移動を検知し、通知することができます。過去の履歴はカレンダー形式で表示され、ご契約期間までさかのぼることができます。カレンダー内では、当日を青丸、稼働のあった日を薄い緑丸、稼働の無かった日を無印で表示します。
お知らせ
位置情報関連
安全関連
バイタル関連
| 表面温度 | 取得中... |
| 血中酸素濃度 | 取得中... |
| 心拍数 | 取得中... |
[vital_json]
- 利用者が検出した通知は、ご登録のメールアドレスに送信されます。
- 通知内容は、こちらにも表示されます。
- 位置情報や安全に関するお知らせが届きます。
稼働状況
| 利用開始(電源オン) | 取得中... |
| 初回GPS位置情報取得 | 取得中... |
| 停止(電源オフ) | 取得中... |
- 利用者の稼働状況を確認できます。
- 出発時刻、GPS位置情報、停車時刻などが分かります。