File size: 2,148 Bytes
51b3a1a
bb25a4c
3512bf5
20f7127
c4b812c
fc09623
53c3785
fc09623
f849426
98691d1
a5ed737
 
53c3785
 
 
 
 
 
f290851
 
5e4ebda
fc09623
 
 
 
51b3a1a
fc09623
51b3a1a
 
f849426
51b3a1a
2d9bcb1
 
 
51b3a1a
 
f290851
51b3a1a
fc09623
 
f290851
fc09623
ee8844a
 
fab5009
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
from folium import Map, Marker, Icon, Popup
from streamlit_folium import folium_static
import streamlit as st
from data_manager import get_data

def display_map():
    data, total_hits = get_data()
    if data:
        # Ajout des titres en haut de l'écran
        st.markdown("## OPEN DATA Bordeaux Métropole RSE")
        st.markdown("### Localiser les organisations engagées RSE de Bordeaux Métropole")
        
        secteurs = sorted({record.get("libelle_section_naf") for record in data if record.get("libelle_section_naf")})
        secteur_selectionne = st.selectbox("Filtre par secteur d'activité :", ["Tous"] + secteurs)
        
        if secteur_selectionne != "Tous":
            data = [record for record in data if record.get("libelle_section_naf") == secteur_selectionne]
        
        st.markdown("Cliquer sur l'icône pour découvrir l'entreprise et une de ses actions RSE remarquable")
        
        m = Map(location=[44.84474, -0.60711], zoom_start=12)
        for item in data:
            try:
                point_geo = item.get('point_geo', [])
                if point_geo:
                    lat, lon = float(point_geo[0]), float(point_geo[1])
                    if lat and lon:
                        popup_html = f"""
                        <div style="width:300px;">
                            <b>{item.get('nom_courant_denomination', 'Sans nom')}</b><br><br>
                            <b>Action RSE:</b><br>
                            {item.get('action_rse', 'Non spécifiée')}<br><br>
                            <hr style="margin: 1px 0; border: none; border-top: 1px solid #ccc;">
                            <b>Secteur d'activité:</b> {item.get('libelle_section_naf', 'Non spécifié')}
                        </div>
                        """
                        popup = Popup(popup_html, max_width=500)
                        Marker([lat, lon], popup=popup, icon=Icon(color='green', icon='leaf', prefix='fa')).add_to(m)
            except (ValueError, TypeError, IndexError):
                continue
        
        folium_static(m)

if __name__ == "__main__":
    display_map()