USStates / app.py
awacke1's picture
Update app.py
82efd8d
raw
history blame
7.12 kB
import streamlit as st
import streamlit.components.v1 as components
import geopandas as gpd
import matplotlib.pyplot as plt
import plotly.express as px
import json
# Function to generate HTML with textarea for speech synthesis
def generate_speech_textarea(text_to_speak):
documentHTML5 = '''
<!DOCTYPE html>
<html>
<head>
<title>Read It Aloud</title>
<script type="text/javascript">
function readAloud() {{
const text = document.getElementById("textArea").value;
const speech = new SpeechSynthesisUtterance(text);
window.speechSynthesis.speak(speech);
}}
</script>
</head>
<body>
<h1>πŸ”Š Read It Aloud</h1>
<textarea id="textArea" rows="10" cols="80" readonly>'''
documentHTML5 = documentHTML5 + text_to_speak
documentHTML5 = documentHTML5 + '''
</textarea>
<br>
<button onclick="readAloud()">πŸ”Š Read Aloud</button>
</body>
</html>
'''
components.html(documentHTML5, width=1280, height=500)
import geopandas as gpd
import matplotlib.pyplot as plt
import streamlit as st
import json
import plotly.express as px
def ListMaps():
MapInfo = """
Map Techniques to Understand Organizations, States, Locations, Driving Directions, Map Making
US States: https://huggingface.co/spaces/awacke1/USStates
State of MN: https://huggingface.co/spaces/awacke1/Streamlit-Google-Maps-Minnesota
State of MN Med Centers: https://huggingface.co/spaces/awacke1/Minnesota-Medical-Centers-Streamlit
State of MA Reliant: https://huggingface.co/spaces/awacke1/Streamlit-Google-Maps-Reliant
State of MA Medical Centers: https://huggingface.co/spaces/awacke1/Streamlit-Google-Maps-Massachusetts
State of MN: Hospital Details: https://huggingface.co/spaces/awacke1/MN.Map.Hospitals.Top.Five
State of CA Medical Centers: https://huggingface.co/spaces/awacke1/Streamlit-Google-Maps-California
State of CA Hospital Details: https://huggingface.co/spaces/awacke1/California-Medical-Centers-Streamlit
State of CA Attractions: https://huggingface.co/spaces/awacke1/Map-California-AI
State of TX Medical Centers: https://huggingface.co/spaces/awacke1/Streamlit-Google-Maps-Texas
State of NJ Hospitals: https://huggingface.co/spaces/awacke1/VizLib-TopLargeHospitalsNewJersey
Iceland Myth Places and Routes: https://huggingface.co/spaces/awacke1/Maps.Markers.Honor.Iceland
US Corporation Map and CSV Location Data Loader: https://huggingface.co/spaces/awacke1/UnitedStatesMapAIandNLP
US Taxonomy Datasets: https://huggingface.co/spaces/awacke1/NPI-Provider-Map-By-Taxonomy-Search
NPI Registry Mental Health Provider Search and Cluster Map: https://huggingface.co/spaces/awacke1/Gradio-Maps-Latitude-Longitude
US City FIPS code, Location, Population: https://huggingface.co/spaces/awacke1/CityFipsLocationandPopulation
World Area PyDeck: https://huggingface.co/spaces/awacke1/StreamlitPydeckMapVisualViewStateForLatitudeLongitude
City, State - Latitude and Longitude Search (try Mound, MN): https://huggingface.co/spaces/awacke1/Google-Maps-Web-Service-Py
"""
st.markdown(MapInfo)
return MapInfo
def plot_state_outline(state_code, us_states_geojson, state_names):
state_name = state_names.get(state_code, 'Unknown')
fig = px.choropleth(locations=[state_name], geojson=us_states_geojson,
featureidkey="properties.NAME",
projection="mercator")
fig.update_geos(fitbounds="locations", visible=False)
fig.update_layout(title=f"{state_name} State Outline")
st.plotly_chart(fig)
def PlotOutlines():
geojson_path = 'gz_2010_us_040_00_500k.json'
with open(geojson_path, 'r') as file:
us_states_geojson = json.load(file)
state_names = {
'MN': 'Minnesota', 'CA': 'California', 'WA': 'Washington',
'FL': 'Florida', 'TX': 'Texas', 'NY': 'New York', 'NV': 'Nevada'
}
states = ['MN', 'CA', 'WA', 'FL', 'TX', 'NY', 'NV']
icons = ['πŸ¦†', '🌴', '🍎', '🌞', '🀠', 'πŸ—½', '🎰']
for state, icon in zip(states, icons):
st.write(f"{icon} {state}")
plot_state_outline(state, us_states_geojson, state_names)
return us_states_geojson
# Display maps
MapInfo = ListMaps()
# Display maps for each state
for state, icon in zip(states, icons):
st.write(f"{icon} {state}")
plot_state_outline(state, us_states_geojson, state_names)
Geo = PlotOutlines()
# Main code
st.title('U.S. States Trivia πŸ—ΊοΈ')
for i, (state, icon) in enumerate(zip(states, icons)):
st.markdown(f"{i + 1}. {state} {icon}")
# Expanders for each state to outline fascinating facts
with st.expander(f"See Fascinating Facts about {state}"):
text_to_speak = ""
if state == 'MN':
text_to_speak = "πŸ¦† **Minnesota** \n🏞️ Known as the 'Land of 10,000 Lakes' \n🎣 Famous for its fishing \nπŸ›Ά Boundary Waters offers incredible canoeing \nπŸŽ“ Home to prestigious colleges \n❄️ Cold winters but lovely summers."
elif state == 'CA':
text_to_speak = "🌴 **California** \nπŸŒ‰ Home to the Golden Gate Bridge \n🎬 Center of the American entertainment industry \nπŸ‡ Famous for Napa Valley's wine \n🌲 Home to Redwood National Park \nπŸ„β€β™€οΈ Excellent beaches and surf spots."
elif state == 'WA':
text_to_speak = "🍎 **Washington** \nβ˜• Known for its coffee culture \nπŸ—» Home to Mount Rainier \n🍏 Leading apple-producing state \n🐟 Rich in seafood, especially salmon \n🌧️ Known for its rainy weather."
elif state == 'FL':
text_to_speak = "🌞 **Florida** \n🏝️ Famous for its beaches \n🎒 Home to various amusement parks like Disney World \nπŸš€ Space launches from Cape Canaveral \n🐊 Known for the Everglades and alligators \n🍊 Major orange producer."
elif state == 'TX':
text_to_speak = "🀠 **Texas** \nπŸ›’οΈ Known for its oil and gas industry \nπŸ– Famous for its barbecue \n🎸 Rich musical heritage \nπŸ„ Home to many cattle ranches \n🌡 Includes part of the Chihuahuan Desert."
elif state == 'NY':
text_to_speak = "πŸ—½ **New York** \nπŸ™οΈ Home to New York City, the largest city in the U.S. \n🍎 Known as the Big Apple \n🎭 Major hub for arts and culture \n🏞️ Adirondack Mountains offer outdoor adventures \nπŸ• Famous for its style of pizza."
elif state == 'NV':
text_to_speak = "🎰 **Nevada** \nπŸŒ† Known for Las Vegas and its casinos \n🏜️ Includes part of the Mojave Desert \nπŸŽͺ Entertainment is a major industry \nπŸ’Ž Known for the Hoover Dam \nπŸ‘½ Area 51 is located here."
st.markdown(text_to_speak)
plot_state_outline(state, us_states_geojson, state_names)
if st.button(f"πŸ”Š Read {state}'s Facts Aloud"):
generate_speech_textarea(text_to_speak)