使用Folium在地图上的新图层中打印线条/多线

时间:2014-05-28 07:56:33

标签: python leaflet folium

我已经尝试过Python folium库,结果令人印象深刻,但是我缺少一个功能,或者无论如何我找不到:我想在地图上的新图层中打印多行。

如果我查看de documentation,我只能找到如何添加标记和poligon标记。但是关于在新图层中打印,我只能找到示例like this one

我需要比这简单得多的东西。我想我可以用类似的方式插入带有多行信息的GeoJSON,但我甚至无法找到GeoJSON应该使用的格式。

获取我的多线的任何想法?

PD:如果您不知道如何使用Python / Folium实现这一目标,我将很高兴听到我应该添加到Javascript输出中以使用Leaflet获取多行(这是什么Folium图书馆正在使用。)

3 个答案:

答案 0 :(得分:7)

我终于找到了2014年1月在Folium中实施的方法,但没有记录。它是line方法。

Here appears an example由此插件的作者提供。

答案 1 :(得分:5)

现在不推荐使用前面示例中的某些功能;显然,现在首选的方法是:

import folium

# Coordinates are 10 points on the great circle from Boston to
# San Francisco.
# Reference: http://williams.best.vwh.net/avform.htm#Intermediate
coordinates = [
    [42.3581, -71.0636],
    [42.82995815, -74.78991444],
    [43.17929819, -78.56603306],
    [43.40320216, -82.37774519],
    [43.49975489, -86.20965845],
    [41.4338549, -108.74485069],
    [40.67471747, -112.29609954],
    [39.8093434, -115.76190821],
    [38.84352776, -119.13665678],
    [37.7833, -122.4167]]

# Create the map and add the line
m = folium.Map(location=[41.9, -97.3], zoom_start=4)
my_PolyLine=folium.PolyLine(locations=coordinates,weight=5)
m.add_children(my_PolyLine)
# m.save('line_example_newer.html')

答案 2 :(得分:0)

以上两种方法都不适合我向folium.Map对象添加线作为新层(使用叶0.11)。对我有用的是使用folium.FeatureGroup

coords = [[[42.3554025, -71.0728116], [42.3554142, -71.0728438]],
 [[42.3554142, -71.0728438], [42.3554296, -71.0728738]]]
test_map = folium.Map([42.3554025, -71.0728116], tiles='Cartodb Positron', zoom_start=15)
fg = folium.FeatureGroup("Lines")
folium.PolyLine(coords).add_to(fg)
f.add_to(test_map)
folium.LayerControl(position='bottomright').add_to(test_map)
test_map

这将打印出一个具有“线”层的地图,当切换该图层时,将显示在上面的坐标处绘制的线。