aliziodev / laravel-wilayah-boundaries
Addon data polygon batas wilayah administrasi Indonesia untuk package aliziodev/laravel-wilayah.
Package info
github.com/aliziodev/laravel-wilayah-boundaries
pkg:composer/aliziodev/laravel-wilayah-boundaries
1.0.4
2026-03-07 00:07 UTC
Requires
- php: ^8.2|^8.3
- ext-zlib: *
- aliziodev/laravel-wilayah: ^1.0
- illuminate/database: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- laravel/pint: ^1.27
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.7|^4.0
- pestphp/pest-plugin-drift: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
README
Addon data polygon batas wilayah Indonesia untuk package aliziodev/laravel-wilayah.
Dataset boundaries tidak lagi disimpan sebagai ribuan file PHP di source repo. Package ini memakai manifest ringan di repo dan dataset terkompresi (ndjson.gz) yang diunduh saat diperlukan.
Requirements
composer require aliziodev/laravel-wilayah-boundaries
Membutuhkan
aliziodev/laravel-wilayahsudah terinstall.
Setup
php artisan vendor:publish --tag=wilayah-boundaries-migrations php artisan migrate php artisan boundaries:seed # Seed semua level php artisan boundaries:seed --province=32 # Hanya Jawa Barat php artisan boundaries:seed --level=2 # Hanya level Kab/Kota
Penggunaan
use Aliziodev\WilayahBoundaries\Facades\Boundary; use Aliziodev\Wilayah\Models\Province; // 1. Menggunakan Facade $geoJson = Boundary::forCode('32')->toGeoJson(); $centroid = Boundary::nearestTo(lat: -6.9175, lng: 107.6191, level: 4); $collection = Boundary::collection(level: 1); // FeatureCollection semua provinsi // 2. Menggunakan Relasi Eloquent (Auto-injected) // ✅ BEST PRACTICE: Gunakan eager loading (with) untuk mencegah N+1 query $provinces = Province::with('boundary')->get(); foreach ($provinces as $province) { $geoJson = $province->boundary?->toGeoJson(); $centroid = $province->boundary?->centroid(); }
Sync Data
php artisan boundaries:sync --dry-run php artisan boundaries:sync
Cara Kerja Dataset
- Repo package hanya menyimpan metadata kecil di
data/version.php - Dataset boundaries dibangun oleh GitHub Actions sebagai release asset
.ndjson.gz - Saat
boundaries:seedatauboundaries:syncdijalankan, package akan memakai dataset lokal yang sudah ada atau mengunduh asset release yang sesuai
Pendekatan ini menjaga ukuran repo dan install Composer tetap ringan walaupun data polygon sangat besar.
License
MIT © Aliziodev