Работающее демо · подготовлено 7 сентября 2026

Settlements UI

GIS-интерфейс для выбора объектов, редактирования полигонов, проверки геометрии и экспорта. Публичное демо работает на полностью синтетической карте.

Открыть демо ↗Технический разбор →Исходный репозиторий приватный
История репозитория: с февраля 2025. Публичная синтетическая версия: 7 сентября 2026.Версия 74ff9dfa12 кадров интерфейса

01 / Задача

Редактирование геометрии на интерактивной карте

Изменение границ должно оставаться связано с карточкой объекта, проходить проверку и давать воспроизводимый результат экспорта.

Для кого: Специалисты, работающие с территориальными объектами и геометрией.

Мой вклад

  • Прикладной интерфейс карточек, слоёв и редактирования геометрии.
  • Работа с React/MobX, MapLibre, Mapbox Draw, GeoJSON и EWKB.
  • Подготовка отдельного demo adapter без корпоративного API, registry-зависимостей и рабочих данных.

Интерфейс в работе

Сценарии, детали и состояния

02 / Технологии

Стек и его роль

React / MobX

Карточки, application store и согласованное состояние выбора.

MapLibre / Mapbox Draw

Рендер карты, слои и интерактивное изменение вершин.

GeoJSON / EWKB

Обмен геометрией, преобразования и валидация.

Vite

Изолированная production-сборка без корпоративного registry.

03 / Решения

Как устроен проект

  • Сохранены исходные application store, модели, контроллеры карты и проверки геометрии.
  • Транспорт OData заменён локальным адаптером; карта не запрашивает внешние тайлы.
  • Импорт разрешён только для встроенного GeoJSON-примера, повтор не создаёт дубликат.
Компоненты опубликованного демо
Компоненты опубликованного демо

04 / Проверка

Что попробовать

  1. Найдите объект, откройте карточку и включите режим редактирования.
  2. Переместите вершину полигона, проверьте геометрию и сохраните.
  3. Импортируйте встроенный пример, затем повторите импорт: останется пять объектов.
  4. Экспортируйте GeoJSON, сравните изменённую вершину и сбросьте карту.

Подтверждённые результаты

  • Сохранено 12 содержательных кадров фактического интерфейса.
  • Дата, сценарий и версия указаны у каждого кадра.
  • Отдельного backend-процесса на VPS нет: Nginx раздаёт статику. Ресурсы общего Nginx нельзя честно приписать одному сайту.
  • Измерено 6 повторений сценария; медиана 71.5 мс, максимум 819 мс. Время включает браузер и HTTPS; методика и ограничения приложены.

Границы и ограничения

  • Четыре объекта и географическая подложка вымышлены; это не кадастровая или административная карта.
  • Исходный репозиторий остаётся приватным. Серверный OData и исходный массовый импорт не развёрнуты.
  • Production Vite-сборка и браузерные сценарии проверены; полный legacy TypeScript/lint набор не заявляется пройденным.

Нужны детали реализации?

Архитектура, code-map, API, проверка, развёртывание и реальные измерения.

Открыть документацию →Скачать материалы ↓