Fonctionnant sur la verrière version 1.5.5.3123 Avec;
Version Folium: 0.1.2, Build: 1
Le code suivant;
import folium
import pandas as pd
LDN_COORDINATES = (51.5074, 0.1278)
from IPython.display import HTML
import shapefile
#create empty map zoomed in on London
LDN_COORDINATES = (51.5074, 0.1278)
map = folium.Map(location=LDN_COORDINATES, zoom_start=12)
display(map)
Retour
<folium.folium.Map at 0x10c01ae10>
Mais rien d'autre.
Comment afficher une carte dans un bloc-notes ipython?
J'ai trouvé ce tutoriel sur Folium dans les cahiers iPython très utile. L'instance Folium brute que vous avez créée n'est pas suffisante pour que iPython affiche la carte - vous devez faire un peu plus de travail pour obtenir du code HTML que iPython peut rendre.
Pour afficher dans le bloc-notes iPython, vous devez générer le code html avec la méthode myMap._build_map (), puis l'encapsuler dans une iFrame avec un style pour iPython.
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
Alors qu'en retournant embed
comme sortie de la cellule iPython, iPython appellera automatiquement display.display()
sur l'iFrame retournée. Dans ce contexte, vous ne devriez avoir besoin d'appeler display()
que si vous effectuez un autre rendu par la suite ou si vous l'utilisez dans une boucle ou une fonction.
Notez également que l'utilisation de map
comme nom de variable peut être confondue avec la méthode .map () de plusieurs classes.
_build_map () n'existe plus. Le code suivant a fonctionné pour moi
import folium
from IPython.display import display
LDN_COORDINATES = (51.5074, 0.1278)
myMap = folium.Map(location=LDN_COORDINATES, zoom_start=12)
display(myMap)
Y a-t-il une raison pour laquelle vous utilisez une version obsolète de Folium?
Ce bloc-notes ipython clarifie certaines des différences entre 1.2 et 2, et il explique comment placer des cartes folium dans des iframes. http://nbviewer.jupyter.org/github/bibmartin/folium/blob/issue288/examples/Popups.ipynb
Et le code ressemblerait à quelque chose comme ça (trouvé dans le cahier ci-dessus, il ajoute un marqueur, mais on pourrait simplement le retirer):
m = folium.Map([43,-100], zoom_start=4)
html="""
<h1> This is a big popup</h1><br>
With a few lines of code...
<p>
<code>
from numpy import *<br>
exp(-2*pi)
</code>
</p>
"""
iframe = folium.element.IFrame(html=html, width=500, height=300)
popup = folium.Popup(iframe, max_width=2650)
folium.Marker([30,-100], popup=popup).add_to(m)
m
Les documents sont également opérationnels, http://folium.readthedocs.io/en/latest/
Compte tenu des réponses ci-dessus, un autre moyen simple consiste à l'utiliser avec Jupiter Notebook.
par exemple (sur le cahier Jupiter):
import folium
london_location = [51.507351, -0.127758]
m = folium.Map(location=london_location, zoom_start=15)
m
et voyez le résultat lorsque vous appelez le "m".