Петр Сальников › spbcod Сбер ID
Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.
Рейтинг
332
№ 3 337 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
28 лет
На сайте с
2023 года
Юридический статус
ИП

Разработка геопространственной API-системы для классификации объектов на карте по странам и типам (Symfony + PostGIS)

Описание

Создать универсальную геопространственную API-систему, которая по запросу страны и типа объекта возвращает структурированные данные о географических объектах. Система должна:
- Поддерживать десятки стран с разным количеством объектов (например, Аландские острова — 2752 объекта, Албания — 2364 и т.д.)
- Классифицировать объекты по типам: горы, реки, озера, леса, дороги, города, парки, подводные объекты и др.
- Возвращать для каждого объекта: название, координаты, тип, страну, дополнительные атрибуты
- Иметь единую систему авторизации через токены
- Предоставлять демо-доступ для тестирования
- Интегрироваться с PostGIS для эффективного хранения и поиска геоданных

Решение

Создал модульную архитектуру на Symfony с использованием PostGIS:

/src/
├── Controller/
│ └── Api/
│ ├── CountryObjectsController.php # Основной контроллер для объектов по странам
│ └── GeoTypesController.php # Контроллер для типов объектов
├── Service/
│ ├── GeoData/
│ │ ├── CountryObjectService.php # Сервис работы с объектами стран
│ │ ├── GeoImporter/
│ │ │ ├── NaturalEarthImporter.php # Импорт из Natural Earth Data
│ │ │ ├── OpenStreetMapImporter.php # Импорт из OSM
│ │ │ └── GeonamesImporter.php # Импорт из GeoNames
│ │ └── SpatialQueryBuilder.php # Построитель пространственных запросов
│ └── Token/
│ └── TokenValidator.php # Проверка токенов
├── Entity/
│ ├── Country.php # Страны
│ ├── GeoObject.php # Географические объекты
│ ├── GeoType.php # Типы объектов
│ └── GeoGeometry.php # Геометрии объектов
└── Repository/
├── CountryRepository.php
├── GeoObjectRepository.php
└── GeoTypeRepository.php

Результат

Технические результаты
✅ API охватывает десятки стран с полной статистикой объектов
✅ Поддержка множества типов объектов: горы, реки, озера, леса, дороги, города, парки, подводные объекты
✅ Интеграция с PostGIS для эффективного хранения и поиска геоданных
✅ Пространственные индексы (GIST) для быстрых гео-запросов
✅ Пагинация для стран с большим количеством объектов (тысячи)
✅ Поиск объектов по радиусу от заданных координат
✅ Единая система токенов (как в других API WildTracks)

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Разработка и оптимизация страницы карточки товара, а также создание набора сопутствующих компонентов для сайта интернет-магазина товаров для охоты Aquazon.ru на базе 1С-Битрикс.
Разработка и оптимизация страницы карточки товара, а также создание набора сопутствующих компонентов для сайта интернет-магазина товаров для охоты Aquazon.ru на базе 1С-Битрикс.
74
Веб-разработка и IT Разработка и поддержка портала Svyato.info — каталога святых источников, родников и купелей России
Разработка и поддержка портала Svyato.info — каталога святых источников, родников и купелей России
70
Веб-разработка и IT Разработка альтернативной системы мониторинга движения товаров и цен для 1С-Битрикс
Разработка альтернативной системы мониторинга движения товаров и цен для 1С-Битрикс
82
Веб-разработка и IT Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API Яндекс.Маркета
Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API Яндекс.Маркета
74