itsjustvita/laravel-vector-tiles
Laravel package for generating and serving Mapbox vector tiles from your spatial data, with tile endpoints and map integration for interactive, zoomable maps in Laravel apps.
vector-tiles:doctor and vector-tiles:benchmark turn "can we serve maps from our own PostGIS?" from an unbounded research spike into a measurable spike — run the doctor against staging, get a read-only pass/fail per layer, and benchmark render time and tile size per zoom before committing roadmap scope.filterByZoom() lets a single layer definition back different zoom behaviour per plan or map mode, so gating detail by customer tier becomes configuration instead of a fork of the tile pipeline.simplify() with a pixel tolerance under maxZoom is a direct lever on tile weight at low zooms — the kind of change that shows up as faster first paint on mobile without touching source data fidelity at high zoom.TileCache::remember() and PostgisTileDriver::tileQuery() open the door to pre-warming, custom invalidation, and per-layer cache policy — relevant when deciding whether map freshness is a product promise ("live asset positions") or a nice-to-have.Consider it when:
Look elsewhere when:
For executives: We can serve interactive maps directly from the spatial data we already hold in PostGIS, inside our own Laravel application — no per-tile vendor fees, no geodata leaving our infrastructure, no new platform to procure. This release adds the missing operational confidence: a read-only health check that verifies each map layer end to end, and a benchmark that reports render time and tile size per zoom so we can forecast cost and performance before we commit. It also fixes a real security gap where protected layers could leak their metadata, which is why upgrading is worth doing promptly even though the package is still pre-1.0.
For engineering: Adoption is a bounded spike, not a migration. vector-tiles:doctor validates PostGIS, source, geometry column, SRID, properties, and spatial index usage per layer without writing anything — run it against a replica and you know in an afternoon whether our schema is viable. vector-tiles:benchmark then gives per-zoom render time and tile size, which is the input to capacity planning and to deciding where simplify() and filterByZoom() should sit. Access control now composes with our existing middleware, so gated layers reuse Laravel auth instead of a proxy. Two caveats to plan around: the API is pre-1.0, so pin the version and treat minor bumps as reviewable changes; and the cache-version race fix means the upgrade closes a staleness window we would otherwise have had to work around.
How can I help you explore Laravel packages today?