first commit

This commit is contained in:
2026-06-09 19:36:57 +07:00
commit 7b3bc9178d
18 changed files with 7302 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
<?php
// ============================================================
// API Manajemen Data Jalan (Line / Polyline)
// Mendukung: GET (list & detail), POST (create),
// PUT (update), DELETE (hapus)
// ============================================================
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { exit(0); }
require_once 'config.php';
$method = $_SERVER['REQUEST_METHOD'];
$input = json_decode(file_get_contents('php://input'), true) ?? [];
// ── Router ───────────────────────────────────────────────────
switch ($method) {
// ── READ (semua atau satu record) ────────────────────────
case 'GET':
if (isset($_GET['id'])) {
$id = (int) $_GET['id'];
$sql = "SELECT * FROM data_jalan WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
if ($row) {
$row['geojson'] = json_decode($row['geojson']);
jsonResponse(['status' => 'success', 'data' => $row]);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan'], 404);
}
} else {
$sql = "SELECT * FROM data_jalan ORDER BY id DESC";
$rows = $conn->query($sql)->fetch_all(MYSQLI_ASSOC);
foreach ($rows as &$r) {
$r['geojson'] = json_decode($r['geojson']);
}
jsonResponse(['status' => 'success', 'data' => $rows]);
}
break;
// ── CREATE ───────────────────────────────────────────────
case 'POST':
$nama_jalan = clean($input['nama_jalan'] ?? '');
$status_jalan = clean($input['status_jalan'] ?? '');
$panjang_m = (float) ($input['panjang_m'] ?? 0);
$keterangan = clean($input['keterangan'] ?? '');
$geojson = $input['geojson'] ?? null;
if (!$nama_jalan || !$status_jalan || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field nama_jalan, status_jalan, dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "INSERT INTO data_jalan (nama_jalan, status_jalan, panjang_m, geojson, keterangan) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssdss', $nama_jalan, $status_jalan, $panjang_m, $geojsonStr, $keterangan);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data jalan berhasil ditambahkan', 'id' => $conn->insert_id], 201);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── UPDATE ───────────────────────────────────────────────
case 'PUT':
$id = (int) ($input['id'] ?? 0);
$nama_jalan = clean($input['nama_jalan'] ?? '');
$status_jalan = clean($input['status_jalan'] ?? '');
$panjang_m = (float) ($input['panjang_m'] ?? 0);
$keterangan = clean($input['keterangan'] ?? '');
$geojson = $input['geojson'] ?? null;
if (!$id || !$nama_jalan || !$status_jalan || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field id, nama_jalan, status_jalan, dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "UPDATE data_jalan SET nama_jalan=?, status_jalan=?, panjang_m=?, geojson=?, keterangan=? WHERE id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssdssi', $nama_jalan, $status_jalan, $panjang_m, $geojsonStr, $keterangan, $id);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data jalan berhasil diperbarui']);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── DELETE ───────────────────────────────────────────────
case 'DELETE':
$id = (int) ($_GET['id'] ?? ($input['id'] ?? 0));
if (!$id) {
jsonResponse(['status' => 'error', 'message' => 'Parameter id wajib diisi'], 400);
}
$stmt = $conn->prepare("DELETE FROM data_jalan WHERE id = ?");
$stmt->bind_param('i', $id);
if ($stmt->execute() && $stmt->affected_rows > 0) {
jsonResponse(['status' => 'success', 'message' => 'Data jalan berhasil dihapus']);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan atau gagal dihapus'], 404);
}
break;
default:
jsonResponse(['status' => 'error', 'message' => 'Method tidak diizinkan'], 405);
}
+118
View File
@@ -0,0 +1,118 @@
<?php
// ============================================================
// API Manajemen Data Parsil Tanah (Polygon)
// Mendukung: GET (list & detail), POST (create),
// PUT (update), DELETE (hapus)
// ============================================================
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { exit(0); }
require_once 'config.php';
$method = $_SERVER['REQUEST_METHOD'];
$input = json_decode(file_get_contents('php://input'), true) ?? [];
// ── Router ───────────────────────────────────────────────────
switch ($method) {
// ── READ ─────────────────────────────────────────────────
case 'GET':
if (isset($_GET['id'])) {
$id = (int) $_GET['id'];
$stmt = $conn->prepare("SELECT * FROM data_parsil WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
if ($row) {
$row['geojson'] = json_decode($row['geojson']);
jsonResponse(['status' => 'success', 'data' => $row]);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan'], 404);
}
} else {
$rows = $conn->query("SELECT * FROM data_parsil ORDER BY id DESC")->fetch_all(MYSQLI_ASSOC);
foreach ($rows as &$r) {
$r['geojson'] = json_decode($r['geojson']);
}
jsonResponse(['status' => 'success', 'data' => $rows]);
}
break;
// ── CREATE ───────────────────────────────────────────────
case 'POST':
$nama_parsil = clean($input['nama_parsil'] ?? '');
$status_hak = clean($input['status_hak'] ?? '');
$luas_m2 = (float) ($input['luas_m2'] ?? 0);
$pemilik = clean($input['pemilik'] ?? '');
$keterangan = clean($input['keterangan'] ?? '');
$geojson = $input['geojson'] ?? null;
if (!$nama_parsil || !$status_hak || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field nama_parsil, status_hak, dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "INSERT INTO data_parsil (nama_parsil, status_hak, luas_m2, geojson, pemilik, keterangan) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssdsss', $nama_parsil, $status_hak, $luas_m2, $geojsonStr, $pemilik, $keterangan);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data parsil berhasil ditambahkan', 'id' => $conn->insert_id], 201);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── UPDATE ───────────────────────────────────────────────
case 'PUT':
$id = (int) ($input['id'] ?? 0);
$nama_parsil = clean($input['nama_parsil'] ?? '');
$status_hak = clean($input['status_hak'] ?? '');
$luas_m2 = (float) ($input['luas_m2'] ?? 0);
$pemilik = clean($input['pemilik'] ?? '');
$keterangan = clean($input['keterangan'] ?? '');
$geojson = $input['geojson'] ?? null;
if (!$id || !$nama_parsil || !$status_hak || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field id, nama_parsil, status_hak, dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "UPDATE data_parsil SET nama_parsil=?, status_hak=?, luas_m2=?, geojson=?, pemilik=?, keterangan=? WHERE id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssdsssi', $nama_parsil, $status_hak, $luas_m2, $geojsonStr, $pemilik, $keterangan, $id);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data parsil berhasil diperbarui']);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── DELETE ───────────────────────────────────────────────
case 'DELETE':
$id = (int) ($_GET['id'] ?? ($input['id'] ?? 0));
if (!$id) {
jsonResponse(['status' => 'error', 'message' => 'Parameter id wajib diisi'], 400);
}
$stmt = $conn->prepare("DELETE FROM data_parsil WHERE id = ?");
$stmt->bind_param('i', $id);
if ($stmt->execute() && $stmt->affected_rows > 0) {
jsonResponse(['status' => 'success', 'message' => 'Data parsil berhasil dihapus']);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan atau gagal dihapus'], 404);
}
break;
default:
jsonResponse(['status' => 'error', 'message' => 'Method tidak diizinkan'], 405);
}
+120
View File
@@ -0,0 +1,120 @@
<?php
// ============================================================
// API Manajemen Data SPBU (Point / Marker)
// Mendukung: GET (list & detail), POST (create),
// PUT (update), DELETE (hapus)
// ============================================================
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { exit(0); }
require_once 'config.php';
$method = $_SERVER['REQUEST_METHOD'];
$input = json_decode(file_get_contents('php://input'), true) ?? [];
// ── Router ───────────────────────────────────────────────────
switch ($method) {
// ── READ ─────────────────────────────────────────────────
case 'GET':
if (isset($_GET['id'])) {
$id = (int) $_GET['id'];
$stmt = $conn->prepare("SELECT * FROM data_spbu WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
if ($row) {
$row['geojson'] = json_decode($row['geojson']);
$row['buka_24jam'] = (bool) $row['buka_24jam'];
jsonResponse(['status' => 'success', 'data' => $row]);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan'], 404);
}
} else {
$rows = $conn->query("SELECT * FROM data_spbu ORDER BY id DESC")->fetch_all(MYSQLI_ASSOC);
foreach ($rows as &$r) {
$r['geojson'] = json_decode($r['geojson']);
$r['buka_24jam'] = (bool) $r['buka_24jam'];
}
jsonResponse(['status' => 'success', 'data' => $rows]);
}
break;
// ── CREATE ───────────────────────────────────────────────
case 'POST':
$nama_spbu = clean($input['nama_spbu'] ?? '');
$telepon = clean($input['telepon'] ?? '');
$buka_24jam = isset($input['buka_24jam']) ? (int)(bool)$input['buka_24jam'] : 0;
$lat = (float) ($input['lat'] ?? 0);
$lng = (float) ($input['lng'] ?? 0);
$geojson = $input['geojson'] ?? null;
if (!$nama_spbu || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field nama_spbu dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "INSERT INTO data_spbu (nama_spbu, telepon, buka_24jam, lat, lng, geojson) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssidds', $nama_spbu, $telepon, $buka_24jam, $lat, $lng, $geojsonStr);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data SPBU berhasil ditambahkan', 'id' => $conn->insert_id], 201);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── UPDATE ───────────────────────────────────────────────
case 'PUT':
$id = (int) ($input['id'] ?? 0);
$nama_spbu = clean($input['nama_spbu'] ?? '');
$telepon = clean($input['telepon'] ?? '');
$buka_24jam = isset($input['buka_24jam']) ? (int)(bool)$input['buka_24jam'] : 0;
$lat = (float) ($input['lat'] ?? 0);
$lng = (float) ($input['lng'] ?? 0);
$geojson = $input['geojson'] ?? null;
if (!$id || !$nama_spbu || !$geojson) {
jsonResponse(['status' => 'error', 'message' => 'Field id, nama_spbu dan geojson wajib diisi'], 400);
}
$geojsonStr = is_string($geojson) ? $geojson : json_encode($geojson);
$sql = "UPDATE data_spbu SET nama_spbu=?, telepon=?, buka_24jam=?, lat=?, lng=?, geojson=? WHERE id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssiddsi', $nama_spbu, $telepon, $buka_24jam, $lat, $lng, $geojsonStr, $id);
if ($stmt->execute()) {
jsonResponse(['status' => 'success', 'message' => 'Data SPBU berhasil diperbarui']);
} else {
jsonResponse(['status' => 'error', 'message' => $conn->error], 500);
}
break;
// ── DELETE ───────────────────────────────────────────────
case 'DELETE':
$id = (int) ($_GET['id'] ?? ($input['id'] ?? 0));
if (!$id) {
jsonResponse(['status' => 'error', 'message' => 'Parameter id wajib diisi'], 400);
}
$stmt = $conn->prepare("DELETE FROM data_spbu WHERE id = ?");
$stmt->bind_param('i', $id);
if ($stmt->execute() && $stmt->affected_rows > 0) {
jsonResponse(['status' => 'success', 'message' => 'Data SPBU berhasil dihapus']);
} else {
jsonResponse(['status' => 'error', 'message' => 'Data tidak ditemukan atau gagal dihapus'], 404);
}
break;
default:
jsonResponse(['status' => 'error', 'message' => 'Method tidak diizinkan'], 405);
}
+45
View File
@@ -0,0 +1,45 @@
<?php
// ============================================================
// Konfigurasi Koneksi Database
// WebGIS Manajemen Data Jalan & Parsil Tanah
// ============================================================
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); // sesuaikan dengan user MySQL Anda
define('DB_PASS', ''); // sesuaikan dengan password MySQL Anda
define('DB_NAME', 'webgis_sig');
define('DB_CHARSET', 'utf8mb4');
// ── Buat koneksi ─────────────────────────────────────────────
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
http_response_code(500);
die(json_encode([
'status' => 'error',
'message' => 'Koneksi database gagal: ' . $conn->connect_error
]));
}
$conn->set_charset(DB_CHARSET);
// ── Fungsi utilitas ──────────────────────────────────────────
/**
* Kembalikan response JSON dan hentikan eksekusi.
*/
function jsonResponse(array $data, int $httpCode = 200): void
{
http_response_code($httpCode);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
exit;
}
/**
* Sanitasi input string.
*/
function clean(string $value): string
{
return htmlspecialchars(strip_tags(trim($value)));
}
+138
View File
@@ -0,0 +1,138 @@
-- ============================================================
-- DATABASE: webgis_sig
-- Sistem Manajemen Data Jalan, Parsil Tanah & SPBU
-- ============================================================
CREATE DATABASE IF NOT EXISTS webgis_sig CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE webgis_sig;
-- ============================================================
-- TABEL: data_jalan (Line / Polyline)
-- Menyimpan data ruas jalan berdasarkan status jalan
-- Geometri disimpan dalam format GeoJSON (LineString)
-- ============================================================
CREATE TABLE IF NOT EXISTS data_jalan (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nama_jalan VARCHAR(150) NOT NULL COMMENT 'Nama ruas jalan',
status_jalan ENUM(
'Jalan Nasional',
'Jalan Provinsi',
'Jalan Kabupaten'
) NOT NULL COMMENT 'Status / klasifikasi jalan',
panjang_m DECIMAL(12,2) DEFAULT 0.00 COMMENT 'Panjang jalan dalam meter (dihitung otomatis oleh LeafletJS)',
geojson LONGTEXT NOT NULL COMMENT 'Geometri LineString dalam format GeoJSON',
keterangan TEXT DEFAULT NULL COMMENT 'Keterangan tambahan',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ============================================================
-- TABEL: data_parsil (Polygon)
-- Menyimpan data parsil tanah / kavling berdasarkan status kepemilikan
-- Geometri disimpan dalam format GeoJSON (Polygon)
-- ============================================================
CREATE TABLE IF NOT EXISTS data_parsil (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nama_parsil VARCHAR(150) NOT NULL COMMENT 'Nama / nomor parsil',
status_hak ENUM(
'Sertifikat Hak Milik',
'Sertifikat Hak Guna Bangunan',
'Sertifikat Hak Guna Usaha',
'Sertifikat Hak Pakai'
) NOT NULL COMMENT 'Status kepemilikan / hak atas tanah',
luas_m2 DECIMAL(15,2) DEFAULT 0.00 COMMENT 'Luas tanah dalam meter persegi (dihitung otomatis oleh LeafletJS)',
geojson LONGTEXT NOT NULL COMMENT 'Geometri Polygon dalam format GeoJSON',
pemilik VARCHAR(150) DEFAULT NULL COMMENT 'Nama pemilik (opsional)',
keterangan TEXT DEFAULT NULL COMMENT 'Keterangan tambahan',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ============================================================
-- DATA CONTOH Jalan
-- ============================================================
INSERT INTO data_jalan (nama_jalan, status_jalan, panjang_m, geojson, keterangan) VALUES
(
'Jl. Sudirman',
'Jalan Nasional',
1250.50,
'{"type":"LineString","coordinates":[[106.8272,-6.2088],[106.8290,-6.2075],[106.8310,-6.2060],[106.8330,-6.2045]]}',
'Jalan protokol pusat kota'
),
(
'Jl. Gatot Subroto',
'Jalan Provinsi',
980.00,
'{"type":"LineString","coordinates":[[106.8200,-6.2100],[106.8220,-6.2095],[106.8240,-6.2090],[106.8260,-6.2085]]}',
'Penghubung antar kecamatan'
),
(
'Jl. Pramuka',
'Jalan Kabupaten',
620.75,
'{"type":"LineString","coordinates":[[106.8150,-6.2180],[106.8160,-6.2170],[106.8175,-6.2160],[106.8185,-6.2150]]}',
'Jalan lingkungan kabupaten'
);
-- ============================================================
-- DATA CONTOH Parsil Tanah
-- ============================================================
INSERT INTO data_parsil (nama_parsil, status_hak, luas_m2, geojson, pemilik, keterangan) VALUES
(
'Parsil A-001',
'Sertifikat Hak Milik',
1200.00,
'{"type":"Polygon","coordinates":[[[106.8200,-6.2000],[106.8210,-6.2000],[106.8210,-6.2010],[106.8200,-6.2010],[106.8200,-6.2000]]]}',
'Budi Santoso',
'Tanah kavling perumahan'
),
(
'Parsil B-002',
'Sertifikat Hak Guna Bangunan',
850.50,
'{"type":"Polygon","coordinates":[[[106.8220,-6.2000],[106.8230,-6.2000],[106.8230,-6.2008],[106.8220,-6.2008],[106.8220,-6.2000]]]}',
'PT. Maju Bersama',
'Kavling komersial'
),
(
'Parsil C-003',
'Sertifikat Hak Guna Usaha',
2500.00,
'{"type":"Polygon","coordinates":[[[106.8240,-6.1990],[106.8260,-6.1990],[106.8260,-6.2010],[106.8240,-6.2010],[106.8240,-6.1990]]]}',
'CV. Tani Makmur',
'Lahan pertanian/perkebunan'
),
(
'Parsil D-004',
'Sertifikat Hak Pakai',
4000.00,
'{"type":"Polygon","coordinates":[[[106.8270,-6.1985],[106.8295,-6.1985],[106.8295,-6.2005],[106.8270,-6.2005],[106.8270,-6.1985]]]}',
'Pemerintah Kota',
'Lahan fasilitas umum'
);
-- ============================================================
-- TABEL: data_spbu (Point)
-- Menyimpan data SPBU (Stasiun Pengisian Bahan Bakar Umum)
-- Geometri disimpan dalam format GeoJSON (Point)
-- ============================================================
CREATE TABLE IF NOT EXISTS data_spbu (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nama_spbu VARCHAR(150) NOT NULL COMMENT 'Nama SPBU / nama cabang',
telepon VARCHAR(20) DEFAULT NULL COMMENT 'Nomor telepon SPBU',
buka_24jam TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 = buka 24 jam (marker hijau), 0 = tidak (marker merah)',
lat DECIMAL(10,7) NOT NULL COMMENT 'Latitude titik SPBU',
lng DECIMAL(10,7) NOT NULL COMMENT 'Longitude titik SPBU',
geojson LONGTEXT NOT NULL COMMENT 'Geometri Point dalam format GeoJSON',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ============================================================
-- DATA CONTOH SPBU di Pontianak
-- ============================================================
INSERT INTO data_spbu (nama_spbu, telepon, buka_24jam, lat, lng, geojson) VALUES
('SPBU Jl. Ahmad Yani', '0561-123456', 1, -0.0200, 109.3300, '{"type":"Point","coordinates":[109.3300,-0.0200]}'),
('SPBU Jl. Gajah Mada', '0561-654321', 0, -0.0350, 109.3200, '{"type":"Point","coordinates":[109.3200,-0.0350]}'),
('SPBU Jl. Tanjungpura', '0561-789012', 1, -0.0100, 109.3450, '{"type":"Point","coordinates":[109.3450,-0.0100]}'),
('SPBU Jl. Sutan Syahrir','0561-345678', 0, -0.0480, 109.3380, '{"type":"Point","coordinates":[109.3380,-0.0480]}');
File diff suppressed because it is too large Load Diff