Przejdź do głównej zawartości


In February I read a short story, “Mr. Pfeiffer” by Vicky Mlyniec that is set in Percy, Illinois. Curious, I looked up the place on OSM and found it lacking in mapping. I’ve spent the last four months improving it on the map. Today I am done with buildings and other features inside the village limits.






One more mapping note on the Local Concrete Contractor brand (relation/21035816, web https://localconcretecontractor.com).



Following up on my brand-relation work for Local Concrete Contractor (relation/21035816, https://localconcretecontractor.com).











Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Statesville office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Mint Hill office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Concord office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Hickory office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Huntersville office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Matthews office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Mooresville office for Local Concrete Contractor:


Continuing my pass on the NC concrete contractor nodes — heres what Ive done at the Charlotte office for Local Concrete Contractor:


Ive been enriching the OpenStreetMap nodes for a small NC concrete contractor I work with — Local Concrete Contractor. They have 8 office locations across central and western North Carolina. Wanted to document the work so the next mapper has context.



A while back I posted here about SafeStreets, a free walkability and pedestrian-safety scorer that runs on OSM for any address, with Nimman Road in Chiang Mai as the example. Since then the product has moved on in two ways that I thought I can share: the scoring model and how it reads OSM changed. My focus has shifted to the US, so most of what follows is about that, with a short note on the international path at the end.

What changed in the product

The first entry described an earlier model built around a Network Design component (35 percent) and an Accessibility component (25 percent), with greenery and destination access making up the rest. The composite is now four components on a 0 to 10 scale:

Daily Reach:40 percent. Proximity-weighted access to 7 service categories.

Street Safety: 30 percent. Now its own first-class component, a weighted-OR of a crossings grid against pedestrian separation, plus a speed-exposure proxy.

Transit Reach:15 percent. GTFS via Transitland, OSM stops as fallback.

Walking Comfort:15 percent. Sentinel-2 canopy, terrain, air quality (the one non-OSM component).

There is also a new 6-tier label on top of the number, from Pedestrian-first down to Hostile, so the score reads in plain language rather than just a figure.

How it reads OSM now

The bigger change is mechanical. In the first entry every score hit live Overpass inside an 800m and 1,200m query, which was slow and broke whenever Overpass rate-limited me. US scoring is now Overpass-free. I precompute the street and safety metrics from a planet extract onto an H3 resolution-9 grid (roughly 26 million hexes covering the US, about 0.1 km2 each), paired with a local OSM POI layer of around 2 million amenities. A US score is now a hex lookup plus a POI merge, no live API call.

The OSM tags doing the work, by component:

Daily Reach: shop=, amenity=, leisure=, healthcare=, classified into the 7 categories and scored by distance to nearest plus density. Street Safety: highway=crossing and footway=crossing for crossing coverage, sidewalk=* and highway=footway for pedestrian separation, and highway=* class plus maxspeed for speed exposure. Pedestrianized ways (highway=pedestrian, living_street) score highest. Transit Reach: highway=bus_stop, railway=station/tram_stop, public_transport=platform where GTFS is thin.

So OSM is still the backbone for everything except comfort. The precompute moved the reading from request-time to build-time.

The international path-Briefly

International addresses, including Southeast Asia, still go through live Overpass with an Overture POI backfill. Same tags and model, read live rather than from the precomputed grid.

A note on limits

The precompute is a snapshot, so a US crossing you tag today does not move the score until I rebuild the grid. And at res-9 the safety signal is per-hex, not per-point, so it answers “is this a walkable area” rather than door-level precision. Where sidewalks and crossings are tagged, the score tracks reality closely; where they are not, Street Safety leans on road class and understates well-mapped quiet streets. sidewalk=, crossing=, and lit=* on ways remain the tags that most directly move a score.

If a US street you know well scores in a way that feels off, that mismatch is the feedback I am looking for. None of this works without OSM. Thank you all.


I’m deeply impressed by Openstreetmap. And by some very active contributors near Leuven. But, do we really need trams in our lovely tiny city?




I joined this site due to cycling. My tracking app (Strava) uses Open Street Maps. One of my cycling goals was to ride every street in my city, which is difficult enough without mapping errors. I kept seeing “roads” on this map that are in reality private driveways, “public” roads that are actually private, and some roads that exist in reality but aren’t on the map yet. (And in one case, a road on the map that has never existed in reality.)

I haven’t yet figured out how to accurately add missing roads, but I’m trying to make the map better by correcting these other features.


So this weekend (20/06 - 21/06) I went full mapper-mode around Chitlapakkam and Tambaram. Grabbed my phone, walked around the neighbourhood, spent hours on my laptop for mapping and ended up with 18 changesets and ~96 edits over two days.



completed survey of all speed limits in an area south of Palatine Road, east of Wilke, west of Arlington Heights Road and north of Euclid/Northwest Highway. Updated street data on the map.



This is a very simple idea: given a set of GPX traces for a hike you are planning to take, generate a file containing all the waypoints of interest within the area covered by the GPX traces.


Mapping Sitka is pretty much my identity. I was upset when someone reverted my work because honestly I’ve been working every waking hour for a few months now. It was good though because I needed to step back and not take it too seriously. I’ve had some manic episodes late in life and they unlocked some anger I’m not familiar with. It was actually impressive how mad I got. Anyway, what are these diaries for if not a super personal post? Stay mappy people


Earlier today I had to check an alarm on the servers. The alarm was for a non-issue, but I happened to notice a momentary delay to replication across multiple services and I wanted to investigate.


The original work Tout savoir sur la license ODbL : la licence dOpenStreetMap pour cartographier en commun was written in French in 2024 and updated in 2026 by the Fédération des Pros dOSM, a French organization that brings together various companie…
⇧