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

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

Описание

Создать API-сервис, который по переданным координатам (широта/долгота) определяет, на территории какой страны находится точка, и возвращает максимально полную информацию об этой стране. Сервис должен:
- Определять страну по координатам с высокой точностью (использовать полигоны границ)
- Возвращать более 30 полей информации о стране:
- Основные: название, официальное название, столица, регион, субрегион
- Географические: площадь, координаты страны, граничащие страны
- Лингвистические: название на разных языках, языки населения
- Культурные: религии, демонимы (названия жителей)
- Технические: код страны (ISO 3166-1 alpha-2/3), автомобильный код, домен, телефонный код
- Административные: формат почтовых индексов, регулярное выражение для проверки
- Визуальные: флаг, иконка
- Временные: часовые пояса
- Экономические: валюта, рейтинг сайта
- Международные: организации, в которых состоит страна

Решение

Создал модульный REST API на Symfony с использованием геоданных:

/src/
├── Controller/
│ └── Api/
│ └── CountryByCoordinatesController.php # Основной эндпоинт
├── Service/
│ ├── CountryDetection/
│ │ ├── PolygonDetector.php # Определение по полигонам
│ │ └── CountryDataProvider.php # Данные о странах
│ ├── Geo/
│ │ └── CoordinateValidator.php # Валидация координат
│ └── Token/
│ └── TokenValidator.php # Проверка токенов
├── Entity/
│ ├── Country.php # Сущность страны
│ ├── CountryData.php # Расширенные данные
│ └── ApiToken.php
├── Repository/
│ ├── CountryRepository.php
│ └── ApiTokenRepository.php
└── DataFixtures/
└── CountryFixtures.php

Результат

Технические результаты
✅ API определяет страну по координатам с высокой точностью (через полигоны)
✅ Возвращает более 30 полей информации о стране
✅ Поддержка многоязычных названий
✅ Детальная информация о часовых поясах (с учетом регионов)
✅ Данные о граничащих странах в удобном формате
✅ Валидация координат и обработка ошибок
✅ Система токенов (демо + персональные)
✅ Интеграция с PostGIS для быстрого поиска

Для пользователей
✅ Простой API с понятными эндпоинтами
✅ Демо-доступ для тестирования
✅ Подробная документация всех полей
✅ Примеры на PHP в документации
✅ Регистрация для получения постоянного токена

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

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

Все проекты →
Веб-разработка и IT Миграция базы данных более 100 ГБ из MySQL в PostgreSQL с настройкой пространственных индексов для геоданных
Миграция базы данных более 100 ГБ из MySQL в PostgreSQL с настройкой пространственных индексов для геоданных
83
Веб-разработка и IT Система автоматической оптимизации изображений с конвертацией в WebP для 1С-Битрикс
Система автоматической оптимизации изображений с конвертацией в WebP для 1С-Битрикс
74
Дизайн и Брендинг Разработка системы автоматического обновления и синхронизации пунктов выдачи заказов (ПВЗ) СДЭК с местоположениями в 1С-Битрикс
Разработка системы автоматического обновления и синхронизации пунктов выдачи заказов (ПВЗ) СДЭК с местоположениями в 1С-Битрикс
86
Веб-разработка и IT Разработка и поддержка портала Svyato.info — каталога святых источников, родников и купелей России
Разработка и поддержка портала Svyato.info — каталога святых источников, родников и купелей России
70