prepare("SELECT * FROM v_data_maps $sqlwh ORDER BY status_koneksi");
$stmt->execute();
$monitor = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Ambil data master_topologi
$stmtodp = $pdo->prepare("SELECT * FROM master_topologi $sqlwh");
$stmtodp->execute();
$master = $stmtodp->fetchAll(PDO::FETCH_ASSOC);
if (!empty($monitor) || !empty($master)) {
$data = [];
// Isi data dari master_topologi
foreach ($master as $odp) {
list($lat, $lng) = explode(", ", $odp['titik_koordinat']);
$data[] = [
'nama' => $odp['nama'],
'latitude' => floatval($lat),
'longitude' => floatval($lng),
'icon' => 'dist/img/ODP.png',
'content' => '' . $odp['nama'] . ''
];
}
// Isi data dari monitor
foreach ($monitor as $row) {
$data[] = [
'nama' => $row['nama'],
'latitude' => floatval($row['latitude']),
'longitude' => floatval($row['longitude']),
'icon' => ($row['status'] == 'aktif')
? (($row['status_koneksi'] == 'On') ? 'dist/img/ON.png' : 'dist/img/OF.png')
: (($row['status_koneksi'] == 'On') ? 'dist/img/ON1.png' : 'dist/img/OF1.png'),
'content' => 'User_Id: ' . $row['akun'] . '
User: ' . $row['nama'] . '
login_at: ' . $row['last_on'] . '
last_logout: ' . $row['last_off'] . '
Status: ' . ($row['status_koneksi'] == 'On' ? 'Connect / '.$row['status'] : 'Disconnect / '.$row['status'])
];
}
// Format ulang data
$result = array_map(function($item) {
return [
'lat' => $item['latitude'],
'lng' => $item['longitude'],
'title' => $item['nama'],
'icon' => $item['icon'],
'content' => $item['content']
];
}, $data);
// Tentukan center pakai titik pertama
$center = !empty($result) ? ['lat' => $result[0]['lat'], 'lng' => $result[0]['lng']] : null;
echo json_encode([
'status' => true,
'centerlonglat' => $center,
'data' => $result
]);
} else {
echo json_encode([
'status' => false,
'centerlonglat' => null,
'data' => []
]);
}
?>