File size: 1,955 Bytes
b807d87
bdbfec0
c6aa119
 
fadc8f0
 
1883e68
fadc8f0
 
c6aa119
 
 
 
881a55d
c6aa119
881a55d
4b29661
c6aa119
fadc8f0
 
881a55d
fadc8f0
c6aa119
 
895d632
 
 
 
 
 
 
 
 
4b29661
6983fe3
 
 
20a1f15
 
6983fe3
20a1f15
 
6983fe3
 
 
 
fadc8f0
b807d87
6983fe3
 
 
bcc1e2c
6983fe3
 
 
fadc8f0
 
895d632
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

import streamlit as st
import pandas as pd
import requests
import folium
from streamlit_folium import folium_static

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

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)

def display_map(data):
    m = folium.Map(location=[44.837789, -0.57918], zoom_start=12)
    for item in data:
        lat_lon = item.get('point_geo', None)
        if lat_lon:
            folium.Marker(
                [lat_lon['lat'], lat_lon['lon']],
                icon=folium.Icon(color="green", icon="leaf"),
                popup=item.get('Nom', 'Sans nom'),
            ).add_to(m)
    folium_static(m)

def main():
    st.sidebar.title("Navigation")
    app_mode = st.sidebar.radio("Choisissez l'onglet", ["Organisations engagées", "Localisation des Entreprises"])

    if app_mode == "Organisations engagées":
        display_organisations_engagees()
    elif app_mode == "Localisation des Entreprises":
        data, _ = get_data()
        display_map(data)

if __name__ == "__main__":
    main()