Problem
When searching for rental properties, walkability is a key factor but hard to evaluate. You end up cross-referencing Google Maps, public transport timetables, and real estate listings manually. Each suburb requires checking train and tram routes, calculating walk times to stops, and comparing median rents -- a process that takes hours per area and still misses the spatial picture of how transit access radiates outward from stops.
Solution
Step 1: Source government open data
Most state and local governments publish transport and rental data as open APIs or CSV downloads.
# Example: Victorian government open data portal
curl -o gtfs.zip "https://data.ptv.vic.gov.au/downloads/gtfs.zip"
curl -o rental_medians.csv "https://data.vic.gov.au/rental-report-quarterly.csv"
Step 2: Generate walkability contours
Use Turf.js to create isochrone-style contour polygons around each transit stop at 5, 10, and 15-minute walking distances.
import * as turf from "@turf/turf";
function walkabilityContour(stopCoords, minuteRadius) {
const walkSpeedKmH = 4.8;
const radiusKm = (walkSpeedKmH * minuteRadius) / 60;
return turf.circle(stopCoords, radiusKm, { units: "kilometers", steps: 64 });
}
// Generate 5, 10, 15 minute contours for each stop
const contours = stops.flatMap((stop) => [
{ feature: walkabilityContour(stop.coords, 5), minutes: 5 },
{ feature: walkabilityContour(stop.coords, 10), minutes: 10 },
{ feature: walkabilityContour(stop.coords, 15), minutes: 15 },
]);
Step 3: Overlay rental median data
// Color suburbs by median rent, overlay walkability contours
map.addSource("rental-medians", {
type: "geojson",
data: rentalGeoJson,
});
map.addLayer({
id: "rent-heatmap",
type: "fill",
source: "rental-medians",
paint: {
"fill-color": ["interpolate", ["linear"], ["get", "median_rent"],
300, "#2ecc71", 500, "#f1c40f", 800, "#e74c3c"],
"fill-opacity": 0.4,
},
});
Step 4: Deploy to GitHub Pages
npm run build
git subtree push --prefix dist origin gh-pages
Why It Works
Government open data portals provide authoritative, regularly updated datasets that would be prohibitively expensive to compile independently. Turf.js handles the geospatial math for walking-distance contours without needing a routing API, keeping the app free to host. The visual overlay of walkability zones on top of rental pricing lets you instantly identify high-value corridors where affordable rent meets strong transit access -- something no single real estate site provides.
Context
- This pattern was used to build a rental finder deployed to GitHub Pages using Victorian government open data
- GTFS (General Transit Feed Specification) is the standard format for public transport data and is available in most cities worldwide
- Turf.js runs entirely in the browser so no backend is needed for the geospatial calculations
- The same approach works for cycling infrastructure, school zones, or any point-of-interest proximity analysis
- Quarterly rental median updates mean the data stays reasonably current without manual maintenance