39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once '../../../config.php';
|
|
$conn = getDB();
|
|
|
|
$result = $conn->query("SELECT * FROM rumah_ibadah");
|
|
$data = [];
|
|
|
|
while ($row = $result->fetch_assoc()) {
|
|
$id = $row['id'];
|
|
$lat = $row['lat'];
|
|
$lng = $row['lng'];
|
|
$radius_m = $row['radius_m'];
|
|
|
|
// Hitung jumlah rumah prasejahtera dalam radius
|
|
// menggunakan formula Haversine langsung di SQL
|
|
$stmt = $conn->prepare("
|
|
SELECT COUNT(*) as total
|
|
FROM rumah_prasejahtera
|
|
WHERE (
|
|
6371000 * acos(
|
|
cos(radians(?)) * cos(radians(lat)) *
|
|
cos(radians(lng) - radians(?)) +
|
|
sin(radians(?)) * sin(radians(lat))
|
|
)
|
|
) <= ?
|
|
");
|
|
$stmt->bind_param("dddd", $lat, $lng, $lat, $radius_m);
|
|
$stmt->execute();
|
|
$hitungResult = $stmt->get_result()->fetch_assoc();
|
|
$stmt->close();
|
|
|
|
$row['jumlah_tercakup'] = (int) $hitungResult['total'];
|
|
$data[] = $row;
|
|
}
|
|
|
|
echo json_encode($data);
|
|
$conn->close();
|
|
?>
|