diff --git a/map4.js b/map4.js
index df91133..5f27c70 100644
--- a/map4.js
+++ b/map4.js
@@ -137,38 +137,38 @@
});
}
-
-function createLabeledMarker(lat, lng, name, isSelf, status) {
+function createLabeledMarker(lat, lng, name, isSelf) {
const pinUrl = isSelf
? "https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-green.png"
: "https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-gold.png";
- const shortName = name.length > 4 ? name.slice(0, 4) : name;
-
const html = `
-
-
-
+
+
- ${shortName}
+ ${name}
-
-

+
+
`;
@@ -176,14 +176,13 @@
icon: L.divIcon({
html,
className: "",
- iconSize: [40, 90], // ← 吹き出し高くしたので全体も伸ばす
- iconAnchor: [20, 45] // ← ピンの先端が地面に刺さるよう調整
+ iconSize: [0, 0],
+ iconAnchor: [0, 0],
}),
});
}
-
// ===================================
// 自分のピンを描画
// ===================================
@@ -317,58 +316,51 @@
// ===================================
// メンバー一覧
// ===================================
-function showMemberList(latestByDevice) {
+ffunction showMemberList(latestByDevice) {
const list = document.getElementById("memberList");
list.innerHTML = "";
- // 全員を固定順で並べるために allMembers を育てる
- Object.values(latestByDevice).forEach((row) => {
- if (!allMembers.some((m) => m.device_id === row.device_id)) {
- allMembers.push({
- device_id: row.device_id,
- user_name: row.user_name,
- });
- }
- });
+ // ★ ここを修正:allMembers を使わず最新データのみで作る
+ const members = Object.values(latestByDevice).map(row => ({
+ device_id: row.device_id,
+ user_name: row.user_name,
+ status: row.status,
+ updated_at: row.updated_at,
+ lat: row.lat,
+ lng: row.lng
+ }));
- allMembers.forEach((member) => {
- const row = latestByDevice[member.device_id];
- const li = document.createElement("li");
-
+ members.forEach((member) => {
const online =
- row && row.updated_at
- ? (Date.now() - new Date(row.updated_at)) / 1000 < 6
- : false;
+ member.updated_at &&
+ (Date.now() - new Date(member.updated_at)) / 1000 < 6;
+ const li = document.createElement("li");
li.classList.toggle("online", online);
li.classList.toggle("offline", !online);
const crown = member.user_name === currentHostName ? "👑 " : "";
const initial = member.user_name.charAt(0);
const bgColor = member.device_id === deviceId ? "#4CAF50" : "#FFD700";
- const status = row?.status || "移動中";
+ const status = member.status || "移動中";
li.innerHTML = `
-
+
${initial}
-
${crown}${member.user_name}
-
${status}
`;
-
// メンバークリックでその位置へ移動
li.addEventListener("click", () => {
const r = latestByDevice[member.device_id];