From f77c9bee34076375ebf0ffe7db9ef9f63cc9fa6e Mon Sep 17 00:00:00 2001 From: tebarius Date: Tue, 22 Jul 2025 09:37:03 +0200 Subject: [PATCH] with example for map --- app/app.py | 35 ++++++++++++++++++++++++++++++----- app/tools.py | 10 +++++++--- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/app.py b/app/app.py index 8b8b9a8..07c0b56 100644 --- a/app/app.py +++ b/app/app.py @@ -15,6 +15,10 @@ if 'letzte_aktion' not in st.session_state: if 'output_text' not in st.session_state: st.session_state['output_text'] = ('Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion' ' mit leerem Eingabefeld aufrufen.') +if 'show_map' not in st.session_state: + st.session_state['show_map'] = False +if 'map_data' not in st.session_state: + st.session_state['map_data'] = None st.image('./logo-mit-tb.png', width=200) @@ -25,19 +29,40 @@ input_text = st.text_area('Gib deinen Text hier ein und wähle eine Funktion im st.sidebar.header("Funktionen") if st.sidebar.button(label='Ceasarchiffre (all)', use_container_width=True): st.session_state['output_text'] = cesar_all(input_text) - st.session_state['letzte_aktion'] = 'funktion1' + st.session_state['letzte_aktion'] = 'cesar_all' + st.session_state['show_map'] = False + if st.sidebar.button('BW,BWW,... ermitteln', use_container_width=True): st.session_state['output_text'] = buchstabenwortwert(input_text) - st.session_state['letzte_aktion'] = 'funktion2' + st.session_state['letzte_aktion'] = 'bbw' + st.session_state['show_map'] = False + +# Funktion, die eine Karte erzeugt +if st.sidebar.button('Mit Karte anzeigen'): + output_text, map_data = funktion_mit_karte(input_text) + st.session_state['output_text'] = output_text + st.session_state['letzte_aktion'] = 'funktion_mit_karte' + st.session_state['show_map'] = True + st.session_state['map_data'] = map_data # --- Hauptbereich: Button für Wiederholung der letzten Aktion --- if st.button("Letzte Aktion wiederholen"): - if st.session_state['letzte_aktion'] == 'funktion1': + if st.session_state['letzte_aktion'] == 'cesar_all': st.session_state['output_text'] = cesar_all(input_text) - elif st.session_state['letzte_aktion'] == 'funktion2': + st.session_state['show_map'] = False + elif st.session_state['letzte_aktion'] == 'bbw': st.session_state['output_text'] = buchstabenwortwert(input_text) + st.session_state['show_map'] = False + elif st.session_state['letzte_aktion'] == 'funktion_mit_karte': + output_text, map_data = funktion_mit_karte(input_text) + st.session_state['output_text'] = output_text + st.session_state['show_map'] = True + st.session_state['map_data'] = map_data # Ausgabefeld st.text_area('Ausgabe:', value=st.session_state['output_text'], height=300) - +# Karte anzeigen, falls aktiviert +if st.session_state.get('show_map') and st.session_state.get('map_data') is not None: + st.subheader("Kartenansicht") + st.map(st.session_state['map_data']) diff --git a/app/tools.py b/app/tools.py index 793d827..12dc60e 100644 --- a/app/tools.py +++ b/app/tools.py @@ -1,8 +1,12 @@ from helper import * +import pandas as pd -def funktion2(text): - """Wandelt den Text in Kleinbuchstaben um.""" - return text.lower() +def funktion_mit_karte(text): + """Verarbeitet Text und liefert Daten für eine Karte (z.B. Potsdam Zentrum).""" + # Beispiel: Fester Punkt (Potsdam) + daten = pd.DataFrame({'lat': [52.4006], 'lon': [13.0590]}) + ausgabe_text = f"Folgende Koordinate wurde gefunden: {daten.iloc[0].lat}, {daten.iloc[0].lon}" + return ausgabe_text, daten def cesar_all(eingabetext): eingabetext = eingabetext.rstrip()