geocoder / app.py
mattritchey's picture
Update app.py
735fd27
Raw
History Blame Contribute Delete
1.77 kB
# -*- coding: utf-8 -*-
"""
Created on Mon Feb 6 09:13:25 2023
@author: mritchey
"""
# streamlit run "C:\Users\mritchey\.spyder-py3\Python Scripts\streamlit projects\geocoder\geocoder.py"
import streamlit as st
import pandas as pd
from geopy.extra.rate_limiter import RateLimiter
from geopy.geocoders import Nominatim
@st.cache
def geocode(address):
try:
address2 = address.replace(' ', '+').replace(',', '%2C')
df = pd.read_json(
f'https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address={address2}&benchmark=2020&format=json')
results = df.iloc[:1, 0][0][0]['coordinates']
lat, lon = results['y'], results['x']
except:
geolocator = Nominatim(user_agent="GTA Lookup")
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
location = geolocator.geocode(address)
lat, lon = location.latitude, location.longitude
return f'{round(lat,7)}, {round(lon,7)}'
st.set_page_config(layout="wide")
address = st.text_input("", "123 Main Street, Dallas, TX 75208")
lat_lon = geocode(address)
# st.write(f'Lat, Lon : {lat_lon}')
st.markdown("""
<style>
MainMenu {visibility: hidden;}
footer {visibility: hidden;}
.block-container {
padding-top: 0.5rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
input {
font-size: .75rem !important;
}
.big-font {
font-size:12px !important;
padding-top: 0rem;
}
</style>
""", unsafe_allow_html=True)
st.markdown(f"""
<p class="big-font">Lat, Lon : {lat_lon}</p>
""", unsafe_allow_html=True)