File size: 2,130 Bytes
4fbc672
f266ac0
dbd3890
74004b8
3c1cd3f
a72f593
c689569
78631e3
c689569
4fbc672
3c906cd
 
 
78631e3
 
 
 
 
 
70b5611
 
09e0db5
c689569
 
 
 
f266ac0
c689569
f266ac0
 
4fbc672
f266ac0
fa38834
 
 
f266ac0
 
70b5611
f266ac0
c689569
 
70b5611
c689569
46f8b87
 
4fbc672
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

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 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()