Linh Vuu
added files
c44d66d
raw history blame
No virus
1.25 kB
import streamlit as st
from bokeh.models.widgets import Button
from bokeh.models import CustomJS
from streamlit_bokeh_events import streamlit_bokeh_events
from geopy.geocoders import Nominatim
loc_button = Button(label="Get Location")
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:
st.write(result.get("GET_LOCATION"))
# print(result.get("GET_LOCATION")["lat"])
lat = str(result.get("GET_LOCATION")["lat"])
lon = str(result.get("GET_LOCATION")["lon"])
# Get address from given coordinate
geolocator = Nominatim(user_agent="BAAM")
location = geolocator.reverse(lat + "," + lon)
address = location.raw['address']
st.write(str(location))
st.write(address)
print(address)
print(type(str(location)))