gendesign/tradein-mvp/backend/data/sql/130_ekb_geoportal_buildings.sql
bot-backend 64d113d649
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
feat(tradein): EKB geoportal building ingest + geocoder tier (complete city buildings)
2026-06-19 17:51:07 +03:00

38 lines
1.8 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 130_ekb_geoportal_buildings.sql
-- Полный реестр зданий ЕКБ из городского геопортала (геопортал.екатеринбург.рф,
-- слой WFS portal:portal_geo_topo_build). Намного полнее чем NSPD cad_buildings
-- (который пропускает ~70% зданий ЕКБ) — используется как ПЕРВЫЙ локальный tier
-- геокодера для разрешения «улица + дом» → координаты.
--
-- Наполняется лоадером app.tasks.ekb_geoportal_ingest (python -m). UPSERT по
-- (street_norm, house_norm); координаты = центроид футпринта здания.
--
-- Нормализация (ДОЛЖНА совпадать с matcher'ом в geocoder._geoportal_house_match):
-- street_norm = lower(trim(street))
-- house_norm = lower(house) с удалёнными внутренними пробелами («7 б» → «7б»)
--
-- Idempotent: CREATE TABLE IF NOT EXISTS + CREATE INDEX IF NOT EXISTS,
-- безопасно при повторном применении.
BEGIN;
CREATE TABLE IF NOT EXISTS ekb_geoportal_buildings (
id bigserial PRIMARY KEY,
street text NOT NULL,
house text NOT NULL,
street_norm text NOT NULL,
house_norm text NOT NULL,
lat double precision NOT NULL,
lon double precision NOT NULL,
floors integer,
purpose text,
material text,
source_keys bigint[],
updated_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (street_norm, house_norm)
);
CREATE INDEX IF NOT EXISTS ix_ekb_geoportal_buildings_street_house
ON ekb_geoportal_buildings (street_norm, house_norm);
COMMIT;