web-dev-qa-db-ja.com

Foliumマップが表示されない

キャノピーバージョン1.5.5.3123で実行;

Foliumバージョン:0.1.2、ビルド:1

次のコード。

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)  

戻り値

<folium.folium.Map at 0x10c01ae10>

しかし、他には何もありません。

Ipythonノートブック内でマップを表示するにはどうすればよいですか?

11
mapping dom

私は 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('"', '&quot;')
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は返されたiFrameでdisplay.display()を自動的に呼び出します。このコンテキストでは、後で何かをレンダリングする場合、またはこれをループまたは関数で使用する場合にのみ、display()を呼び出す必要があります。

また、mapを変数名として使用すると、いくつかのクラスの.map()メソッドと混同される可能性があることに注意してください。

1
emunsing

_build_map()はもう存在しません。次のコードは私のために働きました

import folium
from IPython.display import display
LDN_COORDINATES = (51.5074, 0.1278)
myMap = folium.Map(location=LDN_COORDINATES, zoom_start=12)
display(myMap)
5
Shehan Ishanka

Foliumの古いバージョンを使用している理由はありますか?

このipythonノートブックは、1.2と2の違いのいくつかを明確にし、フォリウムマップをiframeに配置する方法を説明しています。 http://nbviewer.jupyter.org/github/bibmartin/folium/blob/issue288/examples/Popups.ipynb

そして、コードは次のようになります(上のノートブックにあり、マーカーが追加されていますが、それを取り出すこともできます)。

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

ドキュメントも稼働しています http://folium.readthedocs.io/en/latest/

2
Nevermore

上記の回答を考慮すると、もう1つの簡単な方法はJupiter Notebookで使用することです。

たとえば(Jupiterノートブック):

import folium

london_location = [51.507351, -0.127758]

m = folium.Map(location=london_location, zoom_start=15)
m

そして、「m」を呼び出すと結果が表示されます。

2
novonimo