File size: 2,416 Bytes
d0661bd d2c8f3c 0527fa6 d0661bd 10118ca 0527fa6 d2c8f3c bda553e d2c8f3c bda553e 9ee810a 0527fa6 d2c8f3c 0527fa6 bda553e 0527fa6 d2c8f3c 10118ca 9ee810a 10118ca 0527fa6 10118ca 0527fa6 10118ca 0527fa6 10118ca 0527fa6 d2c8f3c 0527fa6 9bfd637 d2c8f3c 0527fa6 10118ca |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import streamlit as st
import pandas as pd
import requests
import folium
from streamlit_folium import folium_static
# Fonction pour récupérer les données de l'API
def get_data():
url = "https://opendata.bordeaux-metropole.fr/api/records/1.0/search/?dataset=met_etablissement_rse&q=&rows=100"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
records = data.get("records", [])
return [record["fields"] for record in records], data.get("nhits", 0)
else:
return [], 0
# Fonction pour l'onglet "Organisations engagées"
def display_organisations_engagees():
st.markdown("## OPEN DATA RSE")
st.markdown("### Découvrez les organisations engagées RSE de la métropole de Bordeaux")
data, _ = get_data()
if data:
df = pd.DataFrame(data)
df = df.rename(columns={
"nom_courant_denomination": "Nom",
"commune": "Commune",
"libelle_section_naf": "Section NAF",
"tranche_effectif_entreprise": "Effectif",
"action_rse": "Action RSE"
})
df = df[["Nom", "Commune", "Section NAF", "Effectif", "Action RSE"]]
st.dataframe(df, width=None, height=None)
# Fonction pour afficher la carte
def display_map():
data, _ = get_data()
if data:
m = folium.Map(location=[44.837789, -0.57918], zoom_start=12)
for item in data:
if 'point_geo' in item and item['point_geo'] is not None:
lat = item['point_geo']['lat']
lon = item['point_geo']['lon']
folium.Marker(
[lat, lon],
popup=item.get("Nom", "Sans nom")
).add_to(m)
folium_static(m)
# Fonction pour l'onglet "Dialoguer avec l'assistant IA RSE bziiit"
def display_dialogue():
st.markdown("# Patientez quelques heures encore... :)")
# Main function to orchestrate the app UI
def main():
st.sidebar.title("Navigation")
app_mode = st.sidebar.radio("Choisissez l'onglet", ["Organisations engagées", "Carte", "Dialoguer avec l'assistant IA RSE bziiit"])
if app_mode == "Organisations engagées":
display_organisations_engagees()
elif app_mode == "Carte":
display_map()
elif app_mode == "Dialoguer avec l'assistant IA RSE bziiit":
display_dialogue()
if __name__ == "__main__":
main()
|