2 changed files with 4 additions and 3 deletions
|
|
@ -544,8 +544,9 @@ def _get_cad_zouit_overlaps(db: Session, parcel_wkt: str) -> list[dict[str, Any]
|
|||
# в ::geography для корректных м². NULLIF guard от деления на ноль → coverage None.
|
||||
# #1957: cad_zouit хранит одну физическую зону 2× (одинаковый reg_numb_border,
|
||||
# разный category_name) → дубль-строки в overlaps. DISTINCT ON (reg_numb_border)
|
||||
# схлопывает в одну (берём наименьший id). Зоны без рег-номера (NULL) не
|
||||
# схлопываются между собой — каждая остаётся отдельной строкой.
|
||||
# схлопывает в одну, оставляя наименьший id (ORDER BY reg_numb_border, id).
|
||||
# reg_numb_border — TEXT NOT NULL (0 NULL на проде), так что рег-номер есть у
|
||||
# каждой строки и дедуп идёт по реальному идентификатору зоны.
|
||||
rows = db.execute(
|
||||
text(
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ export interface NspdZoning {
|
|||
}
|
||||
|
||||
export interface NspdZouitOverlap {
|
||||
group_key: string; // e.g. "engineering", "okn", "natural", "protected", "other", "cad_zouit"
|
||||
group_key: string; // e.g. "engineering", "okn", "natural", "protected", "other"
|
||||
layer: string; // e.g. "zouit_engineering"; для cad_zouit fallback = type_zone
|
||||
subcategory: string | number | null;
|
||||
name: string | null;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue