Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.

Петр Сальников spbcod

Рейтинг: 30
Верифицирован через Сбер ID
Всего отзывов: 0
  • Работ в портфолио: 42
  • Типовых услуг: 11
  • Работ на продажу: 0
  • Возраст: 50 лет
  • Стаж работы: 27 лет
  • Зарегистрирован: 26.02.2023
  • Образование: Cпециалитет
  • Стоимость услуг (руб): 1 000 за час 200 000 за месяц
Был на сайте:

Разработка геопространственной 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)

Ссылки на примеры реализации

 wildtracks.pro/api/countries/

Презентация проекта

Скриншот 26-02-2026 183850.jpg
Скриншот 26-02-2026 183839.jpg

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

0