shiny-maplibre / app.py
giswqs's picture
Update app.py
c0f640e verified
raw
history blame
813 Bytes
from maplibre import Map, MapContext, output_maplibregl, render_maplibregl
from maplibre.controls import Marker
from shiny import App, reactive, ui
app_ui = ui.page_fluid(
output_maplibregl("maplibre", height=600),
ui.div("Click on map to set a marker"),
)
def server(input, output, session):
@render_maplibregl
def maplibre():
m = Map()
return m
@reactive.Effect
@reactive.event(input.maplibre)
async def coords():
async with MapContext("maplibre") as m:
print(input.maplibre())
lng_lat = tuple(input.maplibre()["coords"].values())
marker = Marker(lng_lat=lng_lat)
m.add_marker(marker)
m.add_call("flyTo", {"center": lng_lat})
app = App(app_ui, server)
if __name__ == "__main__":
app.run()