我正在尝试使用 Python Dash 框架构建仪表板,我需要嵌入 html 对象,该对象是由 keplergl 库生成的地图。 基本上我可以通过将 keplergl 保存为 html 对象并从 iframe 中读取它来完成它,它工作正常,但我需要这个地图是交互式的,所以用户可以从破折号下拉列表中选择值来更改配置中的一些数据,以便更改地图数据
实际上可以按如下方式动态生成地图:
map2 = KeplerGl(height=400, data={'geodt_if': df}, config = config)
from flask import Flask
app= Flask(__name__)
@app.route('/')
def index():
return map2._repr_html_()
if __name__ == '__main__':
app.run()
这就是读取保存的 HTML 的工作原理
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.layout = dbc.Container([
dbc.Row([
dbc.Col([
html.H2("Dashboard")
])
]),
dbc.Row(
[
dbc.Col(dcc.Dropdown(id='dropdown',
options=[{'label': 'A', 'value': 'A'},
{'label': 'B', 'value': 'B'}
])
)
]
),
html.Iframe(id='map1',srcDoc=open('geoIF.html','r').read(),width = '100%', height = '600')
], fluid=True)
app.run_server()
所以有没有办法在 html.Iframe() 和 Dash 应用程序中渲染 map2.repr_html() 而不是仅仅将 html 读取为 srcDoc=open('geoIF.html','r ').read()
非常感谢!