我发现这个 iPython Notebooks 中关于 Folium 的教程很有帮助。您创建的原始 Folium 实例不足以让 iPython 显示地图 - 您需要做更多的工作才能获得 iPython 可以呈现的一些 HTML。
要在 iPython 笔记本中显示,您需要使用 myMap._build_map() 方法生成 html,然后将其包装在带有 iPython 样式的 iFrame 中。
import folium
from IPython.display import HTML, display
LDN_COORDINATES = (51.5074, 0.1278)
myMap = folium.Map(location=LDN_COORDINATES, zoom_start=12)
myMap._build_map()
mapWidth, mapHeight = (400,500) # width and height of the displayed iFrame, in pixels
srcdoc = myMap.HTML.replace('"', '"')
embed = HTML('<iframe srcdoc="{}" '
'style="width: {}px; height: {}px; display:block; width: 50%; margin: 0 auto; '
'border: none"></iframe>'.format(srcdoc, width, height))
embed
通过作为 iPython 单元的输出返回embed
,iPython 将自动调用display.display()
返回的 iFrame。在这种情况下,您只需要display()
在之后渲染其他内容或在循环或函数中使用 this 时调用。
另外,请注意,map
用作变量名可能会与多个类的 .map() 方法混淆。