【问题标题】:Insert folium map html code inside a bokeh app在散景应用程序中插入 folium map html 代码
【发布时间】:2020-10-21 13:28:37
【问题描述】:

我将此作为Include folium in bokeh tabs 上的后续问题发布,现在也作为新问题发布。

我正在尝试从我的 folium 地图中呈现原始 HTML 代码,但它不起作用。有什么想法吗? :)

div = Div(
    text=map.get_root().render(), 
    width=x, 
    height=y
)

我宁愿能够将我的 folium 贴图直接渲染到散景 Div 对象中,而不是在旁边运行 Flask 应用程序。我已经研究了使用 iframe 的可能性,但似乎有些问题我的代码也在这里:

div.text = """<iframe srcdoc= """ + map.get_root().render() + """ height=""" + y + """ width=""" + x +"""></iframe>"""

我设法在旁边使用 Flask 应用程序来制作 folium 地图,然后将 url 用作 iframe 的 src,但后来我无法从我的散景工具更新该地图的内容。

欢迎对以上任何内容发表评论,干杯! :)

更新 - 测试脚本:

from bokeh.models.widgets import Div
from bokeh.layouts import row
from bokeh.plotting import curdoc
import folium


def run():
    folium_map = folium.Map(location=(60., 20.))

    div = Div(
        text=folium_map._repr_html_(),
        width=500,
        height=500,
    )

    return row(div)

bokeh_layout = run()
doc = curdoc()
doc.add_root(bokeh_layout)

【问题讨论】:

    标签: bokeh folium


    【解决方案1】:

    使用map.get_root().render(),您就拥有了所有的 HTML 页面。如果你只想要一个iframe,你可以使用folium map的方法_repr_html_()

    div = Div(
        text=map._repr_html_(), 
        width=x, 
        height=y
    )
    

    【讨论】:

    • 感谢您的提示,但是我似乎没有得到正确的答案。运行下面的代码(使用命令 bokeh serve)时,我只得到一个空白页.. def run(): folium_map = folium.Map(location=(60., 20.)) div = Div( text=folium_map._repr_html_(), width=500, height=500, ) return row(div) bokeh_layout = run() doc = curdoc() doc.add_root(bokeh_layout)
    • 对上面的评论有什么想法吗? :)
    猜你喜欢
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2019-04-27
    • 2011-01-23
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多