{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreianibdi6e7mmq5tfre7ridpfbqmv7j4vi4wfo4cbmkoxdstzs4fpa",
"uri": "at://did:plc:4tuge3k3comfj4nfvqnwkemn/app.bsky.feed.post/3mgafaawkd4s2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreic4j2tnuwatv5usmcupsa5sxuprlfdmjp4tyv45vq5unv6lzdeiza"
},
"mimeType": "image/png",
"size": 1983658
},
"path": "/user/sarath%20sabarish/diary/408305",
"publishedAt": "2026-03-03T07:59:13.000Z",
"site": "https://www.openstreetmap.org",
"textContent": "Nimman Road, Chiang Mai(Thailand) is a well-mapped, high-traffic corridor. It scores a B on network density: good intersection frequency, reasonable block lengths. But it scores near zero on crossing coverage because there are no highway=crossing nodes tagged within the 800m analysis radius. The street has physical crossings. They’re just invisible to any tool that relies on OSM, which is most tools.\n\nThat’s what SafeStreets shows: not just a score, but which data gap is causing it.\n\nWhat SafeStreets is?\n\nA free tool that scores the walkability and pedestrian safety of any street address globally(graded out of 10). No account required, 190+ countries. OSM is the backbone, and the only data source that works everywhere.\n\nHow OSM powers it, three functions?\n\n 1. Address geocoding via Nominatim Every analysis starts here, with a ~50km geolocation bias for local lookups while preserving global search. No proprietary geocoding.\n 2. Street infrastructure scoring via Overpass API (800m radius) We query within an 800m circle for:\n\n\n\nhighway=crossing nodes → crossing safety footway=sidewalk and highway=footway ways → sidewalk coverage highway=primary/secondary/tertiary/residential/living_street → network topology Way attributes: lanes, width, surface, maxspeed, lit, sidewalk, cycleway\n\nFour sub-metrics from this graph:\n\nIntersection density (nodes with degree >= 3 per km2) Average block length (total street length / intersection count) Network density (total street km per km2) Dead-end ratio (degree-1 nodes penalize walkability)\n\nThese combine into the Network Design component (35% of the total score). 3. 15-minute city scoring via Overpass API (1,200m radius) Service reachability on foot, scored by nearest distance (<=400m = 100pts, <=800m = 75pts, <=1,200m = 50pts):\n\nGrocery: shop=supermarket/convenience/greengrocer Healthcare: amenity=pharmacy/clinic/hospital Education: amenity=school/kindergarten/library Recreation: leisure=park/playground/sports_centre Transit: public_transport=stop_position/platform, highway=bus_stop, railway=station/tram_stop/subway_entrance Dining: amenity=restaurant/cafe/fast_food\n\nThis feeds the Accessibility component (25% of total score) and a separate 15-Minute City Score.\n\n 1. Map rendering via Leaflet + OSM tiles Scored infrastructure overlaid on OSM base tiles. What’s missing, and what would help We’re explicit in the UI about what we can and can’t measure:\n\n\n\n✓ Crossings exist and where ✓ Lit / not lit (where tagged) ✓ Service accessibility via POIs ✗ Pavement condition ✗ Sidewalk obstructions (vendors, parked bikes) ✗ Crossing quality (marked, signalled, raised), sparse outside Europe/North America\n\nThe most useful contributions for Southeast Asian cities: sidewalk=_, crossing=marked/uncontrolled/traffic_signals, and lit=_ on way segments. These tags directly change scores for real addresses. Nimman Road would improve immediately with accurate crossing nodes added.\n\nThe project\n\nSafeStreets is live at safestreets.streetsandcommons.com. Built by Streets & Commons, a civic tech initiative based out SEA If you’re mapping in SE Asia and want to see a specific street analysed, or if you work on pedestrian tagging schema, I’d love to hear from you in the comments",
"title": "How SafeStreets uses OSM to score pedestrian safety, and what's missing in Southeast Asia"
}