Этот код позволяет найти самый большой, самый маленький и ближайший бар из списка(который должен быть представлен в виде JSON-структуры передаваемой как аргумент)
Для работы с программой понадобится Python3.5 (который скорее всего у вас уже установлен, если Вы используете Linux)
Также может понадобиться установить модуль geopy
, сделать это можно выполнив pip3.5 install -r requirements.txt
# pip3.5 install -r requirements.txt
Можно форкнуть здесь - ближайшие бары
и затем скачать
git clone https://github.com/<юзернейм-аккаунта-на-гите>/3_bars
Для работы программы нужны входные данные в формате JSON. Их можно скачать.
Для этого нужно:
- зарегистрироваться на сайте и получить ключ API;
- скачать файл по ссылке вида
https://apidata.mos.ru/v1/features/1796?api_key={place_your_API_key_here}.
Полученный файл можно будет исопльзовать для работы в п.5
a. Данный код может быть исползован как самостоятельная программа,
при этом программа попросит Вас сначала указать файл с JSON, а затем координаты GPS, относительно которых будет найден ближайший бар
$ python3.5 bars.py <path to file>
Самый большой бар в округе: Спорт бар «Красная машина»
Который расположен по адресу: Автозаводская улица, дом 23, строение 1
Самый маленький бар в округе: БАР. СОКИ
Который расположен по адресу: Дубравная улица, дом 34/29
Введите GPS координаты, подыщем ближайший бар: 70.70 70.70
Ближайший бар : Таверна
Который расположен по адресу: проспект Защитников Москвы, дом 8
Находится на расстоянии 3669 километров
b. Функции могут быть импортированы в Ваш код (пример в разделе 6)
Функция load_data
читает структуру raw-JSON из файла, преобразует её в python-обект и возвращает список баров.
Функция get_biggest_bar
находит самый большой бар, упоминающийся в списке,
возвращает dict в котором содержится информация об этом баре
Функция get_smallest_bar
находит самый маленький бар, упоминающийся в списке,
возвращает dict в котором содержится информация об этом баре
Функция get_сloset_bar
находит ближайший бар, упоминающийся в списке, отностительно координат, подаваемых как аргументы функции,
возвращает dict в котором содержится информация об этом баре, а также float, которая отражает расстояние в метрах от заданных GPS координат до этого бара
Функция request_user_defined_coordinates
запрашивает GPS координаты через поток ввода/вывода
Функция print_pretty_output
выводит информацию о барах на поток ввода/вывода
Импортировать и использовать функцию коди можно следующим образом:
from bars import load_data
from bars import get_closest_bar
from bars import get_biggest_bar
from bars import get_smallest_bar
object_representing_json = load_data(filepath)
closest_bar = get_closet_bar(иbars_list, user_defined_longitude, user_defined_latitude)
biggest_bar = get_biggest_bar(иbars_list, user_defined_longitude, user_defined_latitude)
Код создан в учебных целях. В рамках учебного курса по веб-разработке ― DEVMAN.org