11

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

如果我查看文档,我只能找到如何添加标记和 poligon 标记。但是关于在新图层中打印,我只能找到这样的示例。

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

任何想法让我的多线?

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

4

3 回答 3

9

前面示例中的一些函数现在已弃用;显然,首选方法现在类似于:

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_child(my_PolyLine)
# m.save('line_example_newer.html')
于 2016-04-14T15:23:21.253 回答
7

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

这里出现了这个插件的作者提供的一个例子。

于 2014-05-28T11:18:10.107 回答
0

以上都不适用于我将线条作为新图层添加到folium.Map对象(使用 folium 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

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

于 2020-10-22T00:45:04.840 回答