From 61308ed44482e401fa644ed09a6b834bb067018d Mon Sep 17 00:00:00 2001 From: viktot14-ai Date: Wed, 9 Sep 2026 19:46:28 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B2=D0=BE=D0=B4=D0=B0/=D0=9D=D0=9F=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D1=83=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D1=81=D1=82=D1=80=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=81=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D1=83=20(ST=5FIntersects,?= =?UTF-8?q?=20=D0=BD=D0=B5=20bbox)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ближайшая вода бралась по bbox сектора: объект в углу bbox, но вне 45°-пирога, попадал в выборку — вода почти не различала направления (1.393 км у N/NE/E с одной воды в центре). Теперь строго внутри сектора: water 1.393–2.337 км по направлениям — честная география. --- services/osm_local.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/osm_local.py b/services/osm_local.py index 0c992e6..ffa703a 100644 --- a/services/osm_local.py +++ b/services/osm_local.py @@ -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),