Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

106
Visualizações
¿Cómo invalido el tamaño de mi mapa de folleto contenido en un elemento de colapso de arranque en mi aplicación Dash?

Estoy trabajando para agregar un elemento de colapso de arranque con un mapa de folleto contenido dentro de él para poder alternar abrir/cerrar la vista del mapa. Sin embargo, el tamaño del mapa del folleto se modifica al inicializar la aplicación y no cambia de tamaño cuando se abre el elemento colapsado. Por lo tanto, el mapa resultante que se muestra cuando se activa es en su mayoría solo un cuadro gris. Después de investigar un poco, parece que tengo que llamar a la función invalidateSize en mi mapa después de abrir el elemento de colapso. Sin embargo, no estoy seguro de cómo ejecutar este comando javascript en mi aplicación Plotly-Dash. Esto es lo que tengo actualmente.

 import dash import dash_bootstrap_components as dbc import dash_core_components as dcc import dash_html_components as html import dash_leaflet as dl from dash.dependencies import Input, Output, State map_collapse = dbc.Collapse( html.Div( [ dl.Map( [ dl.TileLayer(), dl.LocateControl(options={'locateOptions': {'enableHighAccuracy': True}}) ], id="map", style={'width': '100%', 'height': '50vh', 'margin': "auto", "display": "block"} ) ] ), id="map-collapse", is_open=False, style={ 'width': '800px', 'height': '400px' } ) collapse_button = dbc.Button( "Open collapse", id="collapse-button", className="mb-3", color="primary", n_clicks=0, ) app.layout = html.Div( [ collapse_button , map_collapse ] ) @app.callback( Output("map-collapse", 'is_open'), [Input("collapse-button", "n_clicks")], [State("map-collapse", "is_open")] ) def toggle_collapse(n, is_open): if n: return not is_open return True if __name__ == '__main__': app.title = 'Dash App' app.run_server(debug=True)

¡Cualquier ayuda será apreciada!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Una forma posible de evitar este problema es retrasar el renderizador de mapas (inicial) hasta que el contenedor principal se vuelva visible. Aquí hay una ilustración de cómo ese enfoque podría implementarse para su ejemplo,

 import dash import dash_bootstrap_components as dbc import dash_html_components as html import dash_leaflet as dl from dash.dependencies import Input, Output, State def render_map(): return dl.Map([ dl.TileLayer(), dl.LocateControl(options={'locateOptions': {'enableHighAccuracy': True}}) ], id="map", style={'width': '100%', 'height': '50vh', 'margin': "auto", "display": "block"}) app = dash.Dash(external_stylesheets=[dbc.themes.BOOTSTRAP], prevent_initial_callbacks=True) map_collapse = dbc.Collapse(id="map-collapse", is_open=False, style={'width': '800px', 'height': '400px'}) collapse_button = dbc.Button( "Open collapse", id="collapse-button", className="mb-3", color="primary", n_clicks=0, ) app.layout = html.Div( [ collapse_button, map_collapse ] ) @app.callback( Output("map-collapse", 'is_open'), [Input("collapse-button", "n_clicks")], [State("map-collapse", "is_open")] ) def toggle_collapse(_, is_open): return not is_open @app.callback( Output("map-collapse", 'children'), [Input("map-collapse", "is_open")], [State("map-collapse", "children")] ) def render_map_on_show(_, children): if children is not None: return dash.no_update return render_map() if __name__ == '__main__': app.title = 'Dash App' app.run_server()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda