Добавление легенды цветовой карты на карту Folium - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь создать карту в Folium с несколькими слоями, каждый из которых состоит из заштрихованных областей (используя GeoJSON) с цветами, заданными цветовой картой.Я хотел бы добавить легенды к моим слоям.Я нашел первое решение здесь , но проблема с этим решением заключалась в том, что легенда была зафиксирована в правом верхнем углу и, что более важно, она всегда была там.Вместо этого я хотел бы использовать легенду, которая отображается только при отображении соответствующего слоя.

Вот пример кода, который я пробовал (где m - моя карта Folium, а cm1 и cm2 - карты цветов):

folium.GeoJson(data['Temp'],
    name='Temp',
    style_function=lambda x: {
            'fillColor': cm1(x['properties']['Temp']),
            'fillOpacity': 0.2,
            'color' : None
                            },
    highlight_function=lambda x: {'weight':3, 'color':'black'},
    tooltip=folium.features.GeoJsonTooltip(fields=['Temp', 'Rain'],
                                            labels=True,
                                            sticky=True
                                            ), show=False).add_to(m)

folium.GeoJson(data['Rain'],
    name='Rain',
    style_function=lambda x: {
            'fillColor': cm2(x['properties']['Rain']),
            'fillOpacity': 0.2,
            'color' : None
                            },
    highlight_function=lambda x: {'weight':3, 'color':'black'},
    tooltip=folium.features.GeoJsonTooltip(fields=['Temp', 'Rain'],
                                            labels=True,
                                            sticky=True
                                            ), show=False).add_to(m)

cm1.caption = 'Temp scale'
cm2.caption = 'Rain scale'
m.add_child(cm1)
m.add_child(cm2)

folium.LayerControl().add_to(m)

Как изменить код так, чтобы условные обозначения отображались только при отображении соответствующих слоев?(И если возможно, как я могу переместить легенды внизу слева?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...