fix: вода/НП фильтруются строго по сектору (ST_Intersects, не bbox)

Ближайшая вода бралась по bbox сектора: объект в углу bbox, но вне
45°-пирога, попадал в выборку — вода почти не различала направления
(1.393 км у N/NE/E с одной воды в центре). Теперь строго внутри сектора:
water 1.393–2.337 км по направлениям — честная география.
This commit is contained in:
2026-09-09 19:46:28 +03:00
parent ea19ed0d8f
commit 61308ed444
+3
View File
@@ -104,18 +104,21 @@ def get_zone_features_postgis(lat: float, lon: float, direction: str, radius_m:
FROM planet_osm_polygon p, s
WHERE (p."natural" = 'water' OR p.landuse = 'reservoir')
AND p.way && s.sector
AND ST_Intersects(p.way, s.sector)
),
waterway_near AS (
SELECT MIN(ST_Distance(l.way, s.center_m)) AS meters
FROM planet_osm_line l, s
WHERE l.waterway IN ('river','stream','canal','ditch','drain')
AND l.way && s.sector
AND ST_Intersects(l.way, s.sector)
),
settle_near AS (
SELECT MIN(ST_Distance(p.way, s.center_m)) AS meters
FROM planet_osm_point p, s
WHERE p.place IN ('village','town','city')
AND p.way && s.sector
AND ST_Intersects(p.way, s.sector)
)
SELECT
(SELECT meters FROM road_len),