Find the homes public transport doesn't reach

Transport planners measure how many homes sit beyond easy reach of a stop. This example finds every residential building in Singapore more than 400 m in a straight line from a bus stop, from OpenStreetMap.

Singapore homes more than 400 m from a bus stop

Data: OpenStreetMap bus stops and residential buildings
Method: keep residential buildings with no bus stop within 400 m, measured on the ellipsoid

-- Residential buildings with no bus stop within 400 m
WITH stops AS (
  SELECT geom FROM osm.public_transport_point
  WHERE  osm_type = 'bus'
    AND  geom && ST_MakeEnvelope(103.58, 1.20, 104.07, 1.49, 4326)
)
SELECT b.osm_id, b.osm_subtype AS building, b.geom
FROM   osm.building_polygon AS b
WHERE  b.osm_type = 'building'
  AND  b.osm_subtype IN ('apartments', 'residential', 'house', 'semidetached_house', 'terrace', 'detached', 'dormitory')
  AND  b.geom && ST_MakeEnvelope(103.6, 1.22, 104.05, 1.47, 4326)
  AND  NOT EXISTS (
         SELECT 1 FROM stops AS s
         WHERE  s.geom && ST_Expand(b.geom, 0.005)
           AND  ST_DWithin(b.geom::geography, s.geom::geography, 400)
       );
Run preview Save query Save as Layer ⌘/Ctrl-Enter · read-only · ≤100 rows · 30s cap
5516 residential buildings more than 400 m from a bus stop · updated Oct 20, 2026 Open the map ↗ Sources and method

Run it on your data

Upload your own stops, or the stops of a planned route, as a file or spreadsheet and swap them in for the stops step to see which homes they leave out. Change 400 to test another distance. See supported files.

Frequently asked questions

Is 400 m a walking distance?

No. It is straight-line. Walking routes need a road network and a different method.

Why count buildings rather than people?

OpenStreetMap maps buildings, not residents. The count shows where the gaps are, not how many people they affect.

Next step