diff --git a/map4.js b/map4.js
index 43b2d5d..954ac37 100644
--- a/map4.js
+++ b/map4.js
@@ -1,49 +1,54 @@
-// グローバル変数を作らないように IIFE + module を併用
+import { createClient } from "https://esm.sh/@supabase/supabase-js@2";
+
+// Supabase 接続設定(自分のプロジェクトの値を入れてください)
+const SUPABASE_URL = "https://ogtlmtnjkpsxsqzqlacj.supabase.co";
+const SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9ndGxtdG5qa3BzeHNxenFsYWNqIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjMyOTU3NjUsImV4cCI6MjA3ODg3MTc2NX0.JnCE7oUQwrSgGqiu-QRbwnaLBZrO8JX1_RUb37VIMFI";
+const supabase = createClient(SUPABASE_URL, SUPABASE_KEY);
+
(() => {
- // URLパラメータからグループ名取得
const params = new URLSearchParams(window.location.search);
const groupName = params.get("group") || "未設定";
+ const userName = "user-" + Math.floor(Math.random() * 9999);
- // HTMLに表示
document.getElementById("groupName").textContent = groupName;
- // 初期マップ(皇居あたり)
const map = L.map('map').setView([35.681236, 139.767125], 14);
-
- // OSMタイル
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: "© OpenStreetMap contributors"
}).addTo(map);
- // 現在地へ移動する関数
- function moveToCurrentLocation() {
- if (!navigator.geolocation) {
- alert("位置情報が取得できません。");
- return;
- }
+ async function saveLocation(lat, lng) {
+ await supabase
+ .from("locations")
+ .insert({
+ group_name: groupName,
+ user_name: userName,
+ lat: lat,
+ lng: lng
+ });
+ }
+ function moveToCurrentLocation() {
navigator.geolocation.getCurrentPosition(
- pos => {
+ async pos => {
const lat = pos.coords.latitude;
const lng = pos.coords.longitude;
- // ふわっと移動
map.flyTo([lat, lng], 17, { duration: 1.6 });
- // マーカー追加
L.marker([lat, lng])
.addTo(map)
.bindPopup(`あなたの現在地
グループ:${groupName}`)
.openPopup();
+
+ // ← SUPABASE に保存
+ await saveLocation(lat, lng);
},
- err => {
- alert("位置情報の取得に失敗しました:" + err.message);
- }
+ err => alert("位置情報エラー:" + err.message)
);
}
- // ページ読み込み時に発動
moveToCurrentLocation();
})();