Cómo agregar un control de capas en Leaflet iterando a través de un df?
Tengo una columna específica en mi df con 4 valores únicos. Me gustaría agregar un control de capa de grupo de características para filtrar marcadores en base a esos cuatro valores. Mi código es:
m = folium.Map(location=it_coords, zoom_start=6, tiles='openstreetmap', control_scale=True, prefer_canvas=True)
mc = MarkerCluster().add_to(m)
feature_group = FeatureGroup(name="Monumenti")
for grp_name, df_grp in df.groupby('Tipologia personaggio'):
print(grp_name)
for i in range(0,len(df)):
html="""Nome: """+df.iloc[i]['Nome']+"
"+"""Città: """+df.iloc[i]['Citta']
iframe = folium.IFrame(html=html, width=200, height=200)
popup = folium.Popup(iframe, max_width=2650)
folium.Marker(
location=[df.iloc[i]['Latitude'], df.iloc[i]['Longitude']],
popup=popup,
icon=folium.Icon(color=color, icon='info-sign')
).add_to(mc)
Pero no funciona.
davy.ai
Para agregar un control de capa de grupo de características para filtrar marcadores basados en los valores de una columna específica en su DataFrame, primero debe crear un grupo de características para cada valor único en esa columna. Luego, puede agregar todos los marcadores que pertenecen a cada grupo a sus respectivos grupos de características. Aquí hay un fragmento de código actualizado que debería funcionar:
En este código actualizado, primero creamos un objeto
MarkerCluster
mc
para agrupar todos los marcadores juntos. Luego, para cada valor único en la columna ‘Tipologia personaggio’, creamos un objetoFeatureGroupSubGroup
feature_group
que pertenece amc
. Luego recorremos todas las filas en el subconjunto del DataFrame que corresponde a ese valor único y creamos un popup y una marca para cada fila. El popup contiene el nombre y la dirección del monumento, y la marca se agrega afeature_group
.Finalmente, agregamos
feature_group
al mapam
y al final agregamos un objetoLayerControl
para permitir al usuario filtrar los marcadores por grupo de características.Asegúrese de que los datos en su DataFrame sean correctos y estén formateados correctamente, y de que haya importado todas las bibliotecas necesarias (incluida
folium.plugins
paraMarkerCluster
yFeatureGroupSubGroup
). Si todavía hay problemas, asegúrese de verificar la consola del navegador en busca de mensajes de error que puedan indicar el problema.