Live Location¶
Bot API allows you to send live locations and update them during their lifetime. In this library there are several ways to use this API:
- Directly via API calls (sendLiveLocation and editLiveLocation)
- startLiveLocation
- handleLiveLocation
sendLiveLocation¶
In the Bot API there is no independent sendLiveLocation
method, instead it is suggested to use sendLocation with setting up live_period
. In this library in difference with original Bot API live location is special request. It was required because of in fact live locations and static locations are different types of location info and you as bot developer may interact with them differently.
Anyway, in common case the logic looks like:
- Send sendLiveLocation
- Use editLiveLocation to change it during its lifetime
- Use stopLiveLocation to abort it before lifetime end
startLiveLocation¶
In difference with sendLiveLocation, startLiveLocation using LiveLocationProvider. With this provider you need not to handle chat and message ids and keep some other data for location changes. Instead, you workflow with provider will be next:
- startLiveLocation
- Use LiveLocationProvider#updateLocation to update location and optionally add inline keyboard
- Use LiveLocationProvider#close to abort live location before its end
Besides, LiveLocationProvider
contains different useful parameters about live location
handleLiveLocation¶
This way of live locations handling is based on coroutines Flow and allow you to pass some external Flow
with EditLiveLocationInfo. So, workflow:
- Create your own flow of locations. For example:
- In case you needed, create your collector to store the message with live location:
- Start handle live location. handleLiveLocation works synchronosly (in current coroutine) and will ends only when your flow will ends. Thats why there are two ways to call it: OR
See our example to get more detailed sample