Spaces:
Running
Running
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() |