3.1 KiB
Geocoding Debug Guide
How the Geocoding System Works
The map now uses real geocoding via the Nominatim API (OpenStreetMap) to get precise coordinates for office addresses.
Process Flow:
- Address Normalization: Cleans addresses by removing metadata like "Main office", "2nd Floor", etc.
- Geocoding: Sends cleaned address to Nominatim API
- Caching: Stores geocoded coordinates to avoid repeated API calls
- Rate Limiting: Respects Nominatim's 1 request/second limit
- Marker Placement:
- Single offices: placed at exact geocoded location
- Shared offices: spread in a circle around the location for visibility
Debugging in Browser Console
After searching for a postal code, check the browser console (F12) for:
// You should see output like:
Original address: 2nd Floor, City Hall
1 Sir Winston Churchill Square
Edmonton AB T5J 2R7
Cleaned address for geocoding: 1 Sir Winston Churchill Square, Edmonton AB T5J 2R7, Canada
✓ Geocoded "1 Sir Winston Churchill Square, Edmonton AB T5J 2R7, Canada" to: {lat: 53.5440376, lng: -113.4897656}
Display name: Sir Winston Churchill Square, 9918, Downtown, Central Core, Edmonton, Alberta, T5J 5H7, Canada
Expected Behavior
For Edmonton postal codes (T5J, T5K, etc.):
- Municipal reps → Should appear at City Hall (Sir Winston Churchill Square)
- Provincial MLAs → Should appear at their constituency offices (geocoded addresses)
- Federal MPs → May appear at Parliament Hill in Ottawa OR local Edmonton offices
For Calgary postal codes (T1Y, T2P, etc.):
- Should appear at various Calgary locations based on constituency offices
For other Alberta cities:
- Should appear at the actual street addresses in those cities
Why Some Clustering is Normal
If you see multiple markers in the same area, it could be because:
- Legitimately Shared Offices: Multiple city councillors work from City Hall
- Same Building, Different Offices: Legislature has multiple MLAs
- Geocoding to Building vs Street: Some addresses geocode to the building center
The system now spreads these markers in a circle around the shared location so you can click each one individually.
Testing Different Locations
Try these postal codes to verify geographic diversity:
- Edmonton Downtown: T5J 2R7 (should show City Hall area)
- Calgary: T1Y 1A1 (should show Calgary locations)
- Red Deer: T4N 1A1 (should show Red Deer locations)
- Lethbridge: T1J 0A1 (should show Lethbridge locations)
Geocoding Cache
The system caches geocoding results in browser memory. To reset:
- Refresh the page (F5)
- Or run in console:
geocodingCache.clear()
API Rate Limiting
Nominatim allows 1 request per second. For 10 representatives with offices:
- Estimated time: 10-15 seconds to geocode all addresses
- Cached results are instant
Fallback Behavior
If geocoding fails for an address, the system falls back to:
- City-level coordinates (from Alberta cities lookup table)
- District-based approximation
- Government level default (Legislature, City Hall, etc.)
This ensures every representative has a marker, even if precise geocoding fails.