flet: Geolocator Control must be added to the page first
Делаю определение геолокации с картой во flet. Когда хочу получить текущие координаты выходит ошибка:
AssertionError: Geolocator Control must be added to the page first
Хотя в коде есть page.overlay.append(gl)
. Если я делаю page.add(gl)
, то выходит просто пустой экран, и карта не показывается. Если убрать определение геолокации то на экране появляется карта и все работает (кроме геолокации)
Код:
import random
import flet as ft
import flet.map as map
def main(page: ft.Page):
gl = ft.Geolocator(
location_settings=ft.GeolocatorSettings(
accuracy=ft.GeolocatorPositionAccuracy.LOW
),
)
page.overlay.append(gl)
pos = gl.get_current_position()
page.add(
map.Map(
expand=True,
configuration=map.MapConfiguration(
initial_center=map.MapLatitudeLongitude(pos.latitude, pos.longitude),
initial_zoom=40,
interaction_configuration=map.MapInteractionConfiguration(
flags=map.MapInteractiveFlag.ALL
),
),
layers=[
map.TileLayer(
url_template="https://tile.openstreetmap.org/{z}/{x}/{y}.png",
on_image_error=lambda e: print("TileLayer Error"),
)
],
),
)
ft.app(target=main)