Можно ли динамически создавать легенды в течение 1 oop? Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь создать несколько слоев на карте. Когда я создаю их отдельно, панель легенды есть, но когда я помещаю (тот же) код в форму l oop, слои создаются без связанной легенды.
Здесь код, который я использую:
# main map
m = folium.Map(location=[43.653908, -79.384293], zoom_start=11)
# feature groups
under15 = folium.FeatureGroup(name='Under 15', overlay=False).add_to(m)
under25 = folium.FeatureGroup(name='Under 25', overlay=False).add_to(m)
under40 = folium.FeatureGroup(name='Under 40', overlay=False).add_to(m)
under65 = folium.FeatureGroup(name='Under 65', overlay=False).add_to(m)
under85 = folium.FeatureGroup(name='Under 85', overlay=False).add_to(m)
under100 = folium.FeatureGroup(name='Under 100', overlay=False).add_to(m)
above100 = folium.FeatureGroup(name='Above 100', overlay=False).add_to(m)
# features list
feat = [under15, under25, under40, under65, under85, under100, above100]
# column headers
groupNames = ['Under15', 'Under25', 'Under40', 'Under65','Under85', 'Under100', 'Above100']
# zipping together the lists
featNames = zip(groupNames, feat)
# Creating the layers on the map
for i in featNames:
# choropleth
mapped_OK = folium.Choropleth(
geo_data=ct,
name='Toronto Census Tracts',
fill_color='YlOrRd',
fill_opacity=0.7,
line_opacity=0.3,
threshold_scale=[0,10,20,40,60,80],
legend_name='Demographics (%)',
data=popcensus,
key_on='feature.properties.CTUID',
columns=['GEOUID', '{}'.format(i[0])],
highlight=True,
nan_fill_color='Bu'
).geojson.add_to(i[1])
Пример нескольких записей в не-json таблице:
И здесь фиктивный пример одной из функций geo json; Я вручную изменил CTUID, чтобы он соответствовал первой записи таблицы, и я также удалил ненужные свойства из свойств объектов, таких как CTNAME или любой другой бесполезный код:
{"type": "FeatureCollection",
"name": "CityTract",
"crs": { "type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [{ "type": "Feature",
"properties": { "CTUID": "10000.00" },
"geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -79.393729204347679, 43.696024334053391 ], [ -79.396099396691909, 43.695662733478756 ], [ -79.396197286820836, 43.696126701529948 ], [ -79.396461910384431, 43.697372986819602 ], [ -79.395674477214797, 43.697542186782982 ], [ -79.395441510156488, 43.6975904712912 ], [ -79.390671570714034, 43.698579100690687 ], [ -79.39046659599812, 43.698603986473501 ], [ -79.390240289025755, 43.698666815232436 ], [ -79.390222301392541, 43.698671801023536 ], [ -79.39000542084662, 43.698709615386171 ], [ -79.389935595301324, 43.698721799167544 ], [ -79.389674097944564, 43.698754102085886 ], [ -79.38942548843842, 43.69876859783772 ], [ -79.386730502993316, 43.699306903333913 ], [ -79.386520901134986, 43.698331490243547 ], [ -79.386475276446717, 43.69817778408931 ], [ -79.386312972117352, 43.69775230202309 ], [ -79.386268221450578, 43.69763431293925 ], [ -79.388606310727795, 43.697131404654804 ], [ -79.390834892976642, 43.69664578777239 ], [ -79.391678508644176, 43.696461942814338 ], [ -79.393530227212423, 43.696066808808226 ], [ -79.393729204347679, 43.696024334053391 ] ] ] ] } }
}
У меня есть посмотрел много примеров карт, созданных с помощью folium, но я не могу найти подобную проблему.
И после того, как я создаю отдельные карты, легенда больше не генерируется. Я перезапускаю сеанс.
Я подозреваю, что добавление нескольких гео json слоев на одну карту приведет к деактивации легенды, особенно если данные поступают из разных столбцов.
Я ценю любые Помогите. Заранее спасибо.