Ich habe gefunden this tutorial on Folium in iPython Notebooks ziemlich hilfreich. Die rohe Folium-Instanz, die Sie erstellt haben, reicht nicht aus, um iPython dazu zu bringen, die Map anzuzeigen. Sie müssen etwas mehr Arbeit aufwenden, um HTML zu erhalten, das iPython rendern kann.
Um im iPython-Notizbuch anzuzeigen, müssen Sie den HTML-Code mit der Methode myMap._build_map() generieren und dann in einen iFrame mit Formatierung für iPython umbrechen.
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
Wo durch embed
als die Ausgabe der ipython Zelle zurückkehrt, ipython automatisch display.display()
auf dem zurück iFrame nennen. In diesem Zusammenhang sollten Sie nur display()
aufrufen müssen, wenn Sie anschließend etwas anderes rendern oder dies in einer Schleife oder Funktion verwenden.
Beachten Sie außerdem, dass die Verwendung von map
als Variablenname möglicherweise mit der Methode .map() mehrerer Klassen verwechselt werden kann.
myMap._build_map() _build_map() wird nicht mehr beendet. Sie nahmen es aus dem Folium heraus. Wie sollen wir das Problem lösen, wenn wir _build_map() nicht haben? – overloading