Tools that compare what the City of Guelph publishes against what OpenStreetMap already knows — and hand mappers the difference, in the editor, where the work actually happens.
Guelph is not a blank map. The gap is rarely the features; it is almost always the attributes.
Tile layers you add to iD or JOSM as a background, each with a gap page listing what OSM is missing, misnaming, or leaving unnamed.
![]() guelph-parks-layer 126 City parks, outlined and named · gaps · code100 match cleanly · 16 missing · 7 named differently · 3 unnamed in OSM |
![]() guelph-address-layer 53,847 City address points, drawn as house numbers · code40,634 civic addresses · 6.2% still missing from OSM · units on a quarter of rows · rebuilt daily |
![]() guelph-buildings-layer 38,945 City building outlines, for tracing · gaps · code1,354 with no OSM building on them · 511 more under 30 m² · 111 drawn from site plans |
![]() guelph-bus-stops-layer 648 Guelph Transit stops, by stop number · gaps · code111 missing · 9 lacking a ref · 68 unnamed · 9 named differently in OSM |
![]() guelph-hydrants-layer 3,537 City fire hydrants, matched by position · gaps · code3,391 missing · 83 lacking a position · 16 lacking a type · 6 placed 10–30 m off in OSM |
![]() guelph-trees-layer 42,712 City street and park trees, by genus · gaps · code34,523 with no OSM tree within 5 m · 452 cells with none at all · 8,032 mapped without species |
![]() guelph-water-layer 93 City stormwater basins, wet and dry, with the creek corridors · gaps · code33 missing · 50 mapped as plain water · 7 tagged as basins · 7 named creeks unnamed in OSM |
![]() guelph-gardens-layer 43 City community gardens and 27 pollinator patches, outlined where the City has drawn them · gaps · code23 missing · 3 newest gardens with no City outline and nothing in OSM · 3 unnamed · 3 named differently · 1 not tagged as a community garden in OSM |
More in progress: pitches, bike facilities, truck routes, trails.
Where the City data itself needs judgment — placeholder points, stale rows, records that were never real — a layer is not enough. These keep a per-record history and somewhere to write down what a human decided.
guelph-address-import — continuous gap-fill and QA over Guelph's completed 2025 address import, the watcher behind the address layer · guelph-beholder — per-record readings of how completely and correctly the address points sit in OSM, over time · guelph-pitches-beholder — 191 courts and sports fields, 162 of them unnamed in OSM
guelph-boundaries — BIA and neighbourhood boundaries, with the Overpass queries behind them
Nothing here is bulk-imported. Every layer is compared against OSM first, and where OSM already has the object, the City data is a reference — it goes in front of a mapper, not into the database. Edits are made by people, one at a time, under the OSM import guidelines and automated edits code of conduct.
Not affiliated with the City of Guelph. Source data is the City's open data, used under its licence:
Contains information licensed under the Open Government Licence – City of Guelph.
Maintained by @skfd · OSM user skfd







