Skip to content

EnzoLu1337/GeoSpring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Геопортал для ранжирования участков

Full-stack приложение для загрузки и хранения пространственных данных (Shapefile → GeoJSON), визуализации их на карте Leaflet и расчета рейтингов участков относительно водных объектов. Репозиторий уже содержит бэкенд на Spring Boot и статический фронтенд. Было создано для проекта внутри университета. Жесткий вайбкод из-за работы с Shapefile.

Backend (Spring Boot)

  • Стек: Java 17, Spring Boot 3.4, Spring Data JPA, Hibernate Spatial, GeoTools, PostgreSQL/PostGIS.
  • Основные возможности:
    • Прием ZIP-архива с Shapefile (POST /api/upload) и преобразование в GeoJSON.
    • Валидация типов объектов (land_plot, water_channel) и whitelisting колонок DBF.
    • Хранение исходных файлов и геометрий (таблицы file_entity, feature_entity).
    • Расчет рейтингов участков по критериям площади, расстояния до каналов и локальной плотности (/api/ranking/*).

Конфигурация

  1. Установите PostgreSQL (желательно с PostGIS). Создайте базу, например Geo.
  2. Обновите креды в Backend/src/main/resources/application.properties.
  3. При необходимости укажите диалект PostGIS и иные параметры JPA.

Запуск и сборка

cd Backend
./mvnw spring-boot:run           # локальный сервер на http://localhost:8080
./mvnw clean package             # сборка jar в Backend/target

REST API

Метод Маршрут Описание
POST /api/upload Загрузка архивированного Shapefile с параметром featureType (land_plot/water_channel).
GET /api/files Список всех загруженных слоев.
GET /api/files/{id}/features Геометрии и свойства фичей выбранного файла.
GET /api/ranking/scores Текущие рейтинги участков.
POST /api/ranking/calculate Пересчет рейтинга с телом RankingCriteria (необязателен, есть дефолты).
POST /api/ranking/reset Сброс уже сохраненных рейтингов.

Frontend (Leaflet + Bootstrap)

  • HTML/JS/CSS лежат в Frontend/.
  • Карта Leaflet отображает участки и каналы; есть поиск, фильтрация по bounding box, диаграмма свойств Chart.js и легенда рейтингов.
  • Клиент обращается к REST API по http://localhost:8080/api. Измените API_BASE_URL в Frontend/js/app.js, если бэкенд размещен иначе.

Типовой рабочий процесс

  1. Запустите Spring Boot сервис (localhost:8080).
  2. Поднимите фронтенд (статический сервер).
  3. Через UI загрузите ZIP Shapefile с корректным featureType.
  4. Проверьте появление слоев на карте, выполните поиск/фильтрацию.
  5. Запустите расчет рейтингов через интерфейс (вызывает /api/ranking/calculate) и визуализируйте результат.
  6. При необходимости сбросьте рейтинг и повторите аналитику.

Полезное

  • При добавлении новых типов объектов расширьте ALLOWED_FEATURE_TYPES и whitelists в ShapefileService.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors