Для использования геолокации в aiogram 3.x вам понадобится использовать методы и объекты, предоставляемые этой библиотекой. Вот пример кода, который показывает, как обработать и хранить принятую геолокацию от пользователя:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.types import Message
from aiogram.dispatcher import FSMContext
# Создаем объект бота
bot = Bot(token="YOUR_BOT_TOKEN")
dp = Dispatcher(bot)
# Обработчик для принятия геолокации от пользователя
@dp.message_handler(content_types=types.ContentType.LOCATION)
async def handle_location(message: Message, state: FSMContext):
geolocation = message.location # Получаем объект с информацией о геолокации
coords = (geolocation.latitude, geolocation.longitude) # Получаем координаты
# Сохраняем координаты в состоянии FSM или в базе данных
# Запуск бота
if __name__ == '__main__':
import asyncio
loop = asyncio.get_event_loop()
loop.create_task(dp.start_polling())
loop.run_forever()
```
В данном примере при отправке пользователем геолокации бот сохраняет координаты в переменной `coords`. Для отправки этих координат работнику для навигации вам нужно добавить логику отправки сообщения с координатами.
Для отправки сообщения с координатами работнику, вы можете использовать метод `send_location` объекта `Bot`. Пример:
```python
# Отправка геолокации работнику
async def send_location_to_worker(coords):
chat_id = 123456789 # ID чата с работником
latitude, longitude = coords
await bot.send_location(chat_id=chat_id, latitude=latitude, longitude=longitude)
```
Таким образом, вы можете использовать aiogram для обработки и хранения принятой геолокации от пользователя, а затем отправить ее работнику для навигации.