feat(nspd): get_feature_info FEATURE_COUNT=10 — multi-feature per point (#1067) #1080

Merged
bot-reviewer merged 1 commit from feat/nspd-feature-count into main 2026-06-06 18:18:08 +00:00
Owner

Что

get_feature_info() теперь шлёт FEATURE_COUNT=10 (новый параметр feature_count, default 10).

Зачем

NSPD WMS GetFeatureInfo по умолчанию возвращает 1 фичу на точку → перекрывающиеся зоны одного слоя теряются. На ЕКБ это реально: слой 37581 «иные ЗОУИТ» в одной точке вернул 2 фичи (разные reg_numb_border/subcategory). Портал nspd.gov.ru шлёт FEATURE_COUNT=10. Без этого overlay-ингест (#1067) неполон.

Tile-геометрия (256/128, I/J центр) не тронута — low-regression, меняется только число возвращаемых фич.

Тесты

  • test_get_feature_info_returns_multiple_overlapping_features (2 зоны в точке), test_get_feature_info_custom_feature_count (override), + assert FEATURE_COUNT=10 в существующем. pytest tests/test_nspd_client.py34 passed. ruff clean.

Refs #1067 (ИРД foundation A2).

## Что `get_feature_info()` теперь шлёт `FEATURE_COUNT=10` (новый параметр `feature_count`, default 10). ## Зачем NSPD WMS GetFeatureInfo по умолчанию возвращает **1 фичу на точку** → перекрывающиеся зоны одного слоя теряются. На ЕКБ это реально: слой `37581` «иные ЗОУИТ» в одной точке вернул 2 фичи (разные `reg_numb_border`/`subcategory`). Портал nspd.gov.ru шлёт `FEATURE_COUNT=10`. Без этого overlay-ингест (#1067) неполон. Tile-геометрия (256/128, I/J центр) **не тронута** — low-regression, меняется только число возвращаемых фич. ## Тесты + `test_get_feature_info_returns_multiple_overlapping_features` (2 зоны в точке), `test_get_feature_info_custom_feature_count` (override), + assert `FEATURE_COUNT=10` в существующем. `pytest tests/test_nspd_client.py` → **34 passed**. ruff clean. Refs #1067 (ИРД foundation A2).
lekss361 added 1 commit 2026-06-06 18:10:30 +00:00
feat(nspd): get_feature_info FEATURE_COUNT=10 — multi-feature per point (#1067)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / changes (push) Successful in 6s
CI / backend-tests (push) Successful in 5m46s
CI / backend-tests (pull_request) Successful in 5m45s
f900096359
NSPD WMS GetFeatureInfo по умолчанию отдаёт 1 фичу/точку → перекрывающиеся зоны
одного слоя теряются (на ЕКБ 37581 «иные ЗОУИТ» в точке возвращает 2). Портал
шлёт FEATURE_COUNT=10. Добавлен параметр feature_count (default 10) → полный
overlay-ингест. Tile-геометрия (256/128) не тронута — low-regression.

Refs #1067 (ИРД foundation A2).
lekss361 added the
status/review
label 2026-06-06 18:10:50 +00:00
bot-reviewer reviewed 2026-06-06 18:17:57 +00:00
bot-reviewer left a comment
Collaborator

APPROVE

Минимальный backward-compatible change:

  • feature_count: int = 10 добавлен в хвост сигнатуры с default → ни один caller не ломается (5-й позиционный никем не передавался; прод-вызовов пока нет, только тесты — функция подключается в overlay-ингесте #1067).
  • str(feature_count) в WMS params, без дубля FEATURE_COUNT. Tile-геометрия (256/128 I/J) не тронута → low-regression.
  • Существующий test_get_feature_info_parses_response обновлён (assert FEATURE_COUNT=10) + 2 новых (multi-feature parse, override=25). Mock на _http_get_json — правильный уровень, не патчит метод-под-тестом. 34 passed, ruff clean.

Минор (advisory): deprecated get_features_in_bbox не получил FEATURE_COUNT — но он заменён get_features_in_bbox_grid, который делегирует в nspd_bulk_client.wms_feature_info с hardcoded FEATURE_COUNT=10. Deprecated-код, follow-up не завожу.

Merge → deploy-verify.

<!-- gendesign-review-bot: sha=f900096 verdict=approve --> ✅ **APPROVE** Минимальный backward-compatible change: - `feature_count: int = 10` добавлен в хвост сигнатуры с default → ни один caller не ломается (5-й позиционный никем не передавался; прод-вызовов пока нет, только тесты — функция подключается в overlay-ингесте #1067). - `str(feature_count)` в WMS params, без дубля FEATURE_COUNT. Tile-геометрия (256/128 I/J) не тронута → low-regression. - Существующий `test_get_feature_info_parses_response` обновлён (assert FEATURE_COUNT=10) + 2 новых (multi-feature parse, override=25). Mock на `_http_get_json` — правильный уровень, не патчит метод-под-тестом. 34 passed, ruff clean. **Минор (advisory):** deprecated `get_features_in_bbox` не получил FEATURE_COUNT — но он заменён `get_features_in_bbox_grid`, который делегирует в `nspd_bulk_client.wms_feature_info` с hardcoded `FEATURE_COUNT=10`. Deprecated-код, follow-up не завожу. Merge → deploy-verify.
bot-reviewer merged commit c2e0428803 into main 2026-06-06 18:18:08 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1080
No description provided.