У меня словарь из трёх точек на карте:
STORES: Tuple[dict, ...] = (
{'title': 'Besh Yogʻoch Savdo',
'lons': '41.304679',
'lats': '69.247453',
'address': 'блабла'},
{'title': 'Бахт: колбасы и деликатесы',
'lons': '10.156853',
'lats': '61.520812',
'address': 'блабла'},
{'title': 'Eco - mini market',
'lons': '41.305242',
'lats': '69.235547',
'address': 'блабла'},
)
И обработчик принятого местоположения от пользователя:
def uz_shop_view(message: telebot.types.Message) -> None:
if message.location is not None:
lon: float = message.location.longitude
lat: float = message.location.latitude
distance: List[...] = []
for loc in STORES:
result: float = geodesic(
(loc['lons'], loc['lats']), (lon, lat)).meters
distance.append(result)
index = distance.index(min(distance))
bot.send_venue(message.chat.id,
STORES[index]['lons'],
STORES[index]['lats'],
STORES[index]['title'],
STORES[index]['address'])
elif message.location is None:
bot.reply_to(message, "Отправь местоположение!")
который отправляет пользователю геолокацией наиближайшее место для него.
И вот вопрос:
Как сделать так чтобы тг бот после получения геопозиции отправил в ответ все места списком из словаря отсортировав его в порядке возрастания смотря на расстояние от него?
библиотека: telebot, geopy