- Add _haversine_km() great-circle distance function (pure Python, no PostGIS) - EventListAPI now accepts optional latitude, longitude, radius_km params - Bounding-box SQL pre-filter narrows candidates, Haversine filters precisely - Progressive radius expansion: 10km → 25km → 50km → 100km if <6 results - Backward compatible: falls back to pincode filtering when no coords provided - Response includes radius_km field showing effective search radius used - Guard radius_km float conversion against malformed input - Use `is not None` checks for lat/lng (handles 0.0 edge case) - Expansion list filters to only try radii larger than requested
21 KiB
21 KiB