Files
WebGIS_PovertyMap/Leaflet/api/parcel_create.php
T

44 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/db_pdo.php';
require_once __DIR__ . '/spatial_helpers.php';
$input = get_json_input();
$namaPemilik = trim((string) ($input['nama_pemilik'] ?? ''));
$statusKepemilikan = trim((string) ($input['status_kepemilikan'] ?? ''));
$luasM2 = (float) ($input['luas_m2'] ?? 0);
$wkt = sanitize_wkt((string) ($input['wkt'] ?? ''), 'POLYGON');
$allowedStatus = ['SHM', 'HGB', 'HGU', 'HP'];
if ($namaPemilik === '' || !in_array($statusKepemilikan, $allowedStatus, true)) {
json_response(422, [
'success' => false,
'message' => 'Nama pemilik wajib diisi dan status harus SHM/HGB/HGU/HP.',
]);
}
if ($luasM2 <= 0) {
json_response(422, [
'success' => false,
'message' => 'Luas tanah harus lebih dari 0 m2.',
]);
}
$sql = 'INSERT INTO parsil_tanah (nama_pemilik, status_kepemilikan, luas_m2, geom) VALUES (:nama_pemilik, :status_kepemilikan, :luas_m2, ST_GeomFromText(:wkt))';
$stmt = $pdo->prepare($sql);
$stmt->execute([
':nama_pemilik' => $namaPemilik,
':status_kepemilikan' => $statusKepemilikan,
':luas_m2' => $luasM2,
':wkt' => $wkt,
]);
json_response(201, [
'success' => true,
'message' => 'Data parsil tanah berhasil disimpan.',
'id' => (int) $pdo->lastInsertId(),
]);