单击按钮

时间:2018-03-05 20:33:00

标签: python dataframe mapping folium

我正在使用数据帧df中的信息在folium中实现一个映射。我包含经度,纬度,名称和地区信息。 使用我在这里采用的GeoJson文件:https://github.com/martinjc/UK-GeoJSON,我可以在英国定义区域,在用鼠标指针悬停时突出显示它们并显示一些信息。我想用一个按钮为每个区域创建一个弹出窗口。如果单击该按钮,则该区域中df中的所有条目都显示为标记。可能吗?我现在使用的代码如下:

...operations on df and definition of the map m...

width = 10
heigth = 4
resolution = 75
def style_function(feature):
        return {
            'fillColor': '#ffaf00',
            'color': 'grey',
            'weight': 1.5,
            'dashArray': '5, 5'
        }


def highlight_function(feature):
    return {
        'fillColor': '#ffaf00',
        'color': 'black',
        'weight': 3,
        'dashArray': '5, 5'
    }


c = folium.GeoJson(geojsonFile, 
                       name = 'Highlight',
                       overlay=True, 
                       style_function = style_function,
                       highlight_function = highlight_function)

html = '{}<br> Info:   {} <br> <buttononclick="window.location.reload()">Reload</button>'.format
frame = IFrame(html(name, info), width=(width*resolution)+20, height=(height*resolution)+20)
popup_text = folium.Popup(iframe, max_width=2650)
c.add_child(folium.Popup(popup_text))
c.add_to(m)

我可以在弹出窗口中添加按钮;我想要做的是定义一个像:

这样的函数
def testFunction(df, region):
   markerCluster = folium.plugins.MarkerCluster().add_to(map)
   for index, row in df.iterrows():
        if row['region'] == region:
             folium.Marker([row['lat'], row['lon']], popup='some text').add_to(markerCluster)

单击按钮时将运行。我要找的最终效果应该是:打开地图,单击所选区域,单击按钮,区域上的标记出现。但我还没有找到任何解决方案(我已尝试使用Flask但没有成功)。

0 个答案:

没有答案