Skip to content

Веб-приложение, предназначенное для получения координат из адресов с использованием Yandex Geocoder API

License

Notifications You must be signed in to change notification settings

castroy10/yangeomapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YanGeoMapper

Yangeomapper — это веб-приложение на базе Spring Boot, предназначенное для получения координат из адресов с использованием Yandex Geocoder API и сохранения результатов в формате Excel. Позволяет автоматизировать процесс геокодирования адресов из Excel файлов.

Возможности

  • Загрузка Excel файлов (.xlsx)
  • Извлечение адресов (наименования площадок) из Excel
  • Геокодирование адресов с использованием Yandex Geocoder API
  • Сохранение результатов в Excel файл

Использованные технологии

  • Spring Boot
  • Java 21
  • Apache POI
  • Lombok
  • Yandex Geocoder API

Быстрый старт

Сборка приложения

mvn clean package -DskipTests spring-boot:repackage

Запуск приложения

mvn spring-boot:run

Веб-интерфейс

Доступен по адресу http://localhost:8080

  • Загрузка Excel файла с адресами
  • Обработка и геокодирование адресов
  • Сохранение результата в Excel файл

Запуск в Docker

Для развертывания с помощью Docker:

docker-compose up -d

Формат Excel файлов

Входной файл

Входной файл Excel должен быть в формате .xlsx и содержать следующие столбцы. Только некоторые из них используются для обработки, но рекомендуется сохранять исходную структуру.
Исходный файл содержит скрытые столбы, поэтому индекс столбца важен.

Индекс столбца (начиная с 0) Заголовок (пример) Тип данных Описание
0 NN Целое число Порядковый номер
1 Балансовая зона Строка Зона баланса
5 ID УУГ в ИМУС Строка Идентификатор УУГ в системе ИМУС
6 Наименование УУГ Строка Наименование УУГ
8 ID Площадки в ИМУС Строка Идентификатор площадки в системе ИМУС
9 Наименование Площадки Строка Полный адрес или наименование площадки, используемое для геокодирования
16 СТМ Строка СТМ
17 Тип СТМ (для Автоучета) Строка Тип СТМ (для Автоучета)
18 ID во внешней системе (в СТМ) Строка Идентификатор во внешней системе (в СТМ)
22 Время последнего сеанса СТМ Дата и время Время последнего сеанса СТМ
23 Принадлежность СТМ Строка Принадлежность СТМ

Выходной файл

Выходной файл будет содержать все столбцы из входного файла плюс два дополнительных столбца с координатами.

Индекс столбца (начиная с 0) Заголовок Тип данных Описание
0 NN Целое число Порядковый номер
1 Балансовая зона Строка Зона баланса
2 ID УУГ в ИМУС Строка Идентификатор УУГ в системе ИМУС
3 Наименование УУГ Строка Наименование УУГ
4 ID Площадки в ИМУС Строка Идентификатор площадки в системе ИМУС
5 Наименование Площадки Строка Полный адрес или наименование площадки
6 СТМ Строка СТМ
7 Тип СТМ (для Автоучета) Строка Тип СТМ (для Автоучета)
8 ID во внешней системе (в СТМ) Строка Идентификатор во внешней системе (в СТМ)
9 Время последнего сеанса СТМ Строка Время последнего сеанса СТМ (отформатировано)
10 Принадлежность СТМ Строка Принадлежность СТМ
11 Широта Число с плавающей точкой Широта геокодированного адреса
12 Долгота Число с плавающей точкой Долгота геокодированного адреса

API

Базовый URL: http://localhost:8080

Эндпоинт: /uploadcsv

POST /uploadcsv

  • Загружает Excel файл и обрабатывает его содержимое для получения координат.
  • Тело запроса: multipart/form-data с ключом csvFile, содержащим Excel файл.
  • Пример:
curl -X POST "http://localhost:8080/uploadcsv" \
  -H "Content-Type: multipart/form-data" \
  -F "csvFile=@input.xlsx"
  • Ответ: "Addresses processed successfully"

Примечание: Файл должен быть в формате .xlsx и содержать данные (наименования площадок) в определенном формате.

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

Приложение использует Yandex Geocoder API. Ключ API можно задать через переменную окружения YANDEX_API_KEY или в application.yml.

Пример:

yandex:
  api:
    key: ${YANDEX_API_KEY:ваш_ключ_API}

Примечания:

  • Приложение использует Yandex Geocoder API, который имеет ограничения на бесплатное количество запросов 1000 адресов в день.
  • Количество одновременных запросов ограниченно 40, при ошибке от Яндекса 429 это число можно снизить.
  • Для обработки Excel файлов используется Apache POI.

About

Веб-приложение, предназначенное для получения координат из адресов с использованием Yandex Geocoder API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published