问题:我想根据我拥有的一些数据来突出显示特定的国家。举例来说,我列出了演出的清单和获得许可的国家/地区。我想在选择节目或搜索节目时突出显示这些国家/地区*选择和搜索出现在程序的后面,我现在只想突出显示特定的国家。
我一直在这里https://python-visualization.github.io/folium/quickstart.html关注Folium Quickstart页面,尤其是GeoJSON和TopoJSON。这是我现在拥有的代码,它突出显示了地图上的每个国家。
#Loads show data into panda dataframe
show_data = pd.read_csv('input files/Show Licensing.csv')
show_data['Contract Expiration'] = pd.to_datetime(show_data['Contract Expiration'])
#Loads country poloygon and names
country_geo=(open("input files/countries.geojson", "r", encoding="utf-8-sig")).read()
folium_map = folium.Map(location=[40.738, -73.98],
tiles="CartoDB positron",
zoom_start=5)
folium.GeoJson(country_geo).add_to(folium_map)
folium_map.save("my_map.html")
预期结果:现在,我要突出显示在csv文件中找到的所有国家。最终目标是能够搜索节目并突出显示该节目获得许可的国家/地区。
这是我编写的回答了我问题的代码:
for country in countriesAndContinents_json['features']:
if country['properties']['Name'].lower() == h_country.lower():
if highlightFlag == 'License A':
return folium.GeoJson(
country,
name=(showTitle + ' License A ' + h_country),
style_function=styleLicenseA_function,
highlight_function=highlightLicenseA_function
)
'country',用作folium.GeoJson的geo_data,是特定国家/地区的geojson响应。因此,当在countries.geojson数据中找到国家/地区搜索时,它将返回该特定国家/地区的geojson响应,包括突出显示该国家/地区所需的几何图形。