My App — это веб-приложение для работы с интерактивными картами, имеющее интеграцию с геоинформационным сервисом GeoServer. Приложение построено с использованием React для клиентской части и OpenLayers для работы с картографическими данными.
-
Frontend:
- React
- OpenLayers
- Material UI
-
Backend:
- Node.js
- Python (для обработки данных)
- PostgreSQL с PostGIS (для хранения геоданных)
-
Инфраструктура:
- Docker и Docker Compose для контейнеризации
- GeoServer для публикации геоданных
-
Интерактивная карта:
- Используется базовый слой OpenStreetMap.
- Добавляются динамические WMS-слои с GeoServer, позволяющие отображать геоданные.
-
Переключение слоев:
- Пользователь может включать или отключать видимость отдельных WMS-слоев с помощью чекбоксов, что позволяет настраивать отображение карты по своему усмотрению.
-
Аутентификация:
- Форма авторизации реализована для управления доступом к расширенной карте. При вводе корректных учетных данных пользователь перенаправляется на страницу с дополнительными данными.
-
Обработка данных:
- Серверные компоненты на Node.js и Python для обработки геопространственных данных.
- Интеграция с базой данных PostgreSQL/PostGIS.
Приложение построено по микросервисной архитектуре и состоит из следующих компонентов:
- Frontend (React) - пользовательский интерфейс с интерактивными картами
- Backend (Node.js) - API для обработки запросов и координации сервисов
- Python-сервис - специализированная обработка геоданных
- PostgreSQL/PostGIS - хранение и пространственные запросы
- GeoServer - публикация геопространственных данных через стандартные протоколы
Приложение обращается к GeoServer через WMS-запросы, что позволяет динамически загружать геопространственные данные. Для корректной работы убедитесь, что:
- GeoServer запущен и доступен по адресу
http://localhost:8080/geoserver.
-
Установка зависимостей:
npm install
-
Запуск приложения:
npm start
Приложение по умолчанию открывается на порту 3000.
-
Запуск GeoServer: Следуйте инструкции по установке GeoServer (Stand-alone, через Tomcat) и убедитесь, что сервер доступен по адресу
http://localhost:8080/geoserver.
На Windows:
-
Скачивание:
Перейдите на официальный сайт GeoServer и скачайте установщик -
Распаковка и запуск:
- Запустите установщик и следуйте инструкциям.
- Откройте браузер по адресу:
http://localhost:8080/geoserver
На Linux:
-
Скачивание:
Скачайте ZIP-архив с официального сайта GeoServer. -
Распаковка:
unzip geoserver-<version>-bin.zip -d /opt/geoserver
-
Запуск:
cd /opt/geoserver/geoserver-<version> java -jar start.jar
- GeoServer будет доступен по адресу:
http://localhost:8080/geoserver
- GeoServer будет доступен по адресу:
-
Убедитесь, что установлен Java и Apache Tomcat.
(На Ubuntu можно установить Tomcat9:sudo apt install tomcat9) -
Скачивание WAR-файла:
Получитеgeoserver.warс официального сайта GeoServer. -
Размещение WAR-файла:
Скопируйте файл в каталогwebappsTomcat:sudo cp geoserver.war /var/lib/tomcat9/webapps/
-
Перезапуск Tomcat:
sudo systemctl restart tomcat9
-
Доступ к GeoServer:
Откройте браузер и перейдите по адресу:http://localhost:8080/geoserver
Перед запуском убедитесь, что на вашей машине установлены Docker и Docker Compose.
-
Сборка и запуск контейнеров
Перейдите в корневую директорию проекта (там, где находится файл
docker-compose.yml) и выполните команду:docker-compose up --build
Эта команда:
- Соберёт Docker-образы для всех компонентов согласно файлам Dockerfile.
- Запустит контейнеры: приложение (nodeapp), Python-сервис, GeoServer и PostgreSQL.
- Создаст общие тома для обмена данными между сервисами.
-
Доступ к приложениям
После успешного запуска:
- Веб-приложение будет доступно по адресу: http://localhost:3000
- GeoServer – по адресу: http://localhost:8080/geoserver
-
Остановка контейнеров
Чтобы остановить и удалить запущенные контейнеры, выполните команду:
docker-compose down
Для остановки контейнеров с сохранением томов данных:
docker-compose down -v