Этот проект представляет собой API на основе Flask, который помогает найти пять ближайших аптек с уникальными названиями к указанным координатам.
- Вычисление расстояний с использованием формулы Хаверсина.
- Чтение данных аптек из CSV-файла.
- Возврат до пяти ближайших уникальных аптек, отсортированных по расстоянию.
- Python 3.8+
- Flask
- overpy
- Клонируйте этот репозиторий:
git clone <repository_url>
cd <repository_name>
- Создайте и активируйте виртуальную среду:
python -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
- Установите зависимости:
pip install -r requirements.txt
- С помощью
savePharmacyGeo
выгрузите аптеки вашего города (или сразу всегом мира). CSV-файл использует следующую структуру:
Name,Latitude,Longitude
Pharmacy 1,58.5902,49.6723
Pharmacy 2,58.5910,49.6700
- Запустите сервер Flask:
python nearest_pharmacy_api.py
- Доступ к API-конечной точке:
- Конечная точка:
/nearest_pharmacies
- Метод:
GET
- Параметры запроса:
lat
: Широта местоположения.lon
: Долгота местоположения.
- Пример запроса:
curl "http://127.0.0.1:5000/nearest_pharmacies?lat=58.5902&lon=49.6723"
- Пример ответа:
[
{
"name": "Pharmacy 1",
"latitude": 58.5901,
"longitude": 49.6720,
"distance_km": 0.25
},
{
"name": "Pharmacy 2",
"latitude": 58.5910,
"longitude": 49.6700,
"distance_km": 0.50
}
]
.
├── nearest_pharmacy_api.py # Основной скрипт API
├── data
│ └── pharmacyGEO.csv # CSV-файл с данными аптек
└── README.md # Документация проекта
Этот проект лицензирован под лицензией MIT. Подробности см. в файле LICENSE.