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(); })();