Spaces:
Runtime error
Runtime error
import streamlit as st | |
from bokeh.models.widgets import Button | |
from bokeh.models import CustomJS | |
from streamlit_bokeh_events import streamlit_bokeh_events | |
import leafmap.foliumap as leafmap | |
def app(): | |
loc_button = Button(label="Get Device Location", max_width=150) | |
loc_button.js_on_event( | |
"button_click", | |
CustomJS( | |
code=""" | |
navigator.geolocation.getCurrentPosition( | |
(loc) => { | |
document.dispatchEvent(new CustomEvent("GET_LOCATION", {detail: {lat: loc.coords.latitude, lon: loc.coords.longitude}})) | |
} | |
) | |
""" | |
), | |
) | |
result = streamlit_bokeh_events( | |
loc_button, | |
events="GET_LOCATION", | |
key="get_location", | |
refresh_on_update=False, | |
override_height=75, | |
debounce_time=0, | |
) | |
if result: | |
if "GET_LOCATION" in result: | |
loc = result.get("GET_LOCATION") | |
lat = loc.get("lat") | |
lon = loc.get("lon") | |
st.write(f"Lat, Lon: {lat}, {lon}") | |
m = leafmap.Map(center=(lat, lon), zoom=16) | |
m.add_basemap("ROADMAP") | |
popup = f"lat, lon: {lat}, {lon}" | |
m.add_marker(location=(lat, lon), popup=popup) | |
m.to_streamlit() | |