Для обработки геолокации в aiogram 3.x вам потребуется использовать ContentTypes.LOCATION
в обработчиках сообщений.
Прежде всего, определите обработчик callback query для запроса геолокации. Примерно так:
from aiogram import types @dp.message_handler(lambda message: message.text == 'Отправить геолокацию') async def request_location(message: types.Message): keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) button = types.KeyboardButton("Отправить местоположение", request_location=True) keyboard.add(button) await message.answer("Нажмите на кнопку, чтобы отправить ваше местоположение", reply_markup=keyboard)
Затем, обработайте приходящую геолокацию:
@dp.message_handler(content_types=types.ContentTypes.LOCATION) async def handle_location(message: types.Message): latitude = message.location.latitude longitude = message.location.longitude await message.answer(f"Ваше местоположение: latitude={latitude}, longitude={longitude}")
Обратите внимание, что вам также потребуется настроить Updater
с использованием соответствующего токена и запустить бота:
if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)
Надеюсь, это поможет вам обработать геолокацию в aiogram 3.x!