【问题标题】:Print a line/multiline in a new layer over a map using Folium使用 Folium 在地图上的新图层中打印一条线/多线
【发布时间】:2014-05-28 07:56:33
【问题描述】:

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

如果我查看文档,我只能找到如何添加标记和 poligon 标记。但是关于在新层打印,我只能找到例子like this one

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

任何想法让我的多线?

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

【问题讨论】:

    标签: python leaflet folium


    【解决方案1】:

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

    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 年 6 月,PolyLine 方法似乎已被弃用,而 Roman Rdgz 使用的 .line() 方法有效。用他的例子。
    • @emunsing 恰恰相反,不是吗?运行示例,我得到 line is deprecated。
    【解决方案2】:

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

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

    【讨论】:

    • 如果你能提交一个pull request并填写文档就好了,我也迷路了!
    • line 似乎不是 Folium 0.11 中的方法。
    【解决方案3】:

    以上方法都不适合我将线条作为新层添加到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
    

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

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多