1 votos

Cómo conseguir que una capa de Folium se muestre en la parte superior sin impedir la funcionalidad de resaltado de las capas inferiores

Estoy tratando de crear un mapa Folium donde la capa superior es un gráfico de límite (fill_opacity: 0) de estructura más gruesa al Choropleth en el nivel inferior. Me gustaría que el nivel más grueso, que no tiene la función de resaltar, se mostrara en la parte superior, mientras que el nivel inferior, más fino, se mostrara en la parte inferior, pero que su función de resaltar siguiera siendo válida y que la capa superior no se desactivara con el control de capas. ¿Es esto posible?

Mi mapa:

m1 = folium.Map([54.5,-3],zoom_start=6.8,min_zoom=6,tiles='cartodbpositron',control_scale=True)

Mi capa superior:

#makes boundaries plot
Boundaries = folium.GeoJson(
    cluster_stab_df,
    style_function = lambda x: {
        'color': 'black',
        'weight': 4,
        "opacity":1,
        'fillOpacity': 0,
    }).add_to(m1)

Mi capa inferior:

#sets style of Choropleth
style_function = lambda x: {"weight":0.4,
                            "color":'black',
                            "opacity":1,
                            "fillColor":colormap(x['properties']['gi']), 
                            'fillOpacity':0.65}

#sets style of highlight                            
highlight_function = lambda x: {'fillColor': '#000000', 
                                'color':'#000000', 
                                'fillOpacity': 0.50}

#makes Choropleth map
Choropleth = folium.features.GeoJson(
    MSOA_stab_df,
    style_function=style_function,
    highlight_function=highlight_function, 
    tooltip=folium.features.GeoJsonTooltip(
        fields=['msoa11nm','label','numneigh','gi'],
        aliases=['MSOA Name','Cluster Label','Number of Neighbors','Common Neighbors Proportion'],
        localize = True,
        style=("background-color: white; color: #333333; font-family: arial; font-size: 12px; padding: 10px;") 
    )).add_to(m1)

1voto

Ahmer Puntos 9

Para ello, hay que hacer que la capa superior no sea interactiva de la siguiente manera:

#makes boundaries plot
Boundaries = folium.GeoJson(
    cluster_stab_df,
    style_function = lambda x: {
        'color': 'black',
        'weight': 4,
        "opacity":1,
        'fillOpacity': 0,
        'interactive':False
    }).add_to(m1)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X