Скрипт bars.py используя слепок данных data.mos.ru расчитывает
- Самый большой бар
- Самый маленький бар
- Самый близкий бар (текущие gps-координаты пользователь введет с клавиатуры).
Например, если ввести коодинаты 55.740575, 37.616892 найдет заведение "red code bar"
При запуске скрипта
- В слепке данных ищутся бары с минимальным/максимальным количеством мест, и названия соответсвующих баров и количество мест в них, выводятся в консоль.
- У пользователя запрашивается долгота/широта, и по этим данным в слепке ищется бар, ближайший к этим координатам, пользователю возвращается название бара и координаты
Для работы программы JSON файл необходим, требуется скачать его здесь.
Если вы хотите загрузить последнюю версию данных, воспользуйтесь инструкцией:
- Зарегистрироваться на сайте data.mos.ru
- Получить ключ api в личном кабинете
- Скачать файл через rest api, по ссылке https://apidata.mos.ru/v1/features/1796?api_key={api_key}.
- Назвать его bars.json и положить его в директорию с скриптом bars.py
По умолчанию скрипт ищет в директории файл bars.json, однако можно указать файл в ручную с помощью параметра --file или -f
$ python3 ./bars.py --f custom.json
using bars file: custom.json
Скрипт требует для своей работы установленного Python 3.5
Запуск на Linux:
$ python3 bars.py -f ./data.json
To get nearest bar name please input your coordinates -
longitude and latitude in format {longitude},{latitude}.
(values must be separated by comma)
55.84,47.35
smallest bar: - bar name: БАР. СОКИ, seats count: 0, coordinates: (55.84614475898795, 37.35805920566864)
biggest bar: - bar name: Спорт бар «Красная машина», seats count: 450, coordinates: (55.70111462948684, 37.638228501070095)
closest bar: - bar name: Таверна, seats count: 16, coordinates: (55.69988800002597, 37.92096900029184)
Запуск на Windows происходит аналогично.
Код создан в учебных целях. В рамках учебного курса по веб-разработке - DEVMAN.org