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' => [] ]); } ?>