Files

Project 01 - WebGIS Dasar

Project ini adalah tugas kelas WebGIS dasar berbasis Leaflet.js, PHP, dan MySQL/MariaDB. Fokusnya adalah pengelolaan layer geometri dasar: point, polyline, dan polygon.

Status Project

Project ini disertakan sebagai artifact tugas kelas. Aplikasi final Tugas Besar ada di folder ../WebgisPovertyMapping.

File utama untuk demo project ini adalah:

index.php

File index.html dan endpoint root seperti simpan.php, ambil_data.php, hapus.php, dan update_posisi.php adalah peninggalan versi awal POI. Demo utama menggunakan index.php dan endpoint di folder api/.

Fitur

Fitur Deskripsi
POI/lokasi usaha Tambah, tampilkan, hapus, dan drag marker lokasi usaha
Data jalan Gambar polyline jalan, simpan status jalan, hitung panjang
Data parsil Gambar polygon bidang tanah, simpan status kepemilikan, hitung luas
CRUD API Endpoint per layer di api/point/, api/jalan/, dan api/parsil/
Peta interaktif Leaflet.js dengan tile OpenStreetMap

Struktur Utama

01/
├── index.php
├── koneksi.php
├── setup_database.sql
├── api/
│   ├── point/
│   ├── jalan/
│   └── parsil/
└── modules/
    ├── point.js
    ├── jalan.js
    └── parsil.js

Database

Project ini memakai database khusus:

db_webgis_01

Import schema:

mysql -u root -P 3307 < setup_database.sql

Jika MySQL/MariaDB lokal memakai port lain, sesuaikan DB_PORT pada koneksi.php.

Konfigurasi

Konfigurasi database ada di koneksi.php:

define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'db_webgis_01');
define('DB_PORT', 3307);

Akses Lokal

http://localhost/webgis/01/

Dependensi

  • Leaflet.js
  • OpenStreetMap tile
  • Google Fonts

Dependensi frontend dimuat dari CDN, sehingga demo membutuhkan koneksi internet.

Public Deployment Hardening

Before exposing 01/ publicly:

  • Rotate the seeded admin password.
  • Keep public users read-only.
  • Confirm anonymous POST requests to api/point, api/jalan, api/parsil, and api/choropleth return 403.
  • Confirm /01/setup_database.sql, /01/tests/, /01/docs/, and dotfiles are not reachable by browser.
  • Use a database user with limited app privileges in production.

Production database note: create a MariaDB user with privileges only on db_webgis_01 and configure APP_DB_USER / APP_DB_PASSWORD. Do not run the public app with the root database user after initial setup.