我已经尝试过Python folium库,结果令人印象深刻,但是我缺少一个功能,或者无论如何我找不到:我想在地图上的新图层中打印多行。
如果我查看de documentation,我只能找到如何添加标记和poligon标记。但是关于在新图层中打印,我只能找到示例like this one。
我需要比这简单得多的东西。我想我可以用类似的方式插入带有多行信息的GeoJSON,但我甚至无法找到GeoJSON应该使用的格式。
获取我的多线的任何想法?
PD:如果您不知道如何使用Python / Folium实现这一目标,我将很高兴听到我应该添加到Javascript输出中以使用Leaflet获取多行(这是什么Folium图书馆正在使用。)答案 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
这将打印出一个具有“线”层的地图,当切换该图层时,将显示在上面的坐标处绘制的线。