【问题标题】:How to add a hatch background to a circle in folium?如何为folium中的圆圈添加阴影背景?
【发布时间】:2020-10-28 20:44:45
【问题描述】:

有没有办法在folium中添加图案填充,例如填充背景?可以使用 GeoJSON 对象和 folium.plugins.StripePattern (https://github.com/python-visualization/folium/blob/master/tests/plugins/test_pattern.py) 对多边形使用填充填充,但我还没有看到使用 circle 的实现,也没有太多的运气使用它。

该功能在带有https://github.com/teastman/Leaflet.pattern 的传单中可用,例如:

        var myPattern = new L.StripePattern({ angle: -45, weight: 3, color: 'black', opacity: 1.0});
        myPattern.addTo(m);
        var circle = new L.Circle([42, -105], 40000, {fillPattern: myPattern, fillOpacity: 1.0});
        circle.addTo(m);

最坏的情况我可以将传单代码直接写入 html 文件。

【问题讨论】:

    标签: python leaflet folium


    【解决方案1】:

    我创建了一个函数来解决我的问题。该函数的参数是圆位置(经度/纬度)的 numpy 数组和圆的半径(以米为单位)的浮点数。

    #Function to inject leaflet hatching code for circles
    def injectHatch_f(xO_v, yO_v, rO):
    
        #Get map name
        mName = m.get_name()
    
        #Generate javascript (note use of Jinja2 tags to place javascript code after map is initialized): https://github.com/python-visualization/folium/issues/854
        js = '''{{% macro script(this, kwargs) %}}
        var myPattern = new L.StripePattern({{ angle: -45, weight: 3, color: 'black', opacity: 1.0}});
        myPattern.addTo({0});
        '''.format(mName) + \
        '\n'.join(["var circle = new L.Circle([{1}, {2}], {3}, {{fillPattern: myPattern, fillOpacity: 1.0}}).addTo({0});".format(mName, yO_v[i], xO_v[i], rO) for i in range(xO_v.shape[0])]) + \
        '{% endmacro %}'
    
        #Add leaflet pattern plugin
        m.get_root().html.add_child(JavascriptLink('https://teastman.github.io/Leaflet.pattern/leaflet.pattern.js'))
    
        #Inject javascript code
        element = folium.MacroElement().add_to(m)
        element._template = jinja2.Template(js)
    

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 1970-01-01
      • 2019-07-13
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多