Files
manjapro_v6/pages/maps_marker_topologi.php
T

90 lines
3.7 KiB
PHP

<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-2 mb-2">
<img src="dist/img/ODP.png" class="mr-2" width="25px"><span>Topologi</span>
</div>
<div class="col-md-2 mb-2">
<img src="dist/img/ON.png" class="mr-2" width="25px"><span>Aktif / Connected</span>
</div>
<div class="col-md-2 mb-2">
<img src="dist/img/OF.png" class="mr-2" width="25px"><span>Aktif / Disconnected</span>
</div>
<div class="col-md-2 mb-2">
<img src="dist/img/ON1.png" class="mr-2" width="25px"><span>Tidak Aktif / Connected</span>
</div>
<div class="col-md-2 mb-2">
<img src="dist/img/OF1.png" class="mr-2" width="25px"><span>Tidak Aktif / Disconnected</span>
</div>
</div>
<div id="map" style="height: 90vh; width: 100%;"></div>
</div>
</div>
</div>
</section>
<script>
let map; // Variabel untuk menyimpan peta
const markers = []; // Array untuk menyimpan marker
function initMap() {
// Inisialisasi peta dengan tipe hybrid
map = new google.maps.Map(document.getElementById('map'), {
center: { lat: -7.062083, lng: 106.797390 }, // Pusat peta
zoom: 11,
mapTypeId: 'hybrid' // Menentukan tipe peta menjadi hybrid
});
// Fetch data dari PHP saat pertama kali
fetchMarkers();
// Mengatur interval untuk memperbarui marker setiap 10 detik
setInterval(fetchMarkers, 30000);
}
function fetchMarkers() {
fetch('load/maps_marker.php?i=<?php echo base64_encode($SqlDataWHIdM); ?>')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(markersData => {
// Hapus marker yang ada sebelumnya
markers.forEach(marker => marker.setMap(null));
markers.length = 0; // Kosongkan array marker
// Tambahkan marker baru ke peta
markersData.forEach(markerData => {
const markerInstance = new google.maps.Marker({
position: { lat: markerData.lat, lng: markerData.lng },
map: map,
title: markerData.title,
icon: {
url: markerData.icon, // Menggunakan ikon dari data
scaledSize: new google.maps.Size(30, 30) // Mengatur ukuran ikon
}
});
// Simpan marker ke array
markers.push(markerInstance);
// Event listener untuk klik marker
markerInstance.addListener('click', () => {
const infoWindow = new google.maps.InfoWindow();
infoWindow.setContent(markerData.content); // Set konten InfoWindow
infoWindow.open(map, markerInstance); // Tampilkan InfoWindow
});
});
})
.catch(error => console.error('Error fetching markers:', error));
}
// Inisialisasi peta saat halaman selesai dimuat
window.onload = initMap;
</script>