diff --git a/Projek SPBU 24 JAM/index.php b/Projek SPBU 24 JAM/index.php index e8e5838..8c8d4e8 100644 --- a/Projek SPBU 24 JAM/index.php +++ b/Projek SPBU 24 JAM/index.php @@ -1,34 +1,3 @@ - - @@ -85,36 +54,59 @@ while ($row = mysqli_fetch_assoc($query)) { var layerSpbu24Jam = L.layerGroup().addTo(map); var layerSpbuReguler = L.layerGroup().addTo(map); - // Konversi data array PHP ke JSON JavaScript - var dataSpbuDariDatabase = ; + function renderSpbuMarkers(markers) { + markers.forEach(function(spbu) { + var lat = parseFloat(spbu.latitude); + var lng = parseFloat(spbu.longitude); + if (isNaN(lat) || isNaN(lng)) { + return; + } + var isOpen24 = spbu.open_24_hours == 1 || spbu.open_24_hours === '1' || spbu.open_24_hours === true; + var warnaMarker = isOpen24 ? '#007BFF' : '#DC3545'; - // 5. LOOPING DATA & PILAH BERDASARKAN STATUS SPBU - dataSpbuDariDatabase.forEach(function(spbu) { - var lat = parseFloat(spbu.latitude); - var lng = parseFloat(spbu.longitude); - - var warnaMarker = (spbu.status === '24_jam') ? '#007BFF' : '#DC3545'; + var marker = L.circleMarker([lat, lng], { + radius: 8, + fillColor: warnaMarker, + color: '#fff', + weight: 2, + fillOpacity: 0.9 + }); - var marker = L.circleMarker([lat, lng], { - radius: 8, - fillColor: warnaMarker, - color: '#fff', - weight: 2, - fillOpacity: 0.9 + marker.bindPopup( + "" + (spbu.name || spbu.nama_spbu || 'SPBU') + "
" + + "Status Pelayanan: " + (isOpen24 ? 'Buka 24 Jam' : 'Reguler Biasa') + "
" + + "Koordinat: " + lat + ", " + lng + ); + + if (isOpen24) { + marker.addTo(layerSpbu24Jam); + } else { + marker.addTo(layerSpbuReguler); + } }); + } - marker.bindPopup( - "" + spbu.nama_spbu + "
" + - "Status Pelayanan: " + (spbu.status === '24_jam' ? 'Buka 24 Jam' : 'Reguler Biasa') + "
" + - "Koordinat: " + lat + ", " + lng - ); + function loadSpbuData() { + fetch('api/get_points.php') + .then(function(response) { + if (!response.ok) { + throw new Error('HTTP error ' + response.status); + } + return response.json(); + }) + .then(function(data) { + if (data.success && Array.isArray(data.markers)) { + renderSpbuMarkers(data.markers); + } else { + console.error('Response tidak berformat expected:', data); + } + }) + .catch(function(error) { + console.error('Gagal memuat data SPBU dari API:', error); + }); + } - if (spbu.status === '24_jam') { - marker.addTo(layerSpbu24Jam); - } else { - marker.addTo(layerSpbuReguler); // <-- Sudah diperbaiki dari layerSpulerReguler - } - }); + loadSpbuData(); // 6. IMPLEMENTASI LAYERS CONTROL var overlayMaps = {