Problem
npm run validate:places currently reports 570 near-duplicate-coordinate warnings in sat_centre.json (up from 0 after #171). 24 of those are exact-coordinate clusters (multiple different schools sharing the identical lat/lng), concentrated almost entirely in a handful of recently-added country batches:
| City |
Schools sharing one coordinate |
| Dubai |
19 |
| Sharjah |
17 |
| Abu Dhabi |
16 |
| Istanbul |
12 |
| Al Ain |
10 |
| Seoul |
8 |
| Ajman |
6 |
| Kayseri |
4 |
| Lagos |
3 |
| Izmir |
3 |
| Yongin |
3 |
UAE alone accounts for 68 of these. This pattern (many real, differently-named schools all pinned to one identical point) is the same class of bug fixed for two records in #171 - except here it looks systemic to how these country batches were entered, most likely one city-center coordinate copy-pasted for every school in that city instead of each school's own address.
Fix
For each flagged school (run npm run validate:places locally to get the full, current list — it changes as more countries get added), look up its real address/coordinates individually and correct lat/lng. Don't bulk-replace with new placeholder coordinates - #171's precedent is to geocode each one from its actual address (school website, Google Maps listing, etc.), not to just spread them apart arbitrarily.
Acceptance criteria
Problem
npm run validate:placescurrently reports 570 near-duplicate-coordinate warnings insat_centre.json(up from 0 after #171). 24 of those are exact-coordinate clusters (multiple different schools sharing the identical lat/lng), concentrated almost entirely in a handful of recently-added country batches:UAE alone accounts for 68 of these. This pattern (many real, differently-named schools all pinned to one identical point) is the same class of bug fixed for two records in #171 - except here it looks systemic to how these country batches were entered, most likely one city-center coordinate copy-pasted for every school in that city instead of each school's own address.
Fix
For each flagged school (run
npm run validate:placeslocally to get the full, current list — it changes as more countries get added), look up its real address/coordinates individually and correctlat/lng. Don't bulk-replace with new placeholder coordinates - #171's precedent is to geocode each one from its actual address (school website, Google Maps listing, etc.), not to just spread them apart arbitrarily.Acceptance criteria
npm run validate:placeswarning count drops to (near) zero