diff --git a/project_final/admin/index.php b/project_final/admin/index.php index 6f6dc51..da24135 100644 --- a/project_final/admin/index.php +++ b/project_final/admin/index.php @@ -32,7 +32,7 @@ $blankCount = $pdo->query(" WHERE NOT EXISTS ( SELECT 1 FROM rumah_ibadah ri - WHERE ST_Distance_Sphere(w.geom, ri.geom) <= ri.radius_bantuan_meter + WHERE ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri.geom, 4326)) <= ri.radius_bantuan_meter ) ")->fetch(); $blankSpot = (int)($blankCount['cnt'] ?? 0); diff --git a/project_final/api/blank_spot.php b/project_final/api/blank_spot.php index 81b7d44..a4d8ce5 100644 --- a/project_final/api/blank_spot.php +++ b/project_final/api/blank_spot.php @@ -16,9 +16,9 @@ $sql = " w.penghasilan, ST_AsGeoJSON(w.geom) AS geojson, ri.nama AS rumah_ibadah_terdekat, - ST_Distance_Sphere(w.geom, ri.geom) AS jarak_meter, + ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri.geom, 4326)) AS jarak_meter, ri.radius_bantuan_meter, - (ST_Distance_Sphere(w.geom, ri.geom) - ri.radius_bantuan_meter) AS selisih_meter + (ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri.geom, 4326)) - ri.radius_bantuan_meter) AS selisih_meter FROM warga_miskin w JOIN rumah_ibadah ri JOIN ( @@ -28,18 +28,18 @@ $sql = " FROM ( SELECT w2.id AS warga_id, - ST_Distance_Sphere(w2.geom, ri2.geom) AS jarak_meter + ST_Distance_Sphere(ST_SRID(w2.geom, 4326), ST_SRID(ri2.geom, 4326)) AS jarak_meter FROM warga_miskin w2 CROSS JOIN rumah_ibadah ri2 ) nearest_distance GROUP BY nearest_distance.warga_id ) nearest ON nearest.warga_id = w.id - AND ABS(ST_Distance_Sphere(w.geom, ri.geom) - nearest.min_jarak_meter) < 0.001 + AND ABS(ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri.geom, 4326)) - nearest.min_jarak_meter) < 0.001 WHERE NOT EXISTS ( SELECT 1 FROM rumah_ibadah ri_in_radius - WHERE ST_Distance_Sphere(w.geom, ri_in_radius.geom) <= ri_in_radius.radius_bantuan_meter + WHERE ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri_in_radius.geom, 4326)) <= ri_in_radius.radius_bantuan_meter ) GROUP BY w.id ORDER BY selisih_meter DESC diff --git a/project_final/api/spbu_terdekat.php b/project_final/api/spbu_terdekat.php index c8b5699..1390820 100644 --- a/project_final/api/spbu_terdekat.php +++ b/project_final/api/spbu_terdekat.php @@ -5,7 +5,7 @@ $lat = (float)($_GET['lat'] ?? 0); $lng = (float)($_GET['lng'] ?? 0); if (!$lat || !$lng) sendError('lat dan lng wajib diisi'); $wkt = sprintf('POINT(%F %F)', $lng, $lat); $stmt = $pdo->prepare("SELECT id, nama, buka_24_jam, ST_AsGeoJSON(geom) as geojson, - ST_Distance_Sphere(geom, ST_GeomFromText(?)) / 1000 as jarak_km + ST_Distance_Sphere(ST_SRID(geom, 4326), ST_SRID(ST_GeomFromText(?), 4326)) / 1000 as jarak_km FROM spbu ORDER BY jarak_km ASC LIMIT 1"); $stmt->execute([$wkt]); $r = $stmt->fetch(); diff --git a/project_final/user/index.php b/project_final/user/index.php index 4992435..29c06a8 100644 --- a/project_final/user/index.php +++ b/project_final/user/index.php @@ -29,7 +29,7 @@ $blankCount = $pdo->query(" WHERE NOT EXISTS ( SELECT 1 FROM rumah_ibadah ri - WHERE ST_Distance_Sphere(w.geom, ri.geom) <= ri.radius_bantuan_meter + WHERE ST_Distance_Sphere(ST_SRID(w.geom, 4326), ST_SRID(ri.geom, 4326)) <= ri.radius_bantuan_meter ) ")->fetch(); $blankSpot = (int)($blankCount['cnt'] ?? 0);