function fetchTimeline() {
    clearMap();
    const deviceId = document.getElementById("deviceSelect").value;
    const date = document.getElementById("dateSelect").value;

    if (!deviceId || !date) {
        alert("⚠️ يرجى اختيار جهاز وتاريخ.");
        return;
    }

    const url = `http://localhost/gps_tracker/get_google_timeline.php?device_id=${deviceId}&date=${date}`;

    fetch(url)
        .then(response => response.json())
        .then(async data => {
            console.log("📅 بيانات المخطط الزمني:", data);
            const timelineContainer = document.getElementById("timelineEntries");
            timelineContainer.innerHTML = "";

            if (data.error) {
                alert(data.error);
                return;
            }

            if (Array.isArray(data) && data.length > 0) {
                // جمع الإحداثيات الصحيحة لجلب أسماء الأماكن دفعة واحدة
                const coords = data
                    .map(loc => ({
                        lat: parseFloat(loc.latitude),
                        lng: parseFloat(loc.longitude)
                    }))
                    .filter(c => !isNaN(c.lat) && !isNaN(c.lng));

                let placesMap = {};
                try {
                    if (coords.length > 0) {
                        const res = await fetch('get_places_names.php', {
                            method: 'POST',
                            headers: { 'Content-Type': 'application/json' },
                            body: JSON.stringify({ locations: coords })
                        });
                        if (res.ok) {
                            const placeData = await res.json();
                            if (placeData && placeData.status === 'success' && placeData.places) {
                                placesMap = placeData.places; // مفاتيح بصيغة "lat,lng" بدقة 6 خانات
                            }
                        }
                    }
                } catch (e) {
                    console.warn('⚠️ تعذّر جلب أسماء الأماكن، سيتم العرض بالإحداثيات فقط:', e);
                }

                // إنشاء العلامات وبناء المخطط الزمني مع أسماء الأماكن
                data.forEach(location => {
                    const lat = parseFloat(location.latitude);
                    const lng = parseFloat(location.longitude);
                    const timestamp = location.timestamp;
                    const deviceName = location.device_name;

                    if (!isNaN(lat) && !isNaN(lng)) {
                        const key = `${lat.toFixed(6)},${lng.toFixed(6)}`;
                        const placeName = placesMap[key] || `${lat.toFixed(6)}, ${lng.toFixed(6)}`;

                        const marker = L.marker([lat, lng])
                            .addTo(map)
                            .bindPopup(
                                `<b>📍 الحي/المدينة/المنطقة:</b> ${placeName}<br>` +
                                `📝 الجهاز: ${deviceName}<br>` +
                                `⏰ الوقت: ${timestamp}`
                            );

                        markers.push(marker);

                        const entry = document.createElement("div");
                        entry.classList.add("timeline-entry");
                        entry.innerHTML = `
                            <span class="entry-time">${timestamp}</span>
                            - <b>📍 الحي/المدينة/المنطقة: ${placeName}</b>
                            <span class="entry-device">— الجهاز: ${deviceName}</span>
                        `;

                        entry.addEventListener("click", function() {
                            map.setView([lat, lng], 15);
                            marker.openPopup();
                        });

                        timelineContainer.appendChild(entry);
                    }
                });
            } else {
                alert("❌ لا توجد بيانات متاحة لهذا الجهاز في التاريخ المحدد.");
            }
        })
        .catch(error => console.error("⚠️ خطأ في جلب البيانات:", error));
}
